pyegeria 5.4.4.3__py3-none-any.whl → 5.4.4.5__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/debug_log.2025-09-14_11-03-29_316193.log.zip +0 -0
- md_processing/__init__.py +1 -1
- md_processing/data/commands.json +10767 -17467
- md_processing/dr_egeria.py +6 -1
- md_processing/md_commands/governance_officer_commands.py +121 -14
- md_processing/md_commands/product_manager_commands.py +1 -0
- md_processing/md_processing_utils/common_md_utils.py +1 -1
- md_processing/md_processing_utils/md_processing_constants.py +5 -2
- pyegeria/_client_new.py +3 -1
- pyegeria/_output_formats.py +56 -12
- pyegeria/classification_manager_omvs.py +4 -4
- pyegeria/collection_manager.py +104 -2
- pyegeria/glossary_manager.py +1 -88
- pyegeria/governance_officer.py +376 -95
- pyegeria/project_manager.py +1 -0
- pyegeria/solution_architect.py +0 -90
- {pyegeria-5.4.4.3.dist-info → pyegeria-5.4.4.5.dist-info}/METADATA +1 -1
- {pyegeria-5.4.4.3.dist-info → pyegeria-5.4.4.5.dist-info}/RECORD +21 -20
- {pyegeria-5.4.4.3.dist-info → pyegeria-5.4.4.5.dist-info}/LICENSE +0 -0
- {pyegeria-5.4.4.3.dist-info → pyegeria-5.4.4.5.dist-info}/WHEEL +0 -0
- {pyegeria-5.4.4.3.dist-info → pyegeria-5.4.4.5.dist-info}/entry_points.txt +0 -0
pyegeria/governance_officer.py
CHANGED
@@ -849,99 +849,6 @@ class GovernanceOfficer(Client2):
|
|
849
849
|
loop = asyncio.get_event_loop()
|
850
850
|
loop.run_until_complete(self._async_update_governance_definition(guid, body))
|
851
851
|
|
852
|
-
@dynamic_catch
|
853
|
-
async def _async_update_governance_definition_status(self, guid: str, status: str = None,
|
854
|
-
body: dict | UpdateStatusRequestBody = None) -> None:
|
855
|
-
""" Update the status of a governance definition. Async Version.
|
856
|
-
|
857
|
-
Parameters
|
858
|
-
----------
|
859
|
-
guid: str
|
860
|
-
guid of the governance definition to update.
|
861
|
-
status: str, optional, default is None
|
862
|
-
The status to update the governance definition to. Superseded by the body definition if present.
|
863
|
-
body: dict
|
864
|
-
A dictionary containing the updates to the governance definition.
|
865
|
-
|
866
|
-
Returns
|
867
|
-
-------
|
868
|
-
|
869
|
-
None
|
870
|
-
|
871
|
-
Raises
|
872
|
-
------
|
873
|
-
InvalidParameterException
|
874
|
-
one of the parameters is null or invalid or
|
875
|
-
PropertyServerException
|
876
|
-
There is a problem adding the element properties to the metadata repository or
|
877
|
-
UserNotAuthorizedException
|
878
|
-
the requesting user is not authorized to issue this request.
|
879
|
-
|
880
|
-
Notes
|
881
|
-
----
|
882
|
-
|
883
|
-
Body structure:
|
884
|
-
{
|
885
|
-
"class": "UpdateGovernanceDefinitionRequestBody",
|
886
|
-
"externalSourceGUID": "add guid here",
|
887
|
-
"externalSourceName": "add qualified name here",
|
888
|
-
"effectiveTime": "{{$isoTimestamp}}",
|
889
|
-
"forLineage": false,
|
890
|
-
"forDuplicateProcessing": false,
|
891
|
-
"status": "ACTIVE"
|
892
|
-
}
|
893
|
-
"""
|
894
|
-
|
895
|
-
url = (
|
896
|
-
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/{self.url_marker}/governance-defnitions/"
|
897
|
-
f"{guid}/update-status")
|
898
|
-
|
899
|
-
# await self._async_update_status_request(url, status, body)
|
900
|
-
|
901
|
-
def update_governance_definition_status(self, guid: str, status: str = None,
|
902
|
-
body: dict | UpdateStatusRequestBody = None) -> None:
|
903
|
-
""" Update the status of a governance definition.
|
904
|
-
|
905
|
-
Parameters
|
906
|
-
----------
|
907
|
-
guid: str
|
908
|
-
guid of the information governance definition to update.
|
909
|
-
status: str, optional, default is None
|
910
|
-
The status to update the governance definition to. Superseded by the body definition if present.
|
911
|
-
body: dict
|
912
|
-
A dictionary containing the updates to the governance definition.
|
913
|
-
|
914
|
-
Returns
|
915
|
-
-------
|
916
|
-
|
917
|
-
None
|
918
|
-
|
919
|
-
Raises
|
920
|
-
------
|
921
|
-
InvalidParameterException
|
922
|
-
one of the parameters is null or invalid or
|
923
|
-
PropertyServerException
|
924
|
-
There is a problem adding the element properties to the metadata repository or
|
925
|
-
UserNotAuthorizedException
|
926
|
-
the requesting user is not authorized to issue this request.
|
927
|
-
|
928
|
-
Notes
|
929
|
-
----
|
930
|
-
|
931
|
-
Body structure:
|
932
|
-
{
|
933
|
-
"class" : "UpdateGovernanceDefinitionRequestBody",
|
934
|
-
"externalSourceGUID": "add guid here",
|
935
|
-
"externalSourceName": "add qualified name here",
|
936
|
-
"effectiveTime" : "{{$isoTimestamp}}",
|
937
|
-
"forLineage" : false,
|
938
|
-
"forDuplicateProcessing" : false,
|
939
|
-
"status": "ACTIVE"
|
940
|
-
}
|
941
|
-
"""
|
942
|
-
loop = asyncio.get_event_loop()
|
943
|
-
loop.run_until_complete(self._async_update_governance_definition_status(guid, status, body))
|
944
|
-
|
945
852
|
@dynamic_catch
|
946
853
|
async def _async_delete_governance_definition(self, definition_guid: str,
|
947
854
|
body: dict | DeleteRequestBody = None,
|
@@ -1430,7 +1337,7 @@ class GovernanceOfficer(Client2):
|
|
1430
1337
|
logger.info(f"Detached digital supporting definitions: {definition_guid1} -> {definition_guid2}")
|
1431
1338
|
|
1432
1339
|
@dynamic_catch
|
1433
|
-
def detach_supporting_definitions(self,
|
1340
|
+
def detach_supporting_definitions(self, definition_guid: str, relationship_type: str, definition_guid2: str,
|
1434
1341
|
body: dict | DeleteRequestBody = None) -> None:
|
1435
1342
|
""" Detach a governance definition from a supporting governance definition.
|
1436
1343
|
Request body is optional.
|
@@ -1476,6 +1383,197 @@ class GovernanceOfficer(Client2):
|
|
1476
1383
|
loop.run_until_complete(
|
1477
1384
|
self._async_detach_supporting_definitions(definition_guid1, relationship_type, definition_guid2, body))
|
1478
1385
|
|
1386
|
+
|
1387
|
+
|
1388
|
+
async def _async_attach_governed_by_definition(self, element_guid: str, definition_guid: str,
|
1389
|
+
body: dict | NewRelationshipRequestBody = None) -> None:
|
1390
|
+
""" Link a governance definition to an element using the GovernedBy relationship. Request body is optional.
|
1391
|
+
|
1392
|
+
Async Version.
|
1393
|
+
|
1394
|
+
Parameters
|
1395
|
+
----------
|
1396
|
+
element_guid: str
|
1397
|
+
guid of the element to be governed.
|
1398
|
+
definition_guid: str
|
1399
|
+
the governance definition guid.
|
1400
|
+
body: dict
|
1401
|
+
The body describing the link between the two.
|
1402
|
+
|
1403
|
+
Returns
|
1404
|
+
-------
|
1405
|
+
None
|
1406
|
+
|
1407
|
+
Raises
|
1408
|
+
------
|
1409
|
+
PyegeriaException
|
1410
|
+
ValidationError
|
1411
|
+
|
1412
|
+
Notes
|
1413
|
+
----
|
1414
|
+
|
1415
|
+
Body structure:
|
1416
|
+
{
|
1417
|
+
"class" : "NewRelationshipRequestBody",
|
1418
|
+
"properties" : {
|
1419
|
+
"class" : "GovernedByProperties",
|
1420
|
+
"label" : "add label here",
|
1421
|
+
"description" : "add description here"
|
1422
|
+
},
|
1423
|
+
"externalSourceGUID": "Add guid here",
|
1424
|
+
"externalSourceName": "Add qualified name here",
|
1425
|
+
"forLineage": false,
|
1426
|
+
"forDuplicateProcessing": false,
|
1427
|
+
"effectiveTime" : "{{$isoTimestamp}}"
|
1428
|
+
}
|
1429
|
+
"""
|
1430
|
+
url = (
|
1431
|
+
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/"
|
1432
|
+
f"{self.url_marker}/elements/{element_guid}/governed-by/definition/{definition_guid}/attach"
|
1433
|
+
)
|
1434
|
+
await self._async_new_relationship_request(url, "GovernedByProperties", body)
|
1435
|
+
logger.info(f"Linked Governed-By {definition_guid1} -> {definition_guid2}")
|
1436
|
+
|
1437
|
+
@dynamic_catch
|
1438
|
+
def attach_governed_by_definition(self, element_guid: str, definition_guid: str,
|
1439
|
+
body: dict | NewRelationshipRequestBody = None) -> None:
|
1440
|
+
""" Link a governance definition to an element using the GovernedBy relationship. Request body is optional.
|
1441
|
+
|
1442
|
+
Parameters
|
1443
|
+
----------
|
1444
|
+
element_guid: str
|
1445
|
+
guid of the element to be governed.
|
1446
|
+
definition_guid: str
|
1447
|
+
the governance definition guid.
|
1448
|
+
body: dict
|
1449
|
+
The body describing the link between the two.
|
1450
|
+
|
1451
|
+
Returns
|
1452
|
+
-------
|
1453
|
+
None
|
1454
|
+
|
1455
|
+
Raises
|
1456
|
+
------
|
1457
|
+
PyegeriaException
|
1458
|
+
ValidationError
|
1459
|
+
|
1460
|
+
Notes
|
1461
|
+
----
|
1462
|
+
|
1463
|
+
Body structure:
|
1464
|
+
{
|
1465
|
+
"class" : "NewRelationshipRequestBody",
|
1466
|
+
"properties" : {
|
1467
|
+
"class" : "GovernedByProperties",
|
1468
|
+
"label" : "add label here",
|
1469
|
+
"description" : "add description here"
|
1470
|
+
},
|
1471
|
+
"externalSourceGUID": "Add guid here",
|
1472
|
+
"externalSourceName": "Add qualified name here",
|
1473
|
+
"forLineage": false,
|
1474
|
+
"forDuplicateProcessing": false,
|
1475
|
+
"effectiveTime" : "{{$isoTimestamp}}"
|
1476
|
+
}
|
1477
|
+
"""
|
1478
|
+
loop = asyncio.get_event_loop()
|
1479
|
+
loop.run_until_complete(
|
1480
|
+
self._async_attach_governed_by_definition(element_guid, definition_guid, body))
|
1481
|
+
|
1482
|
+
@dynamic_catch
|
1483
|
+
async def _async_detach_governed_by_definition(self, element_guid: str, definition_guid: str,
|
1484
|
+
body: dict | DeleteRequestBody = None) -> None:
|
1485
|
+
""" Detach a governance definition from a supporting governance definition.
|
1486
|
+
Request body is optional. Async Version.
|
1487
|
+
|
1488
|
+
Parameters
|
1489
|
+
----------
|
1490
|
+
element_guid: str
|
1491
|
+
guid of the element to be governed.
|
1492
|
+
definition_guid: str
|
1493
|
+
the governance definition guid.
|
1494
|
+
body: dict
|
1495
|
+
The body describing the link between the two.
|
1496
|
+
|
1497
|
+
Returns
|
1498
|
+
-------
|
1499
|
+
None
|
1500
|
+
|
1501
|
+
Raises
|
1502
|
+
------
|
1503
|
+
InvalidParameterException
|
1504
|
+
one of the parameters is null or invalid or
|
1505
|
+
PropertyServerException
|
1506
|
+
There is a problem adding the element properties to the metadata repository or
|
1507
|
+
UserNotAuthorizedException
|
1508
|
+
the requesting user is not authorized to issue this request.
|
1509
|
+
|
1510
|
+
Notes
|
1511
|
+
----
|
1512
|
+
|
1513
|
+
Body structure:
|
1514
|
+
{
|
1515
|
+
"class" : "DeleteRequestBody",
|
1516
|
+
"externalSourceGUID": "add guid here",
|
1517
|
+
"externalSourceName": "add qualified name here",
|
1518
|
+
"effectiveTime" : "{{$isoTimestamp}}",
|
1519
|
+
"forLineage" : false,
|
1520
|
+
"forDuplicateProcessing" : false
|
1521
|
+
}
|
1522
|
+
"""
|
1523
|
+
url = (
|
1524
|
+
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/"
|
1525
|
+
f"{self.url_marker}/elements/{element_guid}/governed-by/{definition_guid}/detach"
|
1526
|
+
)
|
1527
|
+
await self._async_delete_request(url, body)
|
1528
|
+
logger.info(f"Detached governed-by relationshup between: {definition_guid} -> {element_guid}")
|
1529
|
+
|
1530
|
+
@dynamic_catch
|
1531
|
+
def detach_governed_by_definitio(self, element_guid: str, definition_guid: str,
|
1532
|
+
body: dict | DeleteRequestBody = None) -> None:
|
1533
|
+
""" Detach a governance definition from a supporting governance definition.
|
1534
|
+
Request body is optional.
|
1535
|
+
|
1536
|
+
Parameters
|
1537
|
+
----------
|
1538
|
+
element_guid: str
|
1539
|
+
guid of the element to be governed.
|
1540
|
+
definition_guid: str
|
1541
|
+
the governance definition guid.
|
1542
|
+
body: dict
|
1543
|
+
The body describing the link between the two.
|
1544
|
+
|
1545
|
+
Returns
|
1546
|
+
-------
|
1547
|
+
None
|
1548
|
+
|
1549
|
+
Raises
|
1550
|
+
------
|
1551
|
+
InvalidParameterException
|
1552
|
+
one of the parameters is null or invalid or
|
1553
|
+
PropertyServerException
|
1554
|
+
There is a problem adding the element properties to the metadata repository or
|
1555
|
+
UserNotAuthorizedException
|
1556
|
+
the requesting user is not authorized to issue this request.
|
1557
|
+
|
1558
|
+
Notes
|
1559
|
+
----
|
1560
|
+
|
1561
|
+
Body structure:
|
1562
|
+
{
|
1563
|
+
"class" : "DeleteRequestBody",
|
1564
|
+
"externalSourceGUID": "add guid here",
|
1565
|
+
"externalSourceName": "add qualified name here",
|
1566
|
+
"effectiveTime" : "{{$isoTimestamp}}",
|
1567
|
+
"forLineage" : false,
|
1568
|
+
"forDuplicateProcessing" : false
|
1569
|
+
}
|
1570
|
+
"""
|
1571
|
+
loop = asyncio.get_event_loop()
|
1572
|
+
loop.run_until_complete(
|
1573
|
+
self._async_detach_governed_by_definition(element_guid, definition_guid, body))
|
1574
|
+
|
1575
|
+
|
1576
|
+
|
1479
1577
|
@dynamic_catch
|
1480
1578
|
async def _async_delete_governance_definition(self, guid: str, body: dict | DeleteRequestBody = None) -> None:
|
1481
1579
|
""" Delete an information supply. Async version.
|
@@ -1484,7 +1582,7 @@ class GovernanceOfficer(Client2):
|
|
1484
1582
|
----------
|
1485
1583
|
guid: str
|
1486
1584
|
GUID of the governance definition to delete.
|
1487
|
-
|
1585
|
+
|
1488
1586
|
body: dict, optional
|
1489
1587
|
A dictionary containing the definition of the governance definition to create.
|
1490
1588
|
|
@@ -1522,6 +1620,7 @@ class GovernanceOfficer(Client2):
|
|
1522
1620
|
await self._async_delete_request(url, body)
|
1523
1621
|
logger.info(f"Deleted governance definition: {guid} ")
|
1524
1622
|
|
1623
|
+
|
1525
1624
|
@dynamic_catch
|
1526
1625
|
def delete_governance_definition(self, guid: str, body: dict | DeleteRequestBody = None) -> None:
|
1527
1626
|
""" Delete an information supply. Request body is optional. Async version.
|
@@ -2373,6 +2472,188 @@ class GovernanceOfficer(Client2):
|
|
2373
2472
|
loop = asyncio.get_event_loop()
|
2374
2473
|
loop.run_until_complete(self._async_detach_implementation_resource(design_desc_guid, implementation_guid, body))
|
2375
2474
|
|
2475
|
+
|
2476
|
+
@dynamic_catch
|
2477
|
+
async def _async_link_governance_results(self, gov_metric_guid: str, data_asset_guid: str,
|
2478
|
+
body: dict | NewRelationshipRequestBody = None) -> None:
|
2479
|
+
""" Attach a governance metric to a data asset that describes where its measurements are kept.
|
2480
|
+
Request body is optional. https://egeria-project.org/concepts/governance-definition/
|
2481
|
+
|
2482
|
+
Async Version.
|
2483
|
+
|
2484
|
+
Parameters
|
2485
|
+
----------
|
2486
|
+
gov_metric_guid: str
|
2487
|
+
guid of the governance metric to link.
|
2488
|
+
data_asset_guid: str
|
2489
|
+
guid of the data asset to link.
|
2490
|
+
body: dict, optional
|
2491
|
+
The body describing the link between the two elements.
|
2492
|
+
|
2493
|
+
Returns
|
2494
|
+
-------
|
2495
|
+
None
|
2496
|
+
|
2497
|
+
Raises
|
2498
|
+
------
|
2499
|
+
PyegeriaException
|
2500
|
+
ValidationError
|
2501
|
+
|
2502
|
+
Notes
|
2503
|
+
----
|
2504
|
+
|
2505
|
+
Body structure:
|
2506
|
+
{
|
2507
|
+
"class" : "NewRelationshipRequestBody",
|
2508
|
+
"properties": {
|
2509
|
+
"class": "GovernanceResultsProperties",
|
2510
|
+
"description": "",
|
2511
|
+
"effectiveFrom": "{{$isoTimestamp}}",
|
2512
|
+
"effectiveTo": "{{$isoTimestamp}}"
|
2513
|
+
},
|
2514
|
+
"externalSourceGUID": "add guid here",
|
2515
|
+
"externalSourceName": "add qualified name here",
|
2516
|
+
"effectiveTime" : "{{$isoTimestamp}}",
|
2517
|
+
"forLineage" : false,
|
2518
|
+
"forDuplicateProcessing" : false
|
2519
|
+
}
|
2520
|
+
"""
|
2521
|
+
|
2522
|
+
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/{self.url_marker}/governance-metrics/"
|
2523
|
+
f"{gov_metric_guid}/measurements/{data_asset_guid}/attach"
|
2524
|
+
)
|
2525
|
+
await self._async_new_relationship_request(url, "GovernanceResultsProperties", body)
|
2526
|
+
logger.info(f"Linked governance metric to a data asset containing its measurements.: {gov_metric_guid} -> {data_asset_guid}")
|
2527
|
+
|
2528
|
+
@dynamic_catch
|
2529
|
+
def link_governance_results(self, gov_metric_guid: str, data_asset_guid: str,
|
2530
|
+
body: dict | NewRelationshipRequestBody = None) -> None:
|
2531
|
+
""" Attach a governance metric to a data asset that describes where its measurements are kept.
|
2532
|
+
Request body is optional. https://egeria-project.org/concepts/governance-definition/
|
2533
|
+
|
2534
|
+
|
2535
|
+
Parameters
|
2536
|
+
----------
|
2537
|
+
gov_metric_guid: str
|
2538
|
+
guid of the governance metric to link.
|
2539
|
+
data_asset_guid: str
|
2540
|
+
guid of the data asset to link.
|
2541
|
+
body: dict, optional
|
2542
|
+
The body describing the link between the two elements.
|
2543
|
+
|
2544
|
+
Returns
|
2545
|
+
-------
|
2546
|
+
None
|
2547
|
+
|
2548
|
+
Raises
|
2549
|
+
------
|
2550
|
+
PyegeriaException
|
2551
|
+
ValidationError
|
2552
|
+
|
2553
|
+
Notes
|
2554
|
+
----
|
2555
|
+
|
2556
|
+
Body structure:
|
2557
|
+
{
|
2558
|
+
"class" : "NewRelationshipRequestBody",
|
2559
|
+
"properties": {
|
2560
|
+
"class": "GovernanceResultsProperties",
|
2561
|
+
"description": "",
|
2562
|
+
"effectiveFrom": "{{$isoTimestamp}}",
|
2563
|
+
"effectiveTo": "{{$isoTimestamp}}"
|
2564
|
+
},
|
2565
|
+
"externalSourceGUID": "add guid here",
|
2566
|
+
"externalSourceName": "add qualified name here",
|
2567
|
+
"effectiveTime" : "{{$isoTimestamp}}",
|
2568
|
+
"forLineage" : false,
|
2569
|
+
"forDuplicateProcessing" : false
|
2570
|
+
}
|
2571
|
+
"""
|
2572
|
+
loop = asyncio.get_event_loop()
|
2573
|
+
loop.run_until_complete(self._async_link_governance_results(gov_metric_guid, data_asset_guid, implementation_guid, body))
|
2574
|
+
|
2575
|
+
@dynamic_catch
|
2576
|
+
async def _async_detach_governance_results(self, gov_metric_guid: str, data_asset_guid: str, body: dict | DeleteRequestBody = None) -> None:
|
2577
|
+
""" Detach an governance metric from its measurements data set. Request body is optional.
|
2578
|
+
https://egeria-project.org/concepts/governance-definition/ Async version.
|
2579
|
+
|
2580
|
+
Parameters
|
2581
|
+
----------
|
2582
|
+
gov_metric_guid: str
|
2583
|
+
guid of the governance metric to link.
|
2584
|
+
data_asset_guid: str
|
2585
|
+
guid of the data asset to link.
|
2586
|
+
body: dict, optional
|
2587
|
+
The body describing the link between the two elements.
|
2588
|
+
|
2589
|
+
Returns
|
2590
|
+
-------
|
2591
|
+
None
|
2592
|
+
|
2593
|
+
Raises
|
2594
|
+
------
|
2595
|
+
PyegeriaException
|
2596
|
+
ValidationError
|
2597
|
+
|
2598
|
+
Notes
|
2599
|
+
----
|
2600
|
+
|
2601
|
+
Body structure:
|
2602
|
+
{
|
2603
|
+
"class": "MetadataSourceRequestBody",
|
2604
|
+
"externalSourceGUID": "string",
|
2605
|
+
"externalSourceName": "string",
|
2606
|
+
"forLineage": true,
|
2607
|
+
"forDuplicateProcessing": true,
|
2608
|
+
"effectiveTime": "2025-06-13T15:13:31.339Z"
|
2609
|
+
}
|
2610
|
+
"""
|
2611
|
+
|
2612
|
+
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/{self.url_marker}/governance-metrics/"
|
2613
|
+
f"{gov_metric_guid}/measurements/{data_asset_guid}/detach")
|
2614
|
+
await self._async_delete_request(url, body)
|
2615
|
+
logger.info(
|
2616
|
+
f"Detached governance metric from the asset where measurements were stored: {gov_metric_guid} -> {data_asset_guid}")
|
2617
|
+
|
2618
|
+
def detach_governance_results(self, gov_metric_guid: str, data_asset_guid: str,
|
2619
|
+
body: dict | DeleteRequestBody = None) -> None:
|
2620
|
+
""" Detach an governance metric from its measurements data set. Request body is optional.
|
2621
|
+
https://egeria-project.org/concepts/governance-definition/
|
2622
|
+
|
2623
|
+
Parameters
|
2624
|
+
----------
|
2625
|
+
gov_metric_guid: str
|
2626
|
+
guid of the governance metric to link.
|
2627
|
+
data_asset_guid: str
|
2628
|
+
guid of the data asset to link.
|
2629
|
+
body: dict, optional
|
2630
|
+
The body describing the link between the two elements.
|
2631
|
+
|
2632
|
+
Returns
|
2633
|
+
-------
|
2634
|
+
None
|
2635
|
+
|
2636
|
+
Raises
|
2637
|
+
------
|
2638
|
+
PyegeriaException
|
2639
|
+
ValidationError
|
2640
|
+
|
2641
|
+
Notes
|
2642
|
+
----
|
2643
|
+
|
2644
|
+
Body structure:
|
2645
|
+
{
|
2646
|
+
"class": "MetadataSourceRequestBody",
|
2647
|
+
"externalSourceGUID": "string",
|
2648
|
+
"externalSourceName": "string",
|
2649
|
+
"forLineage": true,
|
2650
|
+
"forDuplicateProcessing": true,
|
2651
|
+
"effectiveTime": "2025-06-13T15:13:31.339Z"
|
2652
|
+
}
|
2653
|
+
"""
|
2654
|
+
loop = asyncio.get_event_loop()
|
2655
|
+
loop.run_until_complete(self._async_detach_governance_results(gov_metric_guid, data_asset_guid, data_asset_guid, body))
|
2656
|
+
|
2376
2657
|
# async def _async_get_gov_def_in_context(self, guid: str, body: dict = None, output_format: str = "JSON",
|
2377
2658
|
# start_from: int = 0,
|
2378
2659
|
# page_size: int = 0) -> list[dict] | str:
|
pyegeria/project_manager.py
CHANGED
@@ -72,6 +72,7 @@ class ProjectManager(Client2):
|
|
72
72
|
self.project_command_base: str = (
|
73
73
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/project-manager/projects"
|
74
74
|
)
|
75
|
+
self.url_marker = 'project-manager'
|
75
76
|
Client2.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
76
77
|
|
77
78
|
def _extract_additional_project_properties(self, element: dict, columns_struct: dict)-> dict:
|
pyegeria/solution_architect.py
CHANGED
@@ -2612,96 +2612,6 @@ class SolutionArchitect(Client2):
|
|
2612
2612
|
loop.run_until_complete(self._async_delete_info_supply_chain(guid, body, cascade))
|
2613
2613
|
|
2614
2614
|
|
2615
|
-
@dynamic_catch
|
2616
|
-
async def _async_update_solution_element_status(self, guid: str, status: str= None, body: dict| UpdateStatusRequestBody = None,
|
2617
|
-
) -> None:
|
2618
|
-
""" Update the properties of a blueprint, solution component, or solution port. Async Version.
|
2619
|
-
|
2620
|
-
Parameters
|
2621
|
-
----------
|
2622
|
-
guid: str
|
2623
|
-
guid of the information supply chain to update.
|
2624
|
-
body: dict | UpdateStatusRequestBody, optional
|
2625
|
-
A dictionary containing the updates to the supply chain.
|
2626
|
-
status: str, optional
|
2627
|
-
The status to update the supply chain to.
|
2628
|
-
|
2629
|
-
Returns
|
2630
|
-
-------
|
2631
|
-
|
2632
|
-
None
|
2633
|
-
|
2634
|
-
Raises
|
2635
|
-
------
|
2636
|
-
InvalidParameterException
|
2637
|
-
one of the parameters is null or invalid or
|
2638
|
-
PropertyServerException
|
2639
|
-
There is a problem adding the element properties to the metadata repository or
|
2640
|
-
UserNotAuthorizedException
|
2641
|
-
the requesting user is not authorized to issue this request.
|
2642
|
-
|
2643
|
-
Notes
|
2644
|
-
----
|
2645
|
-
|
2646
|
-
Body structure:
|
2647
|
-
{
|
2648
|
-
"class" : "UpdateStatusRequestBody",
|
2649
|
-
"status" : "APPROVED",
|
2650
|
-
"externalSourceGUID": "add guid here",
|
2651
|
-
"externalSourceName": "add qualified name here",
|
2652
|
-
"effectiveTime" : "{{$isoTimestamp}}",
|
2653
|
-
"forLineage" : false,
|
2654
|
-
"forDuplicateProcessing" : false
|
2655
|
-
}
|
2656
|
-
"""
|
2657
|
-
|
2658
|
-
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/solution-architect/"
|
2659
|
-
f"solution-blueprints/{guid}/update")
|
2660
|
-
|
2661
|
-
await self._async_update_status_request(url, status, body)
|
2662
|
-
|
2663
|
-
@dynamic_catch
|
2664
|
-
def update_solution_element_status(self, guid: str, status: str = None, body: dict| UpdateStatusRequestBody = None) -> None:
|
2665
|
-
""" Update the status of a blueprint, solution component, or solution port.
|
2666
|
-
|
2667
|
-
Parameters
|
2668
|
-
----------
|
2669
|
-
guid: str
|
2670
|
-
guid of the information supply chain to update.
|
2671
|
-
body: dict
|
2672
|
-
A dictionary containing the updates to the supply chain.
|
2673
|
-
|
2674
|
-
Returns
|
2675
|
-
-------
|
2676
|
-
None
|
2677
|
-
|
2678
|
-
Raises
|
2679
|
-
------
|
2680
|
-
InvalidParameterException
|
2681
|
-
one of the parameters is null or invalid or
|
2682
|
-
PropertyServerException
|
2683
|
-
There is a problem adding the element properties to the metadata repository or
|
2684
|
-
UserNotAuthorizedException
|
2685
|
-
the requesting user is not authorized to issue this request.
|
2686
|
-
|
2687
|
-
Notes
|
2688
|
-
----
|
2689
|
-
|
2690
|
-
Body structure:
|
2691
|
-
{
|
2692
|
-
"class" : "SolutionElementStatusRequestBody",
|
2693
|
-
"status" : "APPROVED",
|
2694
|
-
"externalSourceGUID": "add guid here",
|
2695
|
-
"externalSourceName": "add qualified name here",
|
2696
|
-
"effectiveTime" : "{{$isoTimestamp}}",
|
2697
|
-
"forLineage" : false,
|
2698
|
-
"forDuplicateProcessing" : false
|
2699
|
-
}
|
2700
|
-
"""
|
2701
|
-
loop = asyncio.get_event_loop()
|
2702
|
-
loop.run_until_complete(self._async_update_solution_element_status(guid = guid, status= status, body=body))
|
2703
|
-
|
2704
|
-
|
2705
2615
|
@dynamic_catch
|
2706
2616
|
async def _async_link_solution_component_to_blueprint(self, blueprint_guid: str, component_guid: str,
|
2707
2617
|
body: dict | NewRelationshipRequestBody) -> None:
|