pyegeria 5.4.7.9__py3-none-any.whl → 5.4.8.2__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.
- commands/cat/dr_egeria_command_help.py +1 -1
- commands/cat/list_collections.py +2 -2
- commands/cat/run_report.py +12 -12
- commands/ops/list_archives.py +1 -3
- md_processing/data/commands.json +57057 -52198
- md_processing/data/generated_format_sets.json +43 -43
- md_processing/md_commands/data_designer_commands.py +10 -10
- md_processing/md_commands/ext_ref_commands.py +2 -2
- md_processing/md_commands/glossary_commands.py +3 -3
- md_processing/md_commands/governance_officer_commands.py +2 -2
- md_processing/md_commands/product_manager_commands.py +8 -8
- md_processing/md_commands/project_commands.py +2 -2
- md_processing/md_commands/solution_architect_commands.py +3 -3
- md_processing/md_commands/view_commands.py +7 -7
- md_processing/md_processing_utils/common_md_proc_utils.py +8 -8
- md_processing/md_processing_utils/common_md_utils.py +1 -1
- md_processing/md_processing_utils/gen_format_sets.py +12 -12
- md_processing/md_processing_utils/generate_dr_help.py +1 -1
- pyegeria/__init__.py +3 -3
- pyegeria/_base_client.py +1 -17
- pyegeria/_client_new.py +3535 -614
- pyegeria/_client_new_backup.py +5359 -0
- pyegeria/_output_format_models.py +41 -16
- pyegeria/_output_formats.py +9 -2642
- pyegeria/automated_curation.py +90 -81
- pyegeria/base_report_formats.py +2863 -0
- pyegeria/classification_manager.py +1575 -517
- pyegeria/classification_manager_omvs.py +45 -69
- pyegeria/collection_manager.py +108 -110
- pyegeria/data_designer.py +151 -151
- pyegeria/egeria_cat_client.py +23 -67
- pyegeria/egeria_client.py +2 -2
- pyegeria/egeria_tech_client.py +2 -2
- pyegeria/{external_references.py → external_links.py} +59 -60
- pyegeria/feedback_manager.py +153 -3830
- pyegeria/feedback_manager_omvs.py +117 -337
- pyegeria/format_set_executor.py +16 -16
- pyegeria/glossary_manager.py +62 -65
- pyegeria/governance_officer.py +53 -53
- pyegeria/mcp_adapter.py +6 -6
- pyegeria/output_formatter.py +94 -53
- pyegeria/output_formatter_with_machine_keys.py +1127 -0
- pyegeria/platform_services.py +2 -1
- pyegeria/project_manager.py +66 -66
- pyegeria/reference_data.py +30 -30
- pyegeria/solution_architect.py +135 -134
- {pyegeria-5.4.7.9.dist-info → pyegeria-5.4.8.2.dist-info}/METADATA +38 -7
- {pyegeria-5.4.7.9.dist-info → pyegeria-5.4.8.2.dist-info}/RECORD +52 -50
- pyegeria/egeria_my_client.py +0 -91
- {pyegeria-5.4.7.9.dist-info → pyegeria-5.4.8.2.dist-info}/WHEEL +0 -0
- {pyegeria-5.4.7.9.dist-info → pyegeria-5.4.8.2.dist-info}/entry_points.txt +0 -0
- {pyegeria-5.4.7.9.dist-info → pyegeria-5.4.8.2.dist-info}/licenses/LICENSE +0 -0
- {pyegeria-5.4.7.9.dist-info → pyegeria-5.4.8.2.dist-info}/top_level.txt +0 -0
pyegeria/solution_architect.py
CHANGED
|
@@ -15,10 +15,11 @@ from httpx import Response
|
|
|
15
15
|
from loguru import logger
|
|
16
16
|
|
|
17
17
|
from pyegeria.models import NewElementRequestBody, TemplateRequestBody, UpdateElementRequestBody, \
|
|
18
|
-
NewRelationshipRequestBody,
|
|
18
|
+
NewRelationshipRequestBody, UpdateStatusRequestBody, SearchStringRequestBody, DeleteElementRequestBody, \
|
|
19
|
+
DeleteRelationshipRequestBody
|
|
19
20
|
from pyegeria.output_formatter import make_preamble, make_md_attribute, generate_output, extract_mermaid_only, \
|
|
20
21
|
extract_basic_dict, MD_SEPARATOR, populate_common_columns
|
|
21
|
-
from pyegeria.
|
|
22
|
+
from pyegeria.base_report_formats import select_report_spec, get_report_spec_match
|
|
22
23
|
from pyegeria._validators import validate_guid
|
|
23
24
|
from pyegeria.governance_officer import GovernanceOfficer
|
|
24
25
|
from pyegeria._client_new import Client2, max_paging_size
|
|
@@ -502,7 +503,7 @@ class SolutionArchitect(Client2):
|
|
|
502
503
|
# We only set a column's value if it is currently empty (None or "").
|
|
503
504
|
try:
|
|
504
505
|
formats = col_data.get('formats') if isinstance(col_data, dict) else None
|
|
505
|
-
columns = formats.get('
|
|
506
|
+
columns = formats.get('attributes') if isinstance(formats, dict) else None
|
|
506
507
|
if isinstance(columns, list) and isinstance(rel_dict, dict):
|
|
507
508
|
for col in columns:
|
|
508
509
|
if not isinstance(col, dict):
|
|
@@ -531,24 +532,24 @@ class SolutionArchitect(Client2):
|
|
|
531
532
|
# Markdown output support
|
|
532
533
|
#
|
|
533
534
|
def generate_info_supply_chain_output(self, elements: list | dict, search_string: str, element_type_name: str | None,
|
|
534
|
-
output_format: str = 'MD',
|
|
535
|
+
output_format: str = 'MD', report_spec: dict | str = None) -> str | list:
|
|
535
536
|
"""Render Information Supply Chains using the shared output pipeline.
|
|
536
537
|
"""
|
|
537
538
|
if output_format == "MERMAID":
|
|
538
539
|
return extract_mermaid_only(elements)
|
|
539
540
|
|
|
540
541
|
entity_type = "Information Supply Chain"
|
|
541
|
-
if
|
|
542
|
-
if isinstance(
|
|
543
|
-
output_formats =
|
|
544
|
-
elif isinstance(
|
|
545
|
-
output_formats =
|
|
542
|
+
if report_spec:
|
|
543
|
+
if isinstance(report_spec, str):
|
|
544
|
+
output_formats = select_report_spec(report_spec, output_format)
|
|
545
|
+
elif isinstance(report_spec, dict):
|
|
546
|
+
output_formats = get_report_spec_match(report_spec, output_format)
|
|
546
547
|
else:
|
|
547
548
|
output_formats = None
|
|
548
549
|
else:
|
|
549
|
-
output_formats =
|
|
550
|
+
output_formats = select_report_spec("Information Supply Chains", output_format)
|
|
550
551
|
if output_formats is None:
|
|
551
|
-
output_formats =
|
|
552
|
+
output_formats = select_report_spec("Default", output_format)
|
|
552
553
|
|
|
553
554
|
return generate_output(
|
|
554
555
|
elements=elements,
|
|
@@ -561,7 +562,7 @@ class SolutionArchitect(Client2):
|
|
|
561
562
|
)
|
|
562
563
|
|
|
563
564
|
def generate_solution_blueprint_output(self, elements: list | dict, search_string: str, element_type_name: str | None,
|
|
564
|
-
output_format: str = 'MD',
|
|
565
|
+
output_format: str = 'MD', report_spec: dict | str = None) -> str | list:
|
|
565
566
|
"""
|
|
566
567
|
Generate output for solution blueprints in the specified format.
|
|
567
568
|
|
|
@@ -577,17 +578,17 @@ class SolutionArchitect(Client2):
|
|
|
577
578
|
return extract_mermaid_only(elements)
|
|
578
579
|
|
|
579
580
|
entity_type = "Solution Blueprint"
|
|
580
|
-
if
|
|
581
|
-
if isinstance(
|
|
582
|
-
output_formats =
|
|
583
|
-
elif isinstance(
|
|
584
|
-
output_formats =
|
|
581
|
+
if report_spec:
|
|
582
|
+
if isinstance(report_spec, str):
|
|
583
|
+
output_formats = select_report_spec(report_spec, output_format)
|
|
584
|
+
elif isinstance(report_spec, dict):
|
|
585
|
+
output_formats = get_report_spec_match(report_spec, output_format)
|
|
585
586
|
else:
|
|
586
587
|
output_formats = None
|
|
587
588
|
else:
|
|
588
|
-
output_formats =
|
|
589
|
+
output_formats = select_report_spec("Solution Blueprints", output_format)
|
|
589
590
|
if output_formats is None:
|
|
590
|
-
output_formats =
|
|
591
|
+
output_formats = select_report_spec("Default", output_format)
|
|
591
592
|
|
|
592
593
|
return generate_output(
|
|
593
594
|
elements=elements,
|
|
@@ -600,7 +601,7 @@ class SolutionArchitect(Client2):
|
|
|
600
601
|
)
|
|
601
602
|
|
|
602
603
|
def generate_solution_roles_output(self, elements: list | dict, search_string: str, element_type_name: str | None,
|
|
603
|
-
output_format: str = 'MD',
|
|
604
|
+
output_format: str = 'MD', report_spec: dict | str = None) -> str | list:
|
|
604
605
|
"""
|
|
605
606
|
Generate output for solution roles in the specified format.
|
|
606
607
|
|
|
@@ -616,17 +617,17 @@ class SolutionArchitect(Client2):
|
|
|
616
617
|
return extract_mermaid_only(elements)
|
|
617
618
|
|
|
618
619
|
entity_type = "Solution Role"
|
|
619
|
-
if
|
|
620
|
-
if isinstance(
|
|
621
|
-
output_formats =
|
|
622
|
-
elif isinstance(
|
|
623
|
-
output_formats =
|
|
620
|
+
if report_spec:
|
|
621
|
+
if isinstance(report_spec, str):
|
|
622
|
+
output_formats = select_report_spec(report_spec, output_format)
|
|
623
|
+
elif isinstance(report_spec, dict):
|
|
624
|
+
output_formats = get_report_spec_match(report_spec, output_format)
|
|
624
625
|
else:
|
|
625
626
|
output_formats = None
|
|
626
627
|
else:
|
|
627
|
-
output_formats =
|
|
628
|
+
output_formats = select_report_spec("Solution Roles", output_format)
|
|
628
629
|
if output_formats is None:
|
|
629
|
-
output_formats =
|
|
630
|
+
output_formats = select_report_spec("Default", output_format)
|
|
630
631
|
|
|
631
632
|
return generate_output(
|
|
632
633
|
elements=elements,
|
|
@@ -639,7 +640,7 @@ class SolutionArchitect(Client2):
|
|
|
639
640
|
)
|
|
640
641
|
|
|
641
642
|
def generate_solution_components_output(self, elements: list | dict, search_string: str, element_type_name: str | None,
|
|
642
|
-
output_format: str = 'MD',
|
|
643
|
+
output_format: str = 'MD', report_spec: dict | str = None) -> str | list:
|
|
643
644
|
"""
|
|
644
645
|
Generate output for solution components in the specified format.
|
|
645
646
|
|
|
@@ -660,17 +661,17 @@ class SolutionArchitect(Client2):
|
|
|
660
661
|
return extract_mermaid_only(elements)
|
|
661
662
|
|
|
662
663
|
entity_type = "Solution Component"
|
|
663
|
-
if
|
|
664
|
-
if isinstance(
|
|
665
|
-
output_formats =
|
|
666
|
-
elif isinstance(
|
|
667
|
-
output_formats =
|
|
664
|
+
if report_spec:
|
|
665
|
+
if isinstance(report_spec, str):
|
|
666
|
+
output_formats = select_report_spec(report_spec, output_format)
|
|
667
|
+
elif isinstance(report_spec, dict):
|
|
668
|
+
output_formats = get_report_spec_match(report_spec, output_format)
|
|
668
669
|
else:
|
|
669
670
|
output_formats = None
|
|
670
671
|
else:
|
|
671
|
-
output_formats =
|
|
672
|
+
output_formats = select_report_spec("Solution Components", output_format)
|
|
672
673
|
if output_formats is None:
|
|
673
|
-
output_formats =
|
|
674
|
+
output_formats = select_report_spec("Default", output_format)
|
|
674
675
|
|
|
675
676
|
return generate_output(
|
|
676
677
|
elements=elements,
|
|
@@ -1218,7 +1219,7 @@ class SolutionArchitect(Client2):
|
|
|
1218
1219
|
|
|
1219
1220
|
@dynamic_catch
|
|
1220
1221
|
async def _async_unlink_peer_info_supply_chains(self, peer1_guid: str, peer2_guid: str,
|
|
1221
|
-
body: dict |
|
|
1222
|
+
body: dict | DeleteRelationshipRequestBody = None) -> None:
|
|
1222
1223
|
""" Detach two peers in an information supply chain from one another. The linked elements are of type
|
|
1223
1224
|
'Referenceable' to allow significant data stores to be included in the definition of the information
|
|
1224
1225
|
supply chain. Request body is optional. Async Version.
|
|
@@ -1229,7 +1230,7 @@ class SolutionArchitect(Client2):
|
|
|
1229
1230
|
guid of the first information supply chain to link.
|
|
1230
1231
|
peer2_guid: str
|
|
1231
1232
|
guid of the second information supply chain to link.
|
|
1232
|
-
body: dict |
|
|
1233
|
+
body: dict | DeleteRelationshipRequestBody, optional
|
|
1233
1234
|
The body describing the link between the two segments.
|
|
1234
1235
|
|
|
1235
1236
|
Returns
|
|
@@ -1250,7 +1251,7 @@ class SolutionArchitect(Client2):
|
|
|
1250
1251
|
|
|
1251
1252
|
Body structure:
|
|
1252
1253
|
{
|
|
1253
|
-
"class": "
|
|
1254
|
+
"class": "DeleteRelationshipRequestBody",
|
|
1254
1255
|
"externalSourceGUID": "add guid here",
|
|
1255
1256
|
"externalSourceName": "add qualified name here",
|
|
1256
1257
|
"effectiveTime": {{isotime}},
|
|
@@ -1263,7 +1264,7 @@ class SolutionArchitect(Client2):
|
|
|
1263
1264
|
validate_guid(peer2_guid)
|
|
1264
1265
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
1265
1266
|
f"information-supply-chains/{peer1_guid}/peer-links/{peer2_guid}/detach")
|
|
1266
|
-
await self.
|
|
1267
|
+
await self._async_delete_relationship_request(url, body)
|
|
1267
1268
|
logger.info(
|
|
1268
1269
|
f"Detached supply chains {peer1_guid} -> {peer2_guid}")
|
|
1269
1270
|
|
|
@@ -1464,12 +1465,12 @@ class SolutionArchitect(Client2):
|
|
|
1464
1465
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
1465
1466
|
f"information-supply-chains/{chain_guid}/compositions/{nested_chain_guid}/detach")
|
|
1466
1467
|
|
|
1467
|
-
await self.
|
|
1468
|
+
await self._async_delete_relationship_request(url, body)
|
|
1468
1469
|
logger.info(f"Removed composition of {nested_chain_guid} -> {chain_guid}")
|
|
1469
1470
|
|
|
1470
1471
|
@dynamic_catch
|
|
1471
1472
|
def decompose_info_supply_chains(self, chain_guid: str, nested_chain_guid: str,
|
|
1472
|
-
body: dict |
|
|
1473
|
+
body: dict | DeleteRelationshipRequestBody = None) -> None:
|
|
1473
1474
|
""" Detach two peers in an information supply chain from one another. Request body is optional.
|
|
1474
1475
|
|
|
1475
1476
|
Parameters
|
|
@@ -1478,7 +1479,7 @@ class SolutionArchitect(Client2):
|
|
|
1478
1479
|
guid of the first information supply chain to link.
|
|
1479
1480
|
nested_chain_guid: str
|
|
1480
1481
|
guid of the second information supply chain to link.
|
|
1481
|
-
body: dict |
|
|
1482
|
+
body: dict | DeleteRelationshipRequestBody, optional
|
|
1482
1483
|
The body describing the link between the two segments.
|
|
1483
1484
|
|
|
1484
1485
|
Returns
|
|
@@ -1499,7 +1500,7 @@ class SolutionArchitect(Client2):
|
|
|
1499
1500
|
|
|
1500
1501
|
Body structure:
|
|
1501
1502
|
{
|
|
1502
|
-
"class": "
|
|
1503
|
+
"class": "DeleteRelationshipRequestBody",
|
|
1503
1504
|
"externalSourceGUID": "add guid here",
|
|
1504
1505
|
"externalSourceName": "add qualified name here",
|
|
1505
1506
|
"effectiveTime": {{isotime}},
|
|
@@ -1512,7 +1513,7 @@ class SolutionArchitect(Client2):
|
|
|
1512
1513
|
nested_chain_guid, body))
|
|
1513
1514
|
|
|
1514
1515
|
@dynamic_catch
|
|
1515
|
-
async def _async_delete_info_supply_chain(self, guid: str, body: dict |
|
|
1516
|
+
async def _async_delete_info_supply_chain(self, guid: str, body: dict | DeleteElementRequestBody = None, cascade_delete: bool = False) -> None:
|
|
1516
1517
|
"""Delete an information supply chain. Async Version.
|
|
1517
1518
|
|
|
1518
1519
|
Parameters
|
|
@@ -1542,7 +1543,7 @@ class SolutionArchitect(Client2):
|
|
|
1542
1543
|
|
|
1543
1544
|
Body structure:
|
|
1544
1545
|
{
|
|
1545
|
-
"class": "
|
|
1546
|
+
"class": "DeleteElementRequestBody",
|
|
1546
1547
|
"externalSourceGUID": "add guid here",
|
|
1547
1548
|
"externalSourceName": "add qualified name here",
|
|
1548
1549
|
"effectiveTime": {{isotime}},
|
|
@@ -1555,18 +1556,18 @@ class SolutionArchitect(Client2):
|
|
|
1555
1556
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
1556
1557
|
f"information-supply-chains/{guid}/delete")
|
|
1557
1558
|
|
|
1558
|
-
await self.
|
|
1559
|
+
await self._async_delete_element_request(url, body, cascade_delete=cascade_delete)
|
|
1559
1560
|
logger.info(f"Deleted Info Supply Chain {guid} with cascade {cascade_delete}")
|
|
1560
1561
|
|
|
1561
1562
|
@dynamic_catch
|
|
1562
|
-
def delete_info_supply_chain(self, guid: str, body: dict |
|
|
1563
|
+
def delete_info_supply_chain(self, guid: str, body: dict | DeleteElementRequestBody= None, cascade_delete: bool = False) -> None:
|
|
1563
1564
|
""" Delete an information supply chain.
|
|
1564
1565
|
|
|
1565
1566
|
Parameters
|
|
1566
1567
|
----------
|
|
1567
1568
|
guid: str
|
|
1568
1569
|
guid of the information supply chain to delete.
|
|
1569
|
-
body: dict |
|
|
1570
|
+
body: dict | DeleteElementRequestBody, optional
|
|
1570
1571
|
A dictionary containing parameters of the deletion.
|
|
1571
1572
|
cascade_delete: bool, optional
|
|
1572
1573
|
If true, the child objects will also be deleted.
|
|
@@ -1588,7 +1589,7 @@ class SolutionArchitect(Client2):
|
|
|
1588
1589
|
|
|
1589
1590
|
Body structure:
|
|
1590
1591
|
{
|
|
1591
|
-
"class": "
|
|
1592
|
+
"class": "DeleteElementRequestBody",
|
|
1592
1593
|
"externalSourceGUID": "add guid here",
|
|
1593
1594
|
"externalSourceName": "add qualified name here",
|
|
1594
1595
|
"effectiveTime": {{isotime}},
|
|
@@ -1604,7 +1605,7 @@ class SolutionArchitect(Client2):
|
|
|
1604
1605
|
starts_with: bool = True, ends_with: bool = False,
|
|
1605
1606
|
ignore_case: bool = False, start_from: int = 0,
|
|
1606
1607
|
page_size: int = 0, output_format: str = 'JSON',
|
|
1607
|
-
|
|
1608
|
+
report_spec: str = None,
|
|
1608
1609
|
body: dict| SearchStringRequestBody = None) -> (list[dict] | str):
|
|
1609
1610
|
""" Retrieve a list of all information supply chains
|
|
1610
1611
|
Parameters
|
|
@@ -1652,7 +1653,7 @@ class SolutionArchitect(Client2):
|
|
|
1652
1653
|
}
|
|
1653
1654
|
"""
|
|
1654
1655
|
|
|
1655
|
-
return self.find_information_supply_chains("*", classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format,
|
|
1656
|
+
return self.find_information_supply_chains("*", classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format, report_spec, body)
|
|
1656
1657
|
|
|
1657
1658
|
async def _async_find_information_supply_chains(self, search_string: str = "*", add_implementation: bool = True,
|
|
1658
1659
|
classification_names: list[str] = None,
|
|
@@ -1660,7 +1661,7 @@ class SolutionArchitect(Client2):
|
|
|
1660
1661
|
starts_with: bool = True, ends_with: bool = False,
|
|
1661
1662
|
ignore_case: bool = False, start_from: int = 0,
|
|
1662
1663
|
page_size: int = 0, output_format: str = 'JSON',
|
|
1663
|
-
|
|
1664
|
+
report_spec: str = None,
|
|
1664
1665
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
1665
1666
|
"""Retrieve the list of information supply chain metadata elements that contain the search string.
|
|
1666
1667
|
https://egeria-project.org/concepts/information-supply-chain
|
|
@@ -1725,7 +1726,7 @@ class SolutionArchitect(Client2):
|
|
|
1725
1726
|
metadata_element_types=metadata_element_types,
|
|
1726
1727
|
starts_with=starts_with, ends_with=ends_with, ignore_case=ignore_case,
|
|
1727
1728
|
start_from=start_from, page_size=page_size,
|
|
1728
|
-
output_format=output_format,
|
|
1729
|
+
output_format=output_format, report_spec=report_spec,
|
|
1729
1730
|
body=body)
|
|
1730
1731
|
|
|
1731
1732
|
|
|
@@ -1736,7 +1737,7 @@ class SolutionArchitect(Client2):
|
|
|
1736
1737
|
starts_with: bool = True, ends_with: bool = False,
|
|
1737
1738
|
ignore_case: bool = False, start_from: int = 0,
|
|
1738
1739
|
page_size: int = 0, output_format: str = 'JSON',
|
|
1739
|
-
|
|
1740
|
+
report_spec: str = None,
|
|
1740
1741
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
1741
1742
|
"""Retrieve the list of information supply chain metadata elements that contain the search string.
|
|
1742
1743
|
https://egeria-project.org/concepts/information-supply-chain
|
|
@@ -1803,7 +1804,7 @@ class SolutionArchitect(Client2):
|
|
|
1803
1804
|
self._async_find_information_supply_chains(search_string, add_implementation,classification_names, metadata_element_types,
|
|
1804
1805
|
starts_with, ends_with, ignore_case,
|
|
1805
1806
|
start_from, page_size, output_format,
|
|
1806
|
-
|
|
1807
|
+
report_spec, body))
|
|
1807
1808
|
return response
|
|
1808
1809
|
|
|
1809
1810
|
async def _async_get_info_supply_chain_by_name(self, search_filter: str, body: dict = None,
|
|
@@ -2562,7 +2563,7 @@ class SolutionArchitect(Client2):
|
|
|
2562
2563
|
|
|
2563
2564
|
|
|
2564
2565
|
@dynamic_catch
|
|
2565
|
-
async def _async_delete_solution_blueprint(self, guid: str, body: dict |
|
|
2566
|
+
async def _async_delete_solution_blueprint(self, guid: str, body: dict | DeleteElementRequestBody, cascade: bool = False) -> None:
|
|
2566
2567
|
""" Delete a solution blueprint. Async Version.
|
|
2567
2568
|
Parameters
|
|
2568
2569
|
----------
|
|
@@ -2591,7 +2592,7 @@ class SolutionArchitect(Client2):
|
|
|
2591
2592
|
|
|
2592
2593
|
Body structure:
|
|
2593
2594
|
{
|
|
2594
|
-
"class": "
|
|
2595
|
+
"class": "DeleteElementRequestBody",
|
|
2595
2596
|
"externalSourceGUID": "add guid here",
|
|
2596
2597
|
"externalSourceName": "add qualified name here",
|
|
2597
2598
|
"effectiveTime": {{isotime}},
|
|
@@ -2603,11 +2604,11 @@ class SolutionArchitect(Client2):
|
|
|
2603
2604
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
2604
2605
|
f"information-supply-chains/{guid}/delete")
|
|
2605
2606
|
|
|
2606
|
-
await self.
|
|
2607
|
+
await self._async_delete_element_request(url, body, cascade_delete=cascade)
|
|
2607
2608
|
logger.info(f"Deleted Info Supply Chain {guid} with cascade {cascade}")
|
|
2608
2609
|
|
|
2609
2610
|
@dynamic_catch
|
|
2610
|
-
def delete_solution_blueprint(self, guid: str, body: dict |
|
|
2611
|
+
def delete_solution_blueprint(self, guid: str, body: dict | DeleteElementRequestBody = None,
|
|
2611
2612
|
cascade: bool = False) -> None:
|
|
2612
2613
|
""" Delete an Solution Blueprint.
|
|
2613
2614
|
|
|
@@ -2615,7 +2616,7 @@ class SolutionArchitect(Client2):
|
|
|
2615
2616
|
----------
|
|
2616
2617
|
guid: str
|
|
2617
2618
|
guid of the information supply chain to delete.
|
|
2618
|
-
body: dict |
|
|
2619
|
+
body: dict | DeleteElementRequestBody, optional
|
|
2619
2620
|
A dictionary containing parameters of the deletion.
|
|
2620
2621
|
cascade: bool, optional
|
|
2621
2622
|
If true, the child objects will also be deleted.
|
|
@@ -2637,7 +2638,7 @@ class SolutionArchitect(Client2):
|
|
|
2637
2638
|
|
|
2638
2639
|
Body structure:
|
|
2639
2640
|
{
|
|
2640
|
-
"class": "
|
|
2641
|
+
"class": "DeleteElementRequestBody",
|
|
2641
2642
|
"externalSourceGUID": "add guid here",
|
|
2642
2643
|
"externalSourceName": "add qualified name here",
|
|
2643
2644
|
"effectiveTime": {{isotime}},
|
|
@@ -2755,7 +2756,7 @@ class SolutionArchitect(Client2):
|
|
|
2755
2756
|
|
|
2756
2757
|
@dynamic_catch
|
|
2757
2758
|
async def _async_detach_solution_component_from_blueprint(self, blueprint_guid: str, component_guid: str,
|
|
2758
|
-
body: dict |
|
|
2759
|
+
body: dict | DeleteRelationshipRequestBody = None) -> None:
|
|
2759
2760
|
""" Detach a solution component from a solution blueprint.
|
|
2760
2761
|
Async Version.
|
|
2761
2762
|
|
|
@@ -2799,13 +2800,13 @@ class SolutionArchitect(Client2):
|
|
|
2799
2800
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
2800
2801
|
f"solution-blueprints/{blueprint_guid}/solution-components/{component_guid}/detach")
|
|
2801
2802
|
|
|
2802
|
-
await self.
|
|
2803
|
+
await self._async_delete_relationship_request(url, body)
|
|
2803
2804
|
logger.info(
|
|
2804
2805
|
f"Detached component from blueprint {component_guid} -> {blueprint_guid}")
|
|
2805
2806
|
|
|
2806
2807
|
@dynamic_catch
|
|
2807
2808
|
def detach_solution_component_from_blueprint(self, blueprint_guid: str, component_guid: str,
|
|
2808
|
-
body: dict |
|
|
2809
|
+
body: dict | DeleteRelationshipRequestBody = None) -> None:
|
|
2809
2810
|
""" Detach a solution component from a solution blueprint.
|
|
2810
2811
|
|
|
2811
2812
|
Parameters
|
|
@@ -2851,7 +2852,7 @@ class SolutionArchitect(Client2):
|
|
|
2851
2852
|
|
|
2852
2853
|
@dynamic_catch
|
|
2853
2854
|
async def _async_delete_solution_blueprint(self, blueprint_guid: str, cascade_delete: bool = False,
|
|
2854
|
-
body: dict |
|
|
2855
|
+
body: dict | DeleteElementRequestBody = None) -> None:
|
|
2855
2856
|
"""Delete a solution blueprint. Async Version.
|
|
2856
2857
|
|
|
2857
2858
|
Parameters
|
|
@@ -2895,11 +2896,11 @@ class SolutionArchitect(Client2):
|
|
|
2895
2896
|
|
|
2896
2897
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
2897
2898
|
f"solution-blueprints/{blueprint_guid}/delete")
|
|
2898
|
-
await self.
|
|
2899
|
+
await self._async_delete_element_request(url, body, cascade_delete=cascade_delete)
|
|
2899
2900
|
logger.info(f"Deleted Blueprint {blueprint_guid} with cascade {cascade_delete}")
|
|
2900
2901
|
|
|
2901
2902
|
@dynamic_catch
|
|
2902
|
-
def delete_solution_blueprint(self, blueprint_guid: str, cascade_delete: bool = False, body: dict |
|
|
2903
|
+
def delete_solution_blueprint(self, blueprint_guid: str, cascade_delete: bool = False, body: dict | DeleteElementRequestBody = None) -> None:
|
|
2903
2904
|
""" Delete a solution blueprint.
|
|
2904
2905
|
Parameters
|
|
2905
2906
|
----------
|
|
@@ -2947,7 +2948,7 @@ class SolutionArchitect(Client2):
|
|
|
2947
2948
|
starts_with: bool = True, ends_with: bool = False,
|
|
2948
2949
|
ignore_case: bool = False, start_from: int = 0,
|
|
2949
2950
|
page_size: int = 0, output_format: str = 'JSON',
|
|
2950
|
-
|
|
2951
|
+
report_spec: str = "Solution-Blueprint",
|
|
2951
2952
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
2952
2953
|
"""Retrieve the solution blueprint elements that contain the search string.
|
|
2953
2954
|
https://egeria-project.org/concepts/solution-blueprint
|
|
@@ -3012,7 +3013,7 @@ class SolutionArchitect(Client2):
|
|
|
3012
3013
|
metadata_element_types=metadata_element_types,
|
|
3013
3014
|
starts_with=starts_with, ends_with=ends_with, ignore_case=ignore_case,
|
|
3014
3015
|
start_from=start_from, page_size=page_size,
|
|
3015
|
-
output_format=output_format,
|
|
3016
|
+
output_format=output_format, report_spec=report_spec,
|
|
3016
3017
|
body=body)
|
|
3017
3018
|
|
|
3018
3019
|
|
|
@@ -3021,7 +3022,7 @@ class SolutionArchitect(Client2):
|
|
|
3021
3022
|
starts_with: bool = True, ends_with: bool = False,
|
|
3022
3023
|
ignore_case: bool = False, start_from: int = 0,
|
|
3023
3024
|
page_size: int = 0, output_format: str = 'JSON',
|
|
3024
|
-
|
|
3025
|
+
report_spec: str = None,
|
|
3025
3026
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
3026
3027
|
"""Retrieve the list of solution blueprint elements that contain the search string.
|
|
3027
3028
|
https://egeria-project.org/concepts/solution-blueprint
|
|
@@ -3084,7 +3085,7 @@ class SolutionArchitect(Client2):
|
|
|
3084
3085
|
response = loop.run_until_complete(
|
|
3085
3086
|
self._async_find_solution_blueprints(search_string, classification_names, metadata_element_types,
|
|
3086
3087
|
starts_with, ends_with, ignore_case, start_from,
|
|
3087
|
-
page_size, output_format,
|
|
3088
|
+
page_size, output_format, report_spec, body))
|
|
3088
3089
|
return response
|
|
3089
3090
|
|
|
3090
3091
|
def find_all_solution_blueprints(self, classification_names: list[str] = None,
|
|
@@ -3092,19 +3093,19 @@ class SolutionArchitect(Client2):
|
|
|
3092
3093
|
starts_with: bool = True, ends_with: bool = False,
|
|
3093
3094
|
ignore_case: bool = False, start_from: int = 0,
|
|
3094
3095
|
page_size: int = 0, output_format: str = 'JSON',
|
|
3095
|
-
|
|
3096
|
+
report_spec: str = None,
|
|
3096
3097
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
3097
3098
|
"""Retrieve a list of all solution blueprint elements
|
|
3098
3099
|
https://egeria-project.org/concepts/solution-blueprint
|
|
3099
3100
|
"""
|
|
3100
3101
|
return self.find_solution_blueprints("*", classification_names, metadata_element_types,
|
|
3101
3102
|
starts_with, ends_with, ignore_case, start_from,
|
|
3102
|
-
page_size, output_format,
|
|
3103
|
+
page_size, output_format, report_spec, body)
|
|
3103
3104
|
|
|
3104
3105
|
|
|
3105
3106
|
async def _async_get_solution_blueprint_by_guid(self, guid: str, body: dict = None,
|
|
3106
3107
|
output_format: str = "JSON",
|
|
3107
|
-
|
|
3108
|
+
report_spec: str| Dict = "Solution-Blueprint") -> dict | str:
|
|
3108
3109
|
"""Return the properties of a specific solution blueprint. Async Version.
|
|
3109
3110
|
|
|
3110
3111
|
Parameters
|
|
@@ -3120,7 +3121,7 @@ class SolutionArchitect(Client2):
|
|
|
3120
3121
|
FORM - output markdown with a preamble for a form
|
|
3121
3122
|
REPORT - output markdown with a preamble for a report
|
|
3122
3123
|
MERMAID - output mermaid markdown
|
|
3123
|
-
|
|
3124
|
+
report_spec: str|Dict, optional
|
|
3124
3125
|
Structure of content to return.
|
|
3125
3126
|
|
|
3126
3127
|
Returns
|
|
@@ -3161,11 +3162,11 @@ class SolutionArchitect(Client2):
|
|
|
3161
3162
|
return NO_ELEMENTS_FOUND
|
|
3162
3163
|
if output_format != 'JSON': # return a simplified markdown representation
|
|
3163
3164
|
return self.generate_solution_blueprint_output(element, guid, "SolutionBlueprint",
|
|
3164
|
-
output_format,
|
|
3165
|
+
output_format, report_spec=report_spec)
|
|
3165
3166
|
return response.json().get("element", NO_ELEMENTS_FOUND)
|
|
3166
3167
|
|
|
3167
3168
|
def get_solution_blueprint_by_guid(self, guid: str, body: dict = None, output_format: str = "JSON",
|
|
3168
|
-
|
|
3169
|
+
report_spec: str| Dict = "Solution-Blueprint") -> dict | str:
|
|
3169
3170
|
""" Return the properties of a specific solution blueprint.
|
|
3170
3171
|
|
|
3171
3172
|
Parameters
|
|
@@ -3181,7 +3182,7 @@ class SolutionArchitect(Client2):
|
|
|
3181
3182
|
FORM - output markdown with a preamble for a form
|
|
3182
3183
|
REPORT - output markdown with a preamble for a report
|
|
3183
3184
|
MERMAID - output mermaid markdown
|
|
3184
|
-
|
|
3185
|
+
report_spec: str|Dict, optional
|
|
3185
3186
|
Structure of content to return.
|
|
3186
3187
|
|
|
3187
3188
|
Returns
|
|
@@ -3211,12 +3212,12 @@ class SolutionArchitect(Client2):
|
|
|
3211
3212
|
"""
|
|
3212
3213
|
loop = asyncio.get_event_loop()
|
|
3213
3214
|
response = loop.run_until_complete(self._async_get_solution_blueprint_by_guid(guid, body,
|
|
3214
|
-
output_format,
|
|
3215
|
+
output_format, report_spec))
|
|
3215
3216
|
return response
|
|
3216
3217
|
|
|
3217
3218
|
async def _async_get_solution_blueprints_by_name(self, search_filter: str, body: dict = None, start_from: int = 0,
|
|
3218
3219
|
page_size: int = max_paging_size,
|
|
3219
|
-
output_format: str = "JSON",
|
|
3220
|
+
output_format: str = "JSON", report_spec: str| Dict = "Solution-Blueprint") -> dict | str:
|
|
3220
3221
|
""" Returns the list of solution blueprints with a particular name. Async Version.
|
|
3221
3222
|
|
|
3222
3223
|
Parameters
|
|
@@ -3232,7 +3233,7 @@ class SolutionArchitect(Client2):
|
|
|
3232
3233
|
FORM - output markdown with a preamble for a form
|
|
3233
3234
|
REPORT - output markdown with a preamble for a report
|
|
3234
3235
|
MERMAID - output mermaid markdown
|
|
3235
|
-
|
|
3236
|
+
report_spec: str|Dict, optional
|
|
3236
3237
|
Structure of content to return.
|
|
3237
3238
|
|
|
3238
3239
|
Returns
|
|
@@ -3280,12 +3281,12 @@ class SolutionArchitect(Client2):
|
|
|
3280
3281
|
if element == NO_ELEMENTS_FOUND:
|
|
3281
3282
|
return NO_ELEMENTS_FOUND
|
|
3282
3283
|
if output_format != 'JSON': # return a simplified markdown representation
|
|
3283
|
-
return self.generate_solution_blueprint_output(element, search_filter, output_format,
|
|
3284
|
+
return self.generate_solution_blueprint_output(element, search_filter, output_format, report_spec=report_spec)
|
|
3284
3285
|
return response.json().get("elements", NO_ELEMENTS_FOUND)
|
|
3285
3286
|
|
|
3286
3287
|
def get_solution_blueprints_by_name(self, search_filter: str, body: dict = None, start_from: int = 0,
|
|
3287
3288
|
page_size: int = max_paging_size, output_format: str = "JSON",
|
|
3288
|
-
|
|
3289
|
+
report_spec: str| Dict = "Solution-Blueprint") -> dict | str:
|
|
3289
3290
|
""" Returns the list of solution blueprints with a particular name.
|
|
3290
3291
|
|
|
3291
3292
|
Parameters
|
|
@@ -3306,7 +3307,7 @@ class SolutionArchitect(Client2):
|
|
|
3306
3307
|
FORM - output markdown with a preamble for a form
|
|
3307
3308
|
REPORT - output markdown with a preamble for a report
|
|
3308
3309
|
MERMAID - output mermaid markdown
|
|
3309
|
-
|
|
3310
|
+
report_spec: str|Dict, optional
|
|
3310
3311
|
Structure of content to return.
|
|
3311
3312
|
|
|
3312
3313
|
Returns
|
|
@@ -3341,7 +3342,7 @@ class SolutionArchitect(Client2):
|
|
|
3341
3342
|
"""
|
|
3342
3343
|
loop = asyncio.get_event_loop()
|
|
3343
3344
|
response = loop.run_until_complete(
|
|
3344
|
-
self._async_get_solution_blueprints_by_name(search_filter, body, start_from, page_size, output_format,
|
|
3345
|
+
self._async_get_solution_blueprints_by_name(search_filter, body, start_from, page_size, output_format, report_spec))
|
|
3345
3346
|
return response
|
|
3346
3347
|
|
|
3347
3348
|
|
|
@@ -3887,7 +3888,7 @@ class SolutionArchitect(Client2):
|
|
|
3887
3888
|
loop.run_until_complete(self._async_link_subcomponent(component_guid, sub_component_guid, body))
|
|
3888
3889
|
@dynamic_catch
|
|
3889
3890
|
async def _async_detach_sub_component(self, parent_component_guid: str, member_component_guid: str,
|
|
3890
|
-
body: dict |
|
|
3891
|
+
body: dict |DeleteRelationshipRequestBody = None) -> None:
|
|
3891
3892
|
""" Detach a solution component from a solution component.
|
|
3892
3893
|
Async Version.
|
|
3893
3894
|
|
|
@@ -3918,7 +3919,7 @@ class SolutionArchitect(Client2):
|
|
|
3918
3919
|
|
|
3919
3920
|
Body structure:
|
|
3920
3921
|
{
|
|
3921
|
-
"class": "
|
|
3922
|
+
"class": "DeleteRelationshipRequestBody",
|
|
3922
3923
|
"externalSourceGUID": "add guid here",
|
|
3923
3924
|
"externalSourceName": "add qualified name here",
|
|
3924
3925
|
"effectiveTime": {{isotime}},
|
|
@@ -3931,12 +3932,12 @@ class SolutionArchitect(Client2):
|
|
|
3931
3932
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
3932
3933
|
f"solution-components/{parent_component_guid}/subcomponents/{member_component_guid}/detach")
|
|
3933
3934
|
|
|
3934
|
-
await self.
|
|
3935
|
+
await self._async_delete_relationship_request(url, body)
|
|
3935
3936
|
logger.info(
|
|
3936
3937
|
f"Detached components {parent_component_guid} -> {member_component_guid}")
|
|
3937
3938
|
|
|
3938
3939
|
@dynamic_catch
|
|
3939
|
-
def detach_sub_component(self, parent_component_guid: str, member_component_guid: str, body: dict|
|
|
3940
|
+
def detach_sub_component(self, parent_component_guid: str, member_component_guid: str, body: dict| DeleteRelationshipRequestBody = None) -> None:
|
|
3940
3941
|
""" Detach a solution component from a solution component.
|
|
3941
3942
|
Async Version.
|
|
3942
3943
|
|
|
@@ -3946,7 +3947,7 @@ class SolutionArchitect(Client2):
|
|
|
3946
3947
|
guid of the parent component to disconnect from.
|
|
3947
3948
|
member_component_guid: str
|
|
3948
3949
|
guid of the member (child) component to disconnect.
|
|
3949
|
-
body: dict |
|
|
3950
|
+
body: dict | DeleteRelationshipRequestBody
|
|
3950
3951
|
The body describing the request.
|
|
3951
3952
|
|
|
3952
3953
|
Returns
|
|
@@ -3967,7 +3968,7 @@ class SolutionArchitect(Client2):
|
|
|
3967
3968
|
|
|
3968
3969
|
Body structure:
|
|
3969
3970
|
{
|
|
3970
|
-
"class": "
|
|
3971
|
+
"class": "DeleteRelationshipRequestBody",
|
|
3971
3972
|
"externalSourceGUID": "add guid here",
|
|
3972
3973
|
"externalSourceName": "add qualified name here",
|
|
3973
3974
|
"effectiveTime": {{isotime}},
|
|
@@ -4081,7 +4082,7 @@ class SolutionArchitect(Client2):
|
|
|
4081
4082
|
|
|
4082
4083
|
@dynamic_catch
|
|
4083
4084
|
async def _async_detach_solution_linking_wire(self, component1_guid: str, component2_guid: str,
|
|
4084
|
-
body: dict |
|
|
4085
|
+
body: dict | DeleteRelationshipRequestBody = None) -> None:
|
|
4085
4086
|
""" Detach a solution component from a peer solution component.
|
|
4086
4087
|
Async Version.
|
|
4087
4088
|
|
|
@@ -4091,7 +4092,7 @@ class SolutionArchitect(Client2):
|
|
|
4091
4092
|
GUID of the first component to unlink.
|
|
4092
4093
|
component2_guid: str
|
|
4093
4094
|
GUID of the second component to unlink.
|
|
4094
|
-
body: dict |
|
|
4095
|
+
body: dict | DeleteRelationshipRequestBody
|
|
4095
4096
|
The body describing the request.
|
|
4096
4097
|
|
|
4097
4098
|
Returns
|
|
@@ -4112,7 +4113,7 @@ class SolutionArchitect(Client2):
|
|
|
4112
4113
|
|
|
4113
4114
|
Body structure:
|
|
4114
4115
|
{
|
|
4115
|
-
"class" : "
|
|
4116
|
+
"class" : "DeleteRelationshipRequestBody",
|
|
4116
4117
|
"externalSourceGUID": "add guid here",
|
|
4117
4118
|
"externalSourceName": "add qualified name here",
|
|
4118
4119
|
"effectiveTime" : "{{$isoTimestamp}}",
|
|
@@ -4125,12 +4126,12 @@ class SolutionArchitect(Client2):
|
|
|
4125
4126
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
4126
4127
|
f"solution-components/{component1_guid}/wired-to/{component2_guid}/detach")
|
|
4127
4128
|
|
|
4128
|
-
await self.
|
|
4129
|
+
await self._async_delete_relationship_request(url, body)
|
|
4129
4130
|
logger.info(
|
|
4130
4131
|
f"Detached solution linking wire between {component1_guid} -> {component2_guid}")
|
|
4131
4132
|
|
|
4132
4133
|
@dynamic_catch
|
|
4133
|
-
def detach_solution_linking_wire(self, component1_guid: str, component2_guid: str, body: dict |
|
|
4134
|
+
def detach_solution_linking_wire(self, component1_guid: str, component2_guid: str, body: dict | DeleteRelationshipRequestBody = None) -> None:
|
|
4134
4135
|
""" Detach a solution component from a peer solution component.
|
|
4135
4136
|
Async Version.
|
|
4136
4137
|
|
|
@@ -4140,7 +4141,7 @@ class SolutionArchitect(Client2):
|
|
|
4140
4141
|
GUID of the first component to unlink.
|
|
4141
4142
|
component2_guid: str
|
|
4142
4143
|
GUID of the second component to unlink.
|
|
4143
|
-
body: dict |
|
|
4144
|
+
body: dict | DeleteRelationshipRequestBody
|
|
4144
4145
|
The body describing the request.
|
|
4145
4146
|
The body describing the request.
|
|
4146
4147
|
|
|
@@ -4162,7 +4163,7 @@ class SolutionArchitect(Client2):
|
|
|
4162
4163
|
|
|
4163
4164
|
Body structure:
|
|
4164
4165
|
{
|
|
4165
|
-
"class" : "
|
|
4166
|
+
"class" : "DeleteRelationshipRequestBody",
|
|
4166
4167
|
"externalSourceGUID": "add guid here",
|
|
4167
4168
|
"externalSourceName": "add qualified name here",
|
|
4168
4169
|
"effectiveTime" : "{{$isoTimestamp}}",
|
|
@@ -4176,7 +4177,7 @@ class SolutionArchitect(Client2):
|
|
|
4176
4177
|
|
|
4177
4178
|
@dynamic_catch
|
|
4178
4179
|
async def _async_delete_solution_component(self, solution_component_guid: str, cascade_delete: bool = False,
|
|
4179
|
-
body: dict |
|
|
4180
|
+
body: dict | DeleteElementRequestBody= None) -> None:
|
|
4180
4181
|
"""Delete a solution component. Async Version.
|
|
4181
4182
|
|
|
4182
4183
|
Parameters
|
|
@@ -4185,7 +4186,7 @@ class SolutionArchitect(Client2):
|
|
|
4185
4186
|
guid of the component to delete.
|
|
4186
4187
|
cascade_delete: bool, optional, default: False
|
|
4187
4188
|
Cascade the delete to dependent objects?
|
|
4188
|
-
body: dict |
|
|
4189
|
+
body: dict | DeleteElementRequestBody, optional
|
|
4189
4190
|
A dictionary containing parameters for the deletion.
|
|
4190
4191
|
|
|
4191
4192
|
Returns
|
|
@@ -4206,7 +4207,7 @@ class SolutionArchitect(Client2):
|
|
|
4206
4207
|
|
|
4207
4208
|
Body structure:
|
|
4208
4209
|
{
|
|
4209
|
-
"class": "
|
|
4210
|
+
"class": "DeleteElementRequestBody",
|
|
4210
4211
|
"externalSourceGUID": "add guid here",
|
|
4211
4212
|
"externalSourceName": "add qualified name here",
|
|
4212
4213
|
"effectiveTime": {{isotime}},
|
|
@@ -4218,12 +4219,12 @@ class SolutionArchitect(Client2):
|
|
|
4218
4219
|
|
|
4219
4220
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
4220
4221
|
f"solution-components/{solution_component_guid}/delete")
|
|
4221
|
-
await self.
|
|
4222
|
+
await self._async_delete_element_request(url, body, cascade_delete=cascade_delete)
|
|
4222
4223
|
logger.info(f"Deleted Solution Component {solution_component_guid} with cascade {cascade_delete}")
|
|
4223
4224
|
|
|
4224
4225
|
@dynamic_catch
|
|
4225
4226
|
def delete_solution_component(self, solution_component_guid: str, cascade_delete: bool = False,
|
|
4226
|
-
body: dict |
|
|
4227
|
+
body: dict | DeleteElementRequestBody = None) -> None:
|
|
4227
4228
|
"""Delete a solution component.
|
|
4228
4229
|
Parameters
|
|
4229
4230
|
----------
|
|
@@ -4231,7 +4232,7 @@ class SolutionArchitect(Client2):
|
|
|
4231
4232
|
guid of the component to delete.
|
|
4232
4233
|
cascade_delete: bool, optional, default: False
|
|
4233
4234
|
Cascade the delete to dependent objects?
|
|
4234
|
-
body: dict |
|
|
4235
|
+
body: dict | DeleteElementRequestBody, optional
|
|
4235
4236
|
A dictionary containing parameters for the deletion.
|
|
4236
4237
|
|
|
4237
4238
|
Returns
|
|
@@ -4252,7 +4253,7 @@ class SolutionArchitect(Client2):
|
|
|
4252
4253
|
|
|
4253
4254
|
Body structure:
|
|
4254
4255
|
{
|
|
4255
|
-
"class": "
|
|
4256
|
+
"class": "DeleteElementRequestBody",
|
|
4256
4257
|
"externalSourceGUID": "add guid here",
|
|
4257
4258
|
"externalSourceName": "add qualified name here",
|
|
4258
4259
|
"effectiveTime": {{isotime}},
|
|
@@ -4268,7 +4269,7 @@ class SolutionArchitect(Client2):
|
|
|
4268
4269
|
starts_with: bool = True, ends_with: bool = False,
|
|
4269
4270
|
ignore_case: bool = False, start_from: int = 0,
|
|
4270
4271
|
page_size: int = 0, output_format: str = 'JSON',
|
|
4271
|
-
|
|
4272
|
+
report_spec: str = None,
|
|
4272
4273
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
4273
4274
|
""" Retrieve the solution component elements that contain the search string. The solutions components returned
|
|
4274
4275
|
include information about consumers, actors, and other solution components that are associated with them.
|
|
@@ -4335,7 +4336,7 @@ class SolutionArchitect(Client2):
|
|
|
4335
4336
|
metadata_element_types=metadata_element_types,
|
|
4336
4337
|
starts_with=starts_with, ends_with=ends_with, ignore_case=ignore_case,
|
|
4337
4338
|
start_from=start_from, page_size=page_size,
|
|
4338
|
-
output_format=output_format,
|
|
4339
|
+
output_format=output_format, report_spec=report_spec,
|
|
4339
4340
|
body=body)
|
|
4340
4341
|
|
|
4341
4342
|
def find_solution_components(self, search_string: str = "*", classification_names: list[str] = None,
|
|
@@ -4343,7 +4344,7 @@ class SolutionArchitect(Client2):
|
|
|
4343
4344
|
starts_with: bool = True, ends_with: bool = False,
|
|
4344
4345
|
ignore_case: bool = False, start_from: int = 0,
|
|
4345
4346
|
page_size: int = 0, output_format: str = 'JSON',
|
|
4346
|
-
|
|
4347
|
+
report_spec: str = None,
|
|
4347
4348
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
4348
4349
|
""" Retrieve the solution component elements that contain the search string. The solutions components returned
|
|
4349
4350
|
include information about consumers, actors, and other solution components that are associated with them.
|
|
@@ -4402,7 +4403,7 @@ class SolutionArchitect(Client2):
|
|
|
4402
4403
|
|
|
4403
4404
|
loop = asyncio.get_event_loop()
|
|
4404
4405
|
response = loop.run_until_complete(
|
|
4405
|
-
self._async_find_solution_components(search_string, classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format,
|
|
4406
|
+
self._async_find_solution_components(search_string, classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format, report_spec, body))
|
|
4406
4407
|
return response
|
|
4407
4408
|
|
|
4408
4409
|
def find_all_solution_components(self, classification_names: list[str] = None,
|
|
@@ -4410,12 +4411,12 @@ class SolutionArchitect(Client2):
|
|
|
4410
4411
|
starts_with: bool = True, ends_with: bool = False,
|
|
4411
4412
|
ignore_case: bool = False, start_from: int = 0,
|
|
4412
4413
|
page_size: int = 0, output_format: str = 'JSON',
|
|
4413
|
-
|
|
4414
|
+
report_spec: str = None,
|
|
4414
4415
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
4415
4416
|
"""Retrieve a list of all solution component elements
|
|
4416
4417
|
https://egeria-project.org/concepts/solution-components
|
|
4417
4418
|
"""
|
|
4418
|
-
return self.find_solution_components("*", classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format,
|
|
4419
|
+
return self.find_solution_components("*", classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format, report_spec, body)
|
|
4419
4420
|
|
|
4420
4421
|
|
|
4421
4422
|
async def _async_get_solution_components_by_name(self, search_filter: str, body: dict = None, start_from: int = 0,
|
|
@@ -4543,7 +4544,7 @@ class SolutionArchitect(Client2):
|
|
|
4543
4544
|
return response
|
|
4544
4545
|
|
|
4545
4546
|
async def _async_get_solution_component_by_guid(self, guid: str, body: dict = None,
|
|
4546
|
-
output_format: str = "JSON",
|
|
4547
|
+
output_format: str = "JSON", report_spec: str = "Solution-Component-DrE") -> dict | str:
|
|
4547
4548
|
""" Return the properties of a specific solution component. Async Version.
|
|
4548
4549
|
|
|
4549
4550
|
Parameters
|
|
@@ -4559,7 +4560,7 @@ class SolutionArchitect(Client2):
|
|
|
4559
4560
|
FORM - output markdown with a preamble for a form
|
|
4560
4561
|
REPORT - output markdown with a preamble for a report
|
|
4561
4562
|
MERMAID - output mermaid markdown
|
|
4562
|
-
|
|
4563
|
+
report_spec: str, default = "Solution-Component-DrE"
|
|
4563
4564
|
Structure of output to produce:
|
|
4564
4565
|
|
|
4565
4566
|
Returns
|
|
@@ -4592,7 +4593,7 @@ class SolutionArchitect(Client2):
|
|
|
4592
4593
|
f"solution-components/{guid}/retrieve")
|
|
4593
4594
|
response = await self._async_get_guid_request(url, 'SolutionComponent',
|
|
4594
4595
|
self.generate_solution_components_output,
|
|
4595
|
-
output_format,
|
|
4596
|
+
output_format, report_spec, body)
|
|
4596
4597
|
return response
|
|
4597
4598
|
|
|
4598
4599
|
# if body is None:
|
|
@@ -5365,7 +5366,7 @@ class SolutionArchitect(Client2):
|
|
|
5365
5366
|
loop.run_until_complete(self._async_link_component_to_actor(role_guid, component_guid, body))
|
|
5366
5367
|
|
|
5367
5368
|
@dynamic_catch
|
|
5368
|
-
async def _async_detach_component_actor(self, role_guid: str, component_guid: str, body: dict |
|
|
5369
|
+
async def _async_detach_component_actor(self, role_guid: str, component_guid: str, body: dict | DeleteRelationshipRequestBody = None) -> None:
|
|
5369
5370
|
""" Detach a solution role from a solution component.
|
|
5370
5371
|
Async Version.
|
|
5371
5372
|
|
|
@@ -5375,7 +5376,7 @@ class SolutionArchitect(Client2):
|
|
|
5375
5376
|
guid of the role to disconnect from.
|
|
5376
5377
|
component_guid: str
|
|
5377
5378
|
guid of the component to disconnect.
|
|
5378
|
-
body: dict |
|
|
5379
|
+
body: dict | DeleteRelationshipRequestBody, optional
|
|
5379
5380
|
A dictionary containing the properties of the relationship to create.
|
|
5380
5381
|
|
|
5381
5382
|
Returns
|
|
@@ -5396,7 +5397,7 @@ class SolutionArchitect(Client2):
|
|
|
5396
5397
|
|
|
5397
5398
|
Body structure:
|
|
5398
5399
|
{
|
|
5399
|
-
"class": "
|
|
5400
|
+
"class": "DeleteRelationshipRequestBody",
|
|
5400
5401
|
"externalSourceGUID": "add guid here",
|
|
5401
5402
|
"externalSourceName": "add qualified name here",
|
|
5402
5403
|
"effectiveTime": {{isotime}},
|
|
@@ -5409,12 +5410,12 @@ class SolutionArchitect(Client2):
|
|
|
5409
5410
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
5410
5411
|
f"solution-components/{role_guid}/solution-component-actors/{component_guid}/detach")
|
|
5411
5412
|
|
|
5412
|
-
await self.
|
|
5413
|
+
await self._async_delete_relationship_request(url, body)
|
|
5413
5414
|
logger.info(
|
|
5414
5415
|
f"Detached role from component {role_guid} -> {component_guid}")
|
|
5415
5416
|
|
|
5416
5417
|
@dynamic_catch
|
|
5417
|
-
def detach_component_actore(self, role_guid: str, component_guid: str, body: dict |
|
|
5418
|
+
def detach_component_actore(self, role_guid: str, component_guid: str, body: dict |DeleteRelationshipRequestBody = None) -> None:
|
|
5418
5419
|
""" Detach a solution role from a solution component.
|
|
5419
5420
|
|
|
5420
5421
|
Parameters
|
|
@@ -5423,7 +5424,7 @@ class SolutionArchitect(Client2):
|
|
|
5423
5424
|
guid of the role to disconnect from.
|
|
5424
5425
|
component_guid: str
|
|
5425
5426
|
guid of the component to disconnect.
|
|
5426
|
-
body: dict |
|
|
5427
|
+
body: dict | DeleteRelationshipRequestBody, optional
|
|
5427
5428
|
A dictionary containing the properties of the relationship to create.
|
|
5428
5429
|
|
|
5429
5430
|
Returns
|
|
@@ -5444,7 +5445,7 @@ class SolutionArchitect(Client2):
|
|
|
5444
5445
|
|
|
5445
5446
|
Body structure:
|
|
5446
5447
|
{
|
|
5447
|
-
"class": "
|
|
5448
|
+
"class": "DeleteRelationshipRequestBody",
|
|
5448
5449
|
"externalSourceGUID": "add guid here",
|
|
5449
5450
|
"externalSourceName": "add qualified name here",
|
|
5450
5451
|
"effectiveTime": {{isotime}},
|
|
@@ -5456,14 +5457,14 @@ class SolutionArchitect(Client2):
|
|
|
5456
5457
|
loop.run_until_complete(self._async_detach_component_actor(role_guid, component_guid, body))
|
|
5457
5458
|
|
|
5458
5459
|
@dynamic_catch
|
|
5459
|
-
async def _async_delete_solution_role(self, guid: str, body: dict |
|
|
5460
|
+
async def _async_delete_solution_role(self, guid: str, body: dict | DeleteElementRequestBody= None, cascade_delete: bool = False,) -> None:
|
|
5460
5461
|
"""Delete a solution role. Async Version.
|
|
5461
5462
|
|
|
5462
5463
|
Parameters
|
|
5463
5464
|
----------
|
|
5464
5465
|
guid: str
|
|
5465
5466
|
guid of the role to delete.
|
|
5466
|
-
body: dict |
|
|
5467
|
+
body: dict | DeleteElementRequestBody, optional
|
|
5467
5468
|
A dictionary containing parameters for the deletion.
|
|
5468
5469
|
cascade_delete: bool, optional, default: False
|
|
5469
5470
|
Cascade the delete to dependent objects?
|
|
@@ -5487,7 +5488,7 @@ class SolutionArchitect(Client2):
|
|
|
5487
5488
|
|
|
5488
5489
|
Body structure:
|
|
5489
5490
|
{
|
|
5490
|
-
"class": "
|
|
5491
|
+
"class": "DeleteElementRequestBody",
|
|
5491
5492
|
"externalSourceGUID": "add guid here",
|
|
5492
5493
|
"externalSourceName": "add qualified name here",
|
|
5493
5494
|
"effectiveTime": {{isotime}},
|
|
@@ -5499,18 +5500,18 @@ class SolutionArchitect(Client2):
|
|
|
5499
5500
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
5500
5501
|
f"solution-roles/{guid}/delete")
|
|
5501
5502
|
|
|
5502
|
-
await self.
|
|
5503
|
+
await self._async_delete_element_request(url, body, cascade_delete=cascade_delete)
|
|
5503
5504
|
logger.info(f"Delete solution rule {guid} with cascade {cascade_delete}")
|
|
5504
5505
|
|
|
5505
5506
|
@dynamic_catch
|
|
5506
|
-
def delete_solution_role(self, guid: str, body: dict |
|
|
5507
|
+
def delete_solution_role(self, guid: str, body: dict | DeleteElementRequestBody = None,cascade_delete: bool = False) -> None:
|
|
5507
5508
|
"""Delete a solution role. Async Version.
|
|
5508
5509
|
|
|
5509
5510
|
Parameters
|
|
5510
5511
|
----------
|
|
5511
5512
|
guid: str
|
|
5512
5513
|
guid of the role to delete.
|
|
5513
|
-
body: dict |
|
|
5514
|
+
body: dict | DeleteElementRequestBody, optional
|
|
5514
5515
|
A dictionary containing parameters for the deletion.
|
|
5515
5516
|
cascade_delete: bool, optional, default: False
|
|
5516
5517
|
Cascade the delete to dependent objects?
|
|
@@ -5533,7 +5534,7 @@ class SolutionArchitect(Client2):
|
|
|
5533
5534
|
|
|
5534
5535
|
Body structure:
|
|
5535
5536
|
{
|
|
5536
|
-
"class": "
|
|
5537
|
+
"class": "DeleteElementRequestBody",
|
|
5537
5538
|
"externalSourceGUID": "add guid here",
|
|
5538
5539
|
"externalSourceName": "add qualified name here",
|
|
5539
5540
|
"effectiveTime": {{isotime}},
|
|
@@ -5549,7 +5550,7 @@ class SolutionArchitect(Client2):
|
|
|
5549
5550
|
starts_with: bool = True, ends_with: bool = False,
|
|
5550
5551
|
ignore_case: bool = False, start_from: int = 0,
|
|
5551
5552
|
page_size: int = 0, output_format: str = 'JSON',
|
|
5552
|
-
|
|
5553
|
+
report_spec: str = None,
|
|
5553
5554
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
5554
5555
|
"""Retrieve the solution role elements that contain the search string.
|
|
5555
5556
|
https://egeria-project.org/concepts/actor
|
|
@@ -5616,7 +5617,7 @@ class SolutionArchitect(Client2):
|
|
|
5616
5617
|
metadata_element_types=metadata_element_types,
|
|
5617
5618
|
starts_with=starts_with, ends_with=ends_with, ignore_case=ignore_case,
|
|
5618
5619
|
start_from=start_from, page_size=page_size,
|
|
5619
|
-
output_format=output_format,
|
|
5620
|
+
output_format=output_format, report_spec=report_spec,
|
|
5620
5621
|
body=body)
|
|
5621
5622
|
|
|
5622
5623
|
def find_solution_roles(self, search_string: str = "*", classification_names: list[str] = None,
|
|
@@ -5624,7 +5625,7 @@ class SolutionArchitect(Client2):
|
|
|
5624
5625
|
starts_with: bool = True, ends_with: bool = False,
|
|
5625
5626
|
ignore_case: bool = False, start_from: int = 0,
|
|
5626
5627
|
page_size: int = 0, output_format: str = 'JSON',
|
|
5627
|
-
|
|
5628
|
+
report_spec: str = None,
|
|
5628
5629
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
5629
5630
|
"""Retrieve the list of solution role elements that contain the search string.
|
|
5630
5631
|
https://egeria-project.org/concepts/actor
|
|
@@ -5689,7 +5690,7 @@ class SolutionArchitect(Client2):
|
|
|
5689
5690
|
|
|
5690
5691
|
loop = asyncio.get_event_loop()
|
|
5691
5692
|
response = loop.run_until_complete(
|
|
5692
|
-
self._async_find_solution_roles(search_string, classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format,
|
|
5693
|
+
self._async_find_solution_roles(search_string, classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format, report_spec, body))
|
|
5693
5694
|
return response
|
|
5694
5695
|
|
|
5695
5696
|
def find_all_solution_roles(self, classification_names: list[str] = None,
|
|
@@ -5697,12 +5698,12 @@ class SolutionArchitect(Client2):
|
|
|
5697
5698
|
starts_with: bool = True, ends_with: bool = False,
|
|
5698
5699
|
ignore_case: bool = False, start_from: int = 0,
|
|
5699
5700
|
page_size: int = 0, output_format: str = 'JSON',
|
|
5700
|
-
|
|
5701
|
+
report_spec: str = None,
|
|
5701
5702
|
body: dict| SearchStringRequestBody = None) -> list[dict] | str:
|
|
5702
5703
|
"""Retrieve a list of all solution blueprint elements
|
|
5703
5704
|
https://egeria-project.org/concepts/actor
|
|
5704
5705
|
"""
|
|
5705
|
-
return self.find_solution_roles("*", classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format,
|
|
5706
|
+
return self.find_solution_roles("*", classification_names, metadata_element_types, starts_with, ends_with, ignore_case, start_from, page_size, output_format, report_spec, body)
|
|
5706
5707
|
|
|
5707
5708
|
|
|
5708
5709
|
async def _async_get_solution_roles_by_name(self, search_filter: str, body: dict = None, start_from: int = 0,
|