pyegeria 5.4.8__py3-none-any.whl → 5.4.8.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.
- md_processing/__init__.py +2 -1
- md_processing/data/commands.json +59579 -52198
- md_processing/dr_egeria.py +7 -5
- md_processing/md_commands/solution_architect_commands.py +54 -10
- md_processing/md_processing_utils/common_md_proc_utils.py +8 -4
- md_processing/md_processing_utils/common_md_utils.py +41 -2
- pyegeria/_base_client.py +1 -17
- pyegeria/_client_new.py +1008 -323
- pyegeria/_client_new_backup.py +5359 -0
- pyegeria/_exceptions_new.py +6 -1
- pyegeria/base_report_formats.py +31 -2
- pyegeria/classification_manager.py +1430 -357
- pyegeria/collection_manager.py +52 -54
- pyegeria/config.py +1 -0
- pyegeria/data_designer.py +41 -41
- pyegeria/external_links.py +26 -26
- pyegeria/feedback_manager_omvs.py +13 -31
- pyegeria/glossary_manager.py +32 -35
- pyegeria/governance_officer.py +31 -31
- pyegeria/output_formatter.py +36 -11
- pyegeria/output_formatter_with_machine_keys.py +1127 -0
- pyegeria/project_manager.py +21 -21
- pyegeria/reference_data.py +2 -2
- pyegeria/solution_architect.py +112 -91
- {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/METADATA +6 -5
- {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/RECORD +30 -29
- pyegeria/md_processing_utils_orig.py +0 -1103
- {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/WHEEL +0 -0
- {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/entry_points.txt +0 -0
- {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/licenses/LICENSE +0 -0
- {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/top_level.txt +0 -0
pyegeria/solution_architect.py
CHANGED
|
@@ -15,7 +15,8 @@ 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
22
|
from pyegeria.base_report_formats import select_report_spec, get_report_spec_match
|
|
@@ -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}},
|
|
@@ -1809,7 +1810,7 @@ class SolutionArchitect(Client2):
|
|
|
1809
1810
|
async def _async_get_info_supply_chain_by_name(self, search_filter: str, body: dict = None,
|
|
1810
1811
|
add_implementation: bool = True, start_from: int = 0,
|
|
1811
1812
|
page_size: int = max_paging_size,
|
|
1812
|
-
output_format: str = "JSON") -> dict | str:
|
|
1813
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
1813
1814
|
""" Returns the list of information supply chains with a particular name. Async Version.
|
|
1814
1815
|
|
|
1815
1816
|
Parameters
|
|
@@ -1874,12 +1875,12 @@ class SolutionArchitect(Client2):
|
|
|
1874
1875
|
if element == NO_ELEMENTS_FOUND:
|
|
1875
1876
|
return NO_ELEMENTS_FOUND
|
|
1876
1877
|
if output_format != 'JSON': # return a simplified markdown representation
|
|
1877
|
-
return self.generate_info_supply_chain_output(element, None, output_format)
|
|
1878
|
+
return self.generate_info_supply_chain_output(element, None, output_format, report_spec=report_spec)
|
|
1878
1879
|
return response.json().get("elements", NO_ELEMENTS_FOUND)
|
|
1879
1880
|
|
|
1880
1881
|
def get_info_supply_chain_by_name(self, search_filter: str, body: dict = None, add_implementation: bool = True,
|
|
1881
1882
|
start_from: int = 0, page_size: int = max_paging_size,
|
|
1882
|
-
output_format: str = "JSON") -> dict | str:
|
|
1883
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
1883
1884
|
""" Returns the list of information supply chains with a particular name. Async Version.
|
|
1884
1885
|
|
|
1885
1886
|
Parameters
|
|
@@ -1936,11 +1937,11 @@ class SolutionArchitect(Client2):
|
|
|
1936
1937
|
loop = asyncio.get_event_loop()
|
|
1937
1938
|
response = loop.run_until_complete(
|
|
1938
1939
|
self._async_get_info_supply_chain_by_name(search_filter, body, add_implementation, start_from, page_size,
|
|
1939
|
-
output_format))
|
|
1940
|
+
output_format, report_spec))
|
|
1940
1941
|
return response
|
|
1941
1942
|
|
|
1942
1943
|
async def _async_get_info_supply_chain_by_guid(self, guid: str, body: dict = None, add_implementation: bool = True,
|
|
1943
|
-
output_format: str = "JSON") -> dict | str:
|
|
1944
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
1944
1945
|
"""Return the properties of a specific information supply chain. Async Version.
|
|
1945
1946
|
|
|
1946
1947
|
Parameters
|
|
@@ -1997,11 +1998,11 @@ class SolutionArchitect(Client2):
|
|
|
1997
1998
|
if element == NO_ELEMENTS_FOUND:
|
|
1998
1999
|
return NO_ELEMENTS_FOUND
|
|
1999
2000
|
if output_format != 'JSON': # return a simplified markdown representation
|
|
2000
|
-
return self.generate_info_supply_chain_output(element, None, output_format)
|
|
2001
|
+
return self.generate_info_supply_chain_output(element, None, output_format, report_spec=report_spec)
|
|
2001
2002
|
return element
|
|
2002
2003
|
|
|
2003
2004
|
def get_info_supply_chain_by_guid(self, guid: str, body: dict = None, add_implementation: bool = True,
|
|
2004
|
-
output_format: str = "JSON") -> dict | str:
|
|
2005
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
2005
2006
|
""" Return the properties of a specific information supply chain.
|
|
2006
2007
|
|
|
2007
2008
|
Parameters
|
|
@@ -2047,7 +2048,7 @@ class SolutionArchitect(Client2):
|
|
|
2047
2048
|
"""
|
|
2048
2049
|
loop = asyncio.get_event_loop()
|
|
2049
2050
|
response = loop.run_until_complete(
|
|
2050
|
-
self._async_get_info_supply_chain_by_guid(guid, body, add_implementation, output_format))
|
|
2051
|
+
self._async_get_info_supply_chain_by_guid(guid, body, add_implementation, output_format, report_spec))
|
|
2051
2052
|
return response
|
|
2052
2053
|
|
|
2053
2054
|
#
|
|
@@ -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
|
----------
|
|
@@ -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}},
|
|
@@ -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
|
-
report_spec: str = None,
|
|
4347
|
+
report_spec: str | dict = 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.
|
|
@@ -4419,7 +4420,7 @@ class SolutionArchitect(Client2):
|
|
|
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,
|
|
4422
|
-
page_size: int = 0, output_format: str = "JSON") -> dict | str:
|
|
4423
|
+
page_size: int = 0, output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
4423
4424
|
""" Returns the list of solution components with a particular name. Async Version.
|
|
4424
4425
|
|
|
4425
4426
|
Parameters
|
|
@@ -4481,11 +4482,12 @@ class SolutionArchitect(Client2):
|
|
|
4481
4482
|
if element == NO_ELEMENTS_FOUND:
|
|
4482
4483
|
return NO_ELEMENTS_FOUND
|
|
4483
4484
|
if output_format != 'JSON': # return a simplified markdown representation
|
|
4484
|
-
return self.generate_solution_components_output(element, search_filter, output_format)
|
|
4485
|
+
return self.generate_solution_components_output(element, search_filter, output_format, report_spec=report_spec)
|
|
4485
4486
|
return response.json().get("elements", NO_ELEMENTS_FOUND)
|
|
4486
4487
|
|
|
4487
4488
|
def get_solution_components_by_name(self, search_filter: str, body: dict = None, start_from: int = 0,
|
|
4488
|
-
page_size: int = max_paging_size, output_format: str = "JSON"
|
|
4489
|
+
page_size: int = max_paging_size, output_format: str = "JSON",
|
|
4490
|
+
report_spec: str | dict = None) -> dict | str:
|
|
4489
4491
|
""" Returns the list of solution components with a particular name.
|
|
4490
4492
|
|
|
4491
4493
|
Parameters
|
|
@@ -4536,10 +4538,13 @@ class SolutionArchitect(Client2):
|
|
|
4536
4538
|
"filter": "Add name here"
|
|
4537
4539
|
}
|
|
4538
4540
|
|
|
4541
|
+
Args:
|
|
4542
|
+
report_spec ():
|
|
4543
|
+
|
|
4539
4544
|
"""
|
|
4540
4545
|
loop = asyncio.get_event_loop()
|
|
4541
4546
|
response = loop.run_until_complete(
|
|
4542
|
-
self._async_get_solution_components_by_name(search_filter, body, start_from, page_size, output_format))
|
|
4547
|
+
self._async_get_solution_components_by_name(search_filter, body, start_from, page_size, output_format, report_spec))
|
|
4543
4548
|
return response
|
|
4544
4549
|
|
|
4545
4550
|
async def _async_get_solution_component_by_guid(self, guid: str, body: dict = None,
|
|
@@ -4606,7 +4611,7 @@ class SolutionArchitect(Client2):
|
|
|
4606
4611
|
# return self.generate_solution_components_output(element, None, output_format)
|
|
4607
4612
|
# return response.json().get("element", NO_ELEMENTS_FOUND)
|
|
4608
4613
|
|
|
4609
|
-
def get_solution_component_by_guid(self, guid: str, body: dict = None, output_format: str = "JSON") -> dict | str:
|
|
4614
|
+
def get_solution_component_by_guid(self, guid: str, body: dict = None, output_format: str = "JSON", report_spec: str | dict = "Solution-Component-DrE") -> dict | str:
|
|
4610
4615
|
""" Return the properties of a specific solution component.
|
|
4611
4616
|
|
|
4612
4617
|
Parameters
|
|
@@ -4649,7 +4654,7 @@ class SolutionArchitect(Client2):
|
|
|
4649
4654
|
|
|
4650
4655
|
"""
|
|
4651
4656
|
loop = asyncio.get_event_loop()
|
|
4652
|
-
response = loop.run_until_complete(self._async_get_solution_component_by_guid(guid, body, output_format))
|
|
4657
|
+
response = loop.run_until_complete(self._async_get_solution_component_by_guid(guid, body, output_format, report_spec))
|
|
4653
4658
|
return response
|
|
4654
4659
|
|
|
4655
4660
|
|
|
@@ -4666,17 +4671,32 @@ class SolutionArchitect(Client2):
|
|
|
4666
4671
|
blueprint_guids = []
|
|
4667
4672
|
supply_chain_guids = []
|
|
4668
4673
|
parent_component_guids = []
|
|
4674
|
+
keywords_list = {}
|
|
4669
4675
|
|
|
4670
|
-
col_members = response.get('
|
|
4676
|
+
col_members = response.get('memberOfCollections', None)
|
|
4671
4677
|
if col_members is not None:
|
|
4672
4678
|
for member in col_members:
|
|
4673
|
-
guid = member['relatedElement'].get('guid', None)
|
|
4674
|
-
|
|
4675
|
-
if
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4679
|
+
guid = member['relatedElement']['elementHeader'].get('guid', None)
|
|
4680
|
+
type_name = member['relatedElement']['elementHeader']['type'].get('typeName',None)
|
|
4681
|
+
if type_name == 'SolutionBlueprint':
|
|
4682
|
+
blueprint_guids.append(guid)
|
|
4683
|
+
elif type_name == 'InformationSupplyChain':
|
|
4684
|
+
supply_chain_guids.append(guid)
|
|
4685
|
+
derived_from = response.get('derivedFrom', None)
|
|
4686
|
+
if derived_from is not None:
|
|
4687
|
+
for mem in derived_from:
|
|
4688
|
+
guid = mem['relatedElement']['elementHeader'].get('guid', None)
|
|
4689
|
+
type_name = mem['relatedElement']['elementHeader']['type'].get('typeName',None)
|
|
4690
|
+
if type_name == 'SolutionBlueprint':
|
|
4691
|
+
supply_chain_guids.append(guid)
|
|
4692
|
+
|
|
4693
|
+
keywords = response.get('searchKeywords', None)
|
|
4694
|
+
for mem in keywords:
|
|
4695
|
+
guid = mem['relatedElement']['elementHeader'].get('guid', None)
|
|
4696
|
+
keyword = mem['relatedElement']['properties'].get('displayName',None)
|
|
4697
|
+
if keyword is None:
|
|
4698
|
+
keyword = mem['relatedElement']['properties'].get('keyword',None)
|
|
4699
|
+
keywords_list[keyword] = guid
|
|
4680
4700
|
|
|
4681
4701
|
sub_components = response.get('nestedSolutionComponents', None)
|
|
4682
4702
|
if sub_components is not None:
|
|
@@ -4705,6 +4725,7 @@ class SolutionArchitect(Client2):
|
|
|
4705
4725
|
"blueprint_guids": blueprint_guids,
|
|
4706
4726
|
"supply_chain_guids": supply_chain_guids,
|
|
4707
4727
|
"parent_component_guids": parent_component_guids,
|
|
4728
|
+
"keywords_list": keywords_list,
|
|
4708
4729
|
}
|
|
4709
4730
|
|
|
4710
4731
|
|
|
@@ -5365,7 +5386,7 @@ class SolutionArchitect(Client2):
|
|
|
5365
5386
|
loop.run_until_complete(self._async_link_component_to_actor(role_guid, component_guid, body))
|
|
5366
5387
|
|
|
5367
5388
|
@dynamic_catch
|
|
5368
|
-
async def _async_detach_component_actor(self, role_guid: str, component_guid: str, body: dict |
|
|
5389
|
+
async def _async_detach_component_actor(self, role_guid: str, component_guid: str, body: dict | DeleteRelationshipRequestBody = None) -> None:
|
|
5369
5390
|
""" Detach a solution role from a solution component.
|
|
5370
5391
|
Async Version.
|
|
5371
5392
|
|
|
@@ -5375,7 +5396,7 @@ class SolutionArchitect(Client2):
|
|
|
5375
5396
|
guid of the role to disconnect from.
|
|
5376
5397
|
component_guid: str
|
|
5377
5398
|
guid of the component to disconnect.
|
|
5378
|
-
body: dict |
|
|
5399
|
+
body: dict | DeleteRelationshipRequestBody, optional
|
|
5379
5400
|
A dictionary containing the properties of the relationship to create.
|
|
5380
5401
|
|
|
5381
5402
|
Returns
|
|
@@ -5396,7 +5417,7 @@ class SolutionArchitect(Client2):
|
|
|
5396
5417
|
|
|
5397
5418
|
Body structure:
|
|
5398
5419
|
{
|
|
5399
|
-
"class": "
|
|
5420
|
+
"class": "DeleteRelationshipRequestBody",
|
|
5400
5421
|
"externalSourceGUID": "add guid here",
|
|
5401
5422
|
"externalSourceName": "add qualified name here",
|
|
5402
5423
|
"effectiveTime": {{isotime}},
|
|
@@ -5409,12 +5430,12 @@ class SolutionArchitect(Client2):
|
|
|
5409
5430
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
5410
5431
|
f"solution-components/{role_guid}/solution-component-actors/{component_guid}/detach")
|
|
5411
5432
|
|
|
5412
|
-
await self.
|
|
5433
|
+
await self._async_delete_relationship_request(url, body)
|
|
5413
5434
|
logger.info(
|
|
5414
5435
|
f"Detached role from component {role_guid} -> {component_guid}")
|
|
5415
5436
|
|
|
5416
5437
|
@dynamic_catch
|
|
5417
|
-
def detach_component_actore(self, role_guid: str, component_guid: str, body: dict |
|
|
5438
|
+
def detach_component_actore(self, role_guid: str, component_guid: str, body: dict |DeleteRelationshipRequestBody = None) -> None:
|
|
5418
5439
|
""" Detach a solution role from a solution component.
|
|
5419
5440
|
|
|
5420
5441
|
Parameters
|
|
@@ -5423,7 +5444,7 @@ class SolutionArchitect(Client2):
|
|
|
5423
5444
|
guid of the role to disconnect from.
|
|
5424
5445
|
component_guid: str
|
|
5425
5446
|
guid of the component to disconnect.
|
|
5426
|
-
body: dict |
|
|
5447
|
+
body: dict | DeleteRelationshipRequestBody, optional
|
|
5427
5448
|
A dictionary containing the properties of the relationship to create.
|
|
5428
5449
|
|
|
5429
5450
|
Returns
|
|
@@ -5444,7 +5465,7 @@ class SolutionArchitect(Client2):
|
|
|
5444
5465
|
|
|
5445
5466
|
Body structure:
|
|
5446
5467
|
{
|
|
5447
|
-
"class": "
|
|
5468
|
+
"class": "DeleteRelationshipRequestBody",
|
|
5448
5469
|
"externalSourceGUID": "add guid here",
|
|
5449
5470
|
"externalSourceName": "add qualified name here",
|
|
5450
5471
|
"effectiveTime": {{isotime}},
|
|
@@ -5456,14 +5477,14 @@ class SolutionArchitect(Client2):
|
|
|
5456
5477
|
loop.run_until_complete(self._async_detach_component_actor(role_guid, component_guid, body))
|
|
5457
5478
|
|
|
5458
5479
|
@dynamic_catch
|
|
5459
|
-
async def _async_delete_solution_role(self, guid: str, body: dict |
|
|
5480
|
+
async def _async_delete_solution_role(self, guid: str, body: dict | DeleteElementRequestBody= None, cascade_delete: bool = False,) -> None:
|
|
5460
5481
|
"""Delete a solution role. Async Version.
|
|
5461
5482
|
|
|
5462
5483
|
Parameters
|
|
5463
5484
|
----------
|
|
5464
5485
|
guid: str
|
|
5465
5486
|
guid of the role to delete.
|
|
5466
|
-
body: dict |
|
|
5487
|
+
body: dict | DeleteElementRequestBody, optional
|
|
5467
5488
|
A dictionary containing parameters for the deletion.
|
|
5468
5489
|
cascade_delete: bool, optional, default: False
|
|
5469
5490
|
Cascade the delete to dependent objects?
|
|
@@ -5487,7 +5508,7 @@ class SolutionArchitect(Client2):
|
|
|
5487
5508
|
|
|
5488
5509
|
Body structure:
|
|
5489
5510
|
{
|
|
5490
|
-
"class": "
|
|
5511
|
+
"class": "DeleteElementRequestBody",
|
|
5491
5512
|
"externalSourceGUID": "add guid here",
|
|
5492
5513
|
"externalSourceName": "add qualified name here",
|
|
5493
5514
|
"effectiveTime": {{isotime}},
|
|
@@ -5499,18 +5520,18 @@ class SolutionArchitect(Client2):
|
|
|
5499
5520
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
|
5500
5521
|
f"solution-roles/{guid}/delete")
|
|
5501
5522
|
|
|
5502
|
-
await self.
|
|
5523
|
+
await self._async_delete_element_request(url, body, cascade_delete=cascade_delete)
|
|
5503
5524
|
logger.info(f"Delete solution rule {guid} with cascade {cascade_delete}")
|
|
5504
5525
|
|
|
5505
5526
|
@dynamic_catch
|
|
5506
|
-
def delete_solution_role(self, guid: str, body: dict |
|
|
5527
|
+
def delete_solution_role(self, guid: str, body: dict | DeleteElementRequestBody = None,cascade_delete: bool = False) -> None:
|
|
5507
5528
|
"""Delete a solution role. Async Version.
|
|
5508
5529
|
|
|
5509
5530
|
Parameters
|
|
5510
5531
|
----------
|
|
5511
5532
|
guid: str
|
|
5512
5533
|
guid of the role to delete.
|
|
5513
|
-
body: dict |
|
|
5534
|
+
body: dict | DeleteElementRequestBody, optional
|
|
5514
5535
|
A dictionary containing parameters for the deletion.
|
|
5515
5536
|
cascade_delete: bool, optional, default: False
|
|
5516
5537
|
Cascade the delete to dependent objects?
|
|
@@ -5533,7 +5554,7 @@ class SolutionArchitect(Client2):
|
|
|
5533
5554
|
|
|
5534
5555
|
Body structure:
|
|
5535
5556
|
{
|
|
5536
|
-
"class": "
|
|
5557
|
+
"class": "DeleteElementRequestBody",
|
|
5537
5558
|
"externalSourceGUID": "add guid here",
|
|
5538
5559
|
"externalSourceName": "add qualified name here",
|
|
5539
5560
|
"effectiveTime": {{isotime}},
|
|
@@ -5707,7 +5728,7 @@ class SolutionArchitect(Client2):
|
|
|
5707
5728
|
|
|
5708
5729
|
async def _async_get_solution_roles_by_name(self, search_filter: str, body: dict = None, start_from: int = 0,
|
|
5709
5730
|
page_size: int = max_paging_size,
|
|
5710
|
-
output_format: str = "JSON") -> dict | str:
|
|
5731
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
5711
5732
|
""" Returns the list of solution roles with a particular name. Async Version.
|
|
5712
5733
|
|
|
5713
5734
|
Parameters
|
|
@@ -5771,11 +5792,11 @@ class SolutionArchitect(Client2):
|
|
|
5771
5792
|
if element == NO_ELEMENTS_FOUND:
|
|
5772
5793
|
return NO_ELEMENTS_FOUND
|
|
5773
5794
|
if output_format != 'JSON': # return a simplified markdown representation
|
|
5774
|
-
return self.generate_solution_roles_output(element, search_filter, output_format)
|
|
5795
|
+
return self.generate_solution_roles_output(element, search_filter, output_format, report_spec=report_spec)
|
|
5775
5796
|
return response.json().get("elements", NO_ELEMENTS_FOUND)
|
|
5776
5797
|
|
|
5777
5798
|
def get_solution_roles_by_name(self, search_filter: str, body: dict = None, start_from: int = 0,
|
|
5778
|
-
page_size: int = max_paging_size, output_format: str = "JSON") -> dict | str:
|
|
5799
|
+
page_size: int = max_paging_size, output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
5779
5800
|
""" Returns the list of solution roles with a particular name.
|
|
5780
5801
|
|
|
5781
5802
|
Parameters
|
|
@@ -5829,12 +5850,12 @@ class SolutionArchitect(Client2):
|
|
|
5829
5850
|
"""
|
|
5830
5851
|
loop = asyncio.get_event_loop()
|
|
5831
5852
|
response = loop.run_until_complete(
|
|
5832
|
-
self._async_get_solution_roles_by_name(search_filter, body, start_from, page_size, output_format))
|
|
5853
|
+
self._async_get_solution_roles_by_name(search_filter, body, start_from, page_size, output_format, report_spec))
|
|
5833
5854
|
return response
|
|
5834
5855
|
|
|
5835
5856
|
|
|
5836
5857
|
async def _async_get_solution_role_by_guid(self, guid: str, body: dict = None,
|
|
5837
|
-
output_format: str = "JSON") -> dict | str:
|
|
5858
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
5838
5859
|
""" Return the properties of a specific solution role. Async Version.
|
|
5839
5860
|
|
|
5840
5861
|
Parameters
|
|
@@ -5888,10 +5909,10 @@ class SolutionArchitect(Client2):
|
|
|
5888
5909
|
if element == NO_ELEMENTS_FOUND:
|
|
5889
5910
|
return NO_ELEMENTS_FOUND
|
|
5890
5911
|
if output_format != 'JSON': # return a simplified markdown representation
|
|
5891
|
-
return self.generate_solution_roles_output(element, None, output_format)
|
|
5912
|
+
return self.generate_solution_roles_output(element, None, output_format, report_spec=report_spec)
|
|
5892
5913
|
return response.json().get("element", NO_ELEMENTS_FOUND)
|
|
5893
5914
|
|
|
5894
|
-
def get_solution_role_by_guid(self, guid: str, body: dict = None, output_format: str = "JSON") -> dict | str:
|
|
5915
|
+
def get_solution_role_by_guid(self, guid: str, body: dict = None, output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
5895
5916
|
""" Return the properties of a specific solution role.
|
|
5896
5917
|
|
|
5897
5918
|
Parameters
|