pyegeria 5.4.0.28__py3-none-any.whl → 5.5.3.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyegeria might be problematic. Click here for more details.
- commands/__init__.py +24 -0
- commands/cat/Dr-Egeria_md-orig.py +2 -2
- commands/cat/collection_actions.py +197 -0
- commands/cat/dr_egeria_command_help.py +137 -38
- commands/cat/dr_egeria_jupyter.py +7 -7
- commands/cat/dr_egeria_md.py +10 -267
- commands/cat/exp_list_glossaries.py +11 -14
- commands/cat/get_asset_graph.py +37 -267
- commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
- commands/cat/get_project_dependencies.py +14 -14
- commands/cat/get_project_structure.py +15 -14
- commands/cat/get_tech_type_elements.py +16 -116
- commands/cat/glossary_actions.py +145 -298
- commands/cat/list_assets.py +3 -11
- commands/cat/list_cert_types.py +17 -63
- commands/cat/list_collections.py +17 -139
- commands/cat/list_deployed_catalogs.py +15 -27
- commands/cat/list_deployed_database_schemas.py +27 -43
- commands/cat/list_deployed_databases.py +16 -31
- commands/cat/list_deployed_servers.py +35 -54
- commands/cat/list_glossaries.py +18 -17
- commands/cat/list_projects.py +10 -12
- commands/cat/list_tech_type_elements.py +21 -37
- commands/cat/list_tech_types.py +13 -25
- commands/cat/list_terms.py +38 -79
- commands/cat/list_todos.py +4 -11
- commands/cat/list_user_ids.py +3 -10
- commands/cat/my_reports.py +559 -0
- commands/cat/run_report.py +394 -0
- commands/cat/{list_format_set.py → run_report_orig.py} +136 -44
- commands/cli/egeria.py +182 -219
- commands/cli/egeria_cat.py +32 -59
- commands/cli/egeria_my.py +13 -0
- commands/cli/egeria_ops.py +69 -74
- commands/cli/egeria_tech.py +17 -93
- commands/{cat → deprecated}/list_data_designer.py +2 -4
- commands/{cat → deprecated}/list_data_structures_full.py +3 -6
- commands/deprecated/old_get_asset_graph.py +315 -0
- commands/my/__init__.py +0 -2
- commands/my/list_my_profile.py +27 -34
- commands/my/list_my_roles.py +1 -7
- commands/my/monitor_my_todos.py +1 -7
- commands/my/monitor_open_todos.py +6 -7
- commands/my/todo_actions.py +4 -5
- commands/ops/__init__.py +0 -2
- commands/ops/gov_server_actions.py +17 -21
- commands/ops/list_archives.py +17 -38
- commands/ops/list_catalog_targets.py +33 -40
- commands/ops/load_archive.py +14 -11
- commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
- commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
- commands/ops/monitor_engine_activity.py +79 -77
- commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
- commands/ops/monitor_platform_status.py +38 -50
- commands/ops/monitor_server_startup.py +6 -11
- commands/ops/monitor_server_status.py +7 -11
- commands/ops/orig_monitor_server_list.py +8 -8
- commands/ops/orig_monitor_server_status.py +1 -5
- commands/ops/refresh_integration_daemon.py +5 -5
- commands/ops/restart_integration_daemon.py +5 -5
- commands/ops/table_integ_daemon_status.py +6 -6
- commands/ops/x_engine_actions.py +7 -7
- commands/tech/__init__.py +0 -2
- commands/tech/{generic_actions.py → element_actions.py} +6 -11
- commands/tech/get_element_info.py +20 -29
- commands/tech/get_guid_info.py +23 -42
- commands/tech/get_tech_details.py +20 -35
- commands/tech/get_tech_type_template.py +28 -39
- commands/tech/list_all_om_type_elements.py +24 -30
- commands/tech/list_all_om_type_elements_x.py +22 -28
- commands/tech/list_all_related_elements.py +19 -28
- commands/tech/list_anchored_elements.py +22 -30
- commands/tech/list_asset_types.py +19 -24
- commands/tech/list_elements_by_classification_by_property_value.py +26 -32
- commands/tech/list_elements_by_property_value.py +19 -25
- commands/tech/list_elements_by_property_value_x.py +20 -28
- commands/tech/list_elements_for_classification.py +28 -41
- commands/tech/list_gov_action_processes.py +16 -27
- commands/tech/list_information_supply_chains.py +22 -30
- commands/tech/list_registered_services.py +14 -26
- commands/tech/list_related_elements_with_prop_value.py +15 -25
- commands/tech/list_related_specification.py +1 -4
- commands/tech/list_relationship_types.py +15 -25
- commands/tech/list_relationships.py +20 -36
- commands/tech/list_solution_blueprints.py +28 -33
- commands/tech/list_solution_components.py +23 -29
- commands/tech/list_solution_roles.py +21 -32
- commands/tech/list_tech_templates.py +51 -54
- commands/tech/list_valid_metadata_values.py +5 -9
- commands/tech/table_tech_templates.py +2 -6
- commands/tech/x_list_related_elements.py +1 -4
- examples/GeoSpatial Products Example.py +524 -0
- examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
- examples/Jupyter Notebooks/README.md +2 -0
- examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
- examples/Jupyter Notebooks/common/__init__.py +14 -0
- examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
- examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
- examples/Jupyter Notebooks/common/globals.ipynb +184 -0
- examples/Jupyter Notebooks/common/globals.py +154 -0
- examples/Jupyter Notebooks/common/orig_globals.py +152 -0
- examples/format_sets/all_format_sets.json +910 -0
- examples/format_sets/custom_format_sets.json +268 -0
- examples/format_sets/subset_format_sets.json +187 -0
- examples/format_sets_save_load_example.py +291 -0
- examples/jacquard_data_sets.py +129 -0
- examples/output_formats_example.py +193 -0
- examples/test_jacquard_data_sets.py +54 -0
- examples/test_jacquard_data_sets_scenarios.py +94 -0
- md_processing/__init__.py +33 -24
- md_processing/command_dispatcher.py +33 -0
- md_processing/command_mapping.py +221 -0
- md_processing/data/commands/commands_data_designer.json +537 -0
- md_processing/data/commands/commands_external_reference.json +733 -0
- md_processing/data/commands/commands_feedback.json +155 -0
- md_processing/data/commands/commands_general.json +204 -0
- md_processing/data/commands/commands_glossary.json +218 -0
- md_processing/data/commands/commands_governance.json +3678 -0
- md_processing/data/commands/commands_product_manager.json +865 -0
- md_processing/data/commands/commands_project.json +642 -0
- md_processing/data/commands/commands_solution_architect.json +366 -0
- md_processing/data/commands.json +6489 -30060
- md_processing/data/{commands-working.json → commands_working.json} +9304 -13513
- md_processing/data/gened_report_specs.py +6584 -0
- md_processing/data/generated_format_sets.json +6533 -0
- md_processing/data/generated_format_sets_old.json +4137 -0
- md_processing/data/generated_format_sets_old.py +45 -0
- md_processing/dr_egeria.py +182 -0
- md_processing/md_commands/data_designer_commands.py +195 -583
- md_processing/md_commands/ext_ref_commands.py +530 -0
- md_processing/md_commands/feedback_commands.py +726 -0
- md_processing/md_commands/glossary_commands.py +106 -490
- md_processing/md_commands/governance_officer_commands.py +129 -18
- md_processing/md_commands/product_manager_commands.py +362 -115
- md_processing/md_commands/project_commands.py +351 -134
- md_processing/md_commands/solution_architect_commands.py +276 -232
- md_processing/md_commands/view_commands.py +295 -0
- md_processing/md_processing_utils/common_md_proc_utils.py +258 -166
- md_processing/md_processing_utils/common_md_utils.py +138 -43
- md_processing/md_processing_utils/determine_width.py +103 -0
- md_processing/md_processing_utils/extraction_utils.py +100 -39
- md_processing/md_processing_utils/gen_report_specs.py +643 -0
- md_processing/md_processing_utils/generate_dr_help.py +61 -33
- md_processing/md_processing_utils/generate_md_cmd_templates.py +20 -19
- md_processing/md_processing_utils/generate_md_templates.py +3 -12
- md_processing/md_processing_utils/md_processing_constants.py +1053 -72
- pyegeria/__init__.py +203 -158
- pyegeria/core/__init__.py +40 -0
- pyegeria/core/_base_platform_client.py +574 -0
- pyegeria/core/_base_server_client.py +573 -0
- pyegeria/{_exceptions_new.py → core/_exceptions.py} +62 -30
- pyegeria/{_globals.py → core/_globals.py} +14 -3
- pyegeria/core/_server_client.py +6073 -0
- pyegeria/{_validators.py → core/_validators.py} +7 -8
- pyegeria/core/config.py +654 -0
- pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
- pyegeria/core/load_config.py +37 -0
- pyegeria/{logging_configuration.py → core/logging_configuration.py} +1 -1
- pyegeria/core/mcp_adapter.py +144 -0
- pyegeria/core/mcp_server.py +212 -0
- pyegeria/core/utils.py +405 -0
- pyegeria/{_client.py → deprecated/_client.py} +24 -25
- pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
- pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1987 -1877
- pyegeria/{output_formatter.py → deprecated/output_formatter_with_machine_keys.py} +298 -45
- pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +155 -171
- pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
- pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
- pyegeria/egeria_cat_client.py +26 -70
- pyegeria/egeria_client.py +130 -93
- pyegeria/egeria_config_client.py +40 -46
- pyegeria/egeria_tech_client.py +141 -54
- pyegeria/models/__init__.py +150 -0
- pyegeria/{models.py → models/models.py} +156 -20
- pyegeria/omvs/__init__.py +84 -0
- pyegeria/omvs/action_author.py +342 -0
- pyegeria/omvs/actor_manager.py +5980 -0
- pyegeria/omvs/asset_catalog.py +842 -0
- pyegeria/omvs/asset_maker.py +2736 -0
- pyegeria/omvs/automated_curation.py +4403 -0
- pyegeria/omvs/classification_manager.py +11213 -0
- pyegeria/{collection_manager.py → omvs/collection_manager.py} +1334 -1160
- pyegeria/omvs/community_matters_omvs.py +468 -0
- pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
- pyegeria/{data_designer.py → omvs/data_designer.py} +1115 -660
- pyegeria/omvs/data_discovery.py +869 -0
- pyegeria/omvs/data_engineer.py +372 -0
- pyegeria/omvs/digital_business.py +1133 -0
- pyegeria/omvs/external_links.py +1752 -0
- pyegeria/omvs/feedback_manager.py +834 -0
- pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
- pyegeria/{glossary_manager.py → omvs/glossary_manager.py} +857 -519
- pyegeria/{governance_officer.py → omvs/governance_officer.py} +964 -468
- pyegeria/omvs/lineage_linker.py +314 -0
- pyegeria/omvs/location_arena.py +1525 -0
- pyegeria/omvs/metadata_expert.py +668 -0
- pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
- pyegeria/omvs/my_profile.py +1042 -0
- pyegeria/omvs/notification_manager.py +358 -0
- pyegeria/omvs/people_organizer.py +394 -0
- pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
- pyegeria/omvs/product_manager.py +1825 -0
- pyegeria/omvs/project_manager.py +1907 -0
- pyegeria/omvs/reference_data.py +1140 -0
- pyegeria/omvs/registered_info.py +334 -0
- pyegeria/omvs/runtime_manager.py +2817 -0
- pyegeria/omvs/schema_maker.py +446 -0
- pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
- pyegeria/{solution_architect_omvs.py → omvs/solution_architect.py} +1886 -1505
- pyegeria/omvs/specification_properties.py +37 -0
- pyegeria/omvs/subject_area.py +1042 -0
- pyegeria/omvs/template_manager_omvs.py +236 -0
- pyegeria/omvs/time_keeper.py +1761 -0
- pyegeria/omvs/valid_metadata.py +3221 -0
- pyegeria/omvs/valid_metadata_lists.py +37 -0
- pyegeria/omvs/valid_type_lists.py +37 -0
- pyegeria/view/__init__.py +28 -0
- pyegeria/{_output_format_models.py → view/_output_format_models.py} +160 -24
- pyegeria/view/_output_formats.py +14 -0
- pyegeria/view/base_report_formats.py +2719 -0
- pyegeria/view/dr_egeria_reports.py +56 -0
- pyegeria/view/format_set_executor.py +397 -0
- pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
- pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
- pyegeria/view/output_formatter.py +1297 -0
- pyegeria-5.5.3.3.dist-info/METADATA +218 -0
- pyegeria-5.5.3.3.dist-info/RECORD +241 -0
- {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
- pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
- pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
- commands/cat/.DS_Store +0 -0
- commands/cat/.env +0 -8
- commands/cat/README.md +0 -16
- commands/cat/debug_log +0 -1126
- commands/cat/debug_log.2025-08-18_11-34-38_088636.zip +0 -0
- commands/cat/list_categories.py +0 -192
- commands/cat/logs/pyegeria.log +0 -4
- commands/cli/debug_log +0 -0
- commands/cli/debug_log.log +0 -0
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/ops/logs/pyegeria.log +0 -0
- commands/ops/monitor_asset_events.py +0 -108
- commands/tech/README.md +0 -24
- md_processing/.DS_Store +0 -0
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-30-37.md +0 -163
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-35-58.md +0 -474
- md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +0 -8
- md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +0 -873
- md_processing/dr_egeria_inbox/arch_test.md +0 -57
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
- md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
- md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
- md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
- md_processing/dr_egeria_inbox/cat_test.md +0 -100
- md_processing/dr_egeria_inbox/collections.md +0 -39
- md_processing/dr_egeria_inbox/data_designer_debug.log +0 -6
- md_processing/dr_egeria_inbox/data_designer_out.md +0 -60
- md_processing/dr_egeria_inbox/data_designer_search_test.md +0 -11
- md_processing/dr_egeria_inbox/data_field.md +0 -54
- md_processing/dr_egeria_inbox/data_spec.md +0 -77
- md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
- md_processing/dr_egeria_inbox/data_test.md +0 -179
- md_processing/dr_egeria_inbox/data_test2.md +0 -429
- md_processing/dr_egeria_inbox/data_test3.md +0 -462
- md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +0 -124
- md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
- md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
- md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -318
- md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
- md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
- md_processing/dr_egeria_inbox/generated_help_report.md +0 -9
- md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
- md_processing/dr_egeria_inbox/glossary_list.md +0 -5
- md_processing/dr_egeria_inbox/glossary_search_test.md +0 -40
- md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
- md_processing/dr_egeria_inbox/gov_def.md +0 -482
- md_processing/dr_egeria_inbox/gov_def2.md +0 -447
- md_processing/dr_egeria_inbox/img.png +0 -0
- md_processing/dr_egeria_inbox/product.md +0 -211
- md_processing/dr_egeria_inbox/rel.md +0 -8
- md_processing/dr_egeria_inbox/sb.md +0 -119
- md_processing/dr_egeria_inbox/solution-components.md +0 -136
- md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
- md_processing/dr_egeria_inbox/synonym_test.md +0 -42
- md_processing/dr_egeria_inbox/t2.md +0 -268
- md_processing/dr_egeria_outbox/.obsidian/app.json +0 -1
- md_processing/dr_egeria_outbox/.obsidian/appearance.json +0 -1
- md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +0 -6
- md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +0 -31
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +0 -10
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +0 -4459
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +0 -10
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +0 -3
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +0 -153
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +0 -11
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +0 -1
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +0 -500
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +0 -12
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +0 -1
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +0 -37
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +0 -11
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +0 -220
- md_processing/dr_egeria_outbox/.obsidian/types.json +0 -28
- md_processing/dr_egeria_outbox/.obsidian/workspace.json +0 -220
- md_processing/dr_egeria_outbox/Untitled.canvas +0 -1
- md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:22-dr_egeria_intro_part1.md +0 -312
- md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:23-dr_egeria_intro_part1.md +0 -265
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:06-dr_egeria_intro_part1.md +0 -230
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:30-dr_egeria_intro_part1.md +0 -296
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:31-dr_egeria_intro_part1.md +0 -253
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:08-dr_egeria_intro_part2.md +0 -343
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:12-dr_egeria_intro_part2.md +0 -343
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:05-product.md +0 -426
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:56-product.md +0 -212
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 09:43-product.md +0 -201
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 14:55-product.md +0 -77
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:05-product.md +0 -75
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:11-product.md +0 -74
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 20:40-collections.md +0 -49
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +0 -719
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +0 -41
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +0 -33
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +0 -192
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-16 19:15-gov_def2.md +0 -527
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 12:08-gov_def2.md +0 -527
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 14:27-gov_def2.md +0 -485
- md_processing/dr_egeria_outbox/tuesday/processed-2025-08-19 10:55-product.md +0 -209
- md_processing/family_docs/Data Designer/Create_Data_Class.md +0 -164
- md_processing/family_docs/Data Designer/Create_Data_Dictionary.md +0 -30
- md_processing/family_docs/Data Designer/Create_Data_Field.md +0 -162
- md_processing/family_docs/Data Designer/Create_Data_Specification.md +0 -36
- md_processing/family_docs/Data Designer/Create_Data_Structure.md +0 -38
- md_processing/family_docs/Data Designer/View_Data_Classes.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Dictionaries.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Fields.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Specifications.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Structures.md +0 -78
- md_processing/family_docs/Data Designer.md +0 -842
- md_processing/family_docs/Digital Product Manager/Add_Member->Collection.md +0 -42
- md_processing/family_docs/Digital Product Manager/Attach_Collection->Resource.md +0 -36
- md_processing/family_docs/Digital Product Manager/Create_Agreement.md +0 -96
- md_processing/family_docs/Digital Product Manager/Create_Data_Sharing_Agreement.md +0 -72
- md_processing/family_docs/Digital Product Manager/Create_DigitalSubscription.md +0 -102
- md_processing/family_docs/Digital Product Manager/Create_Digital_Product.md +0 -134
- md_processing/family_docs/Digital Product Manager/Link_Agreement_Items.md +0 -60
- md_processing/family_docs/Digital Product Manager/Link_Contracts.md +0 -26
- md_processing/family_docs/Digital Product Manager/Link_Digital_Product_-_Digital_Product.md +0 -30
- md_processing/family_docs/Digital Product Manager/Link_Subscribers.md +0 -48
- md_processing/family_docs/Digital Product Manager.md +0 -668
- md_processing/family_docs/Glossary/Attach_Category_Parent.md +0 -18
- md_processing/family_docs/Glossary/Attach_Term-Term_Relationship.md +0 -26
- md_processing/family_docs/Glossary/Create_Category.md +0 -38
- md_processing/family_docs/Glossary/Create_Glossary.md +0 -42
- md_processing/family_docs/Glossary/Create_Term.md +0 -70
- md_processing/family_docs/Glossary.md +0 -206
- md_processing/family_docs/Governance Officer/Create_Business_Imperative.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Certification_Type.md +0 -112
- md_processing/family_docs/Governance Officer/Create_Governance_Approach.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Obligation.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Principle.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Procedure.md +0 -128
- md_processing/family_docs/Governance Officer/Create_Governance_Process.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Processing_Purpose.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Governance_Responsibility.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Rule.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Strategy.md +0 -106
- md_processing/family_docs/Governance Officer/Create_License_Type.md +0 -112
- md_processing/family_docs/Governance Officer/Create_Naming_Standard_Rule.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Regulation_Article.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Regulation_Definition.md +0 -118
- md_processing/family_docs/Governance Officer/Create_Security_Access_Control.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Security_Group.md +0 -120
- md_processing/family_docs/Governance Officer/Create_Service_Level_Objectives.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Threat_Definition.md +0 -106
- md_processing/family_docs/Governance Officer/Link_Governance_Controls.md +0 -32
- md_processing/family_docs/Governance Officer/Link_Governance_Drivers.md +0 -32
- md_processing/family_docs/Governance Officer/Link_Governance_Policies.md +0 -32
- md_processing/family_docs/Governance Officer/View_Governance_Definitions.md +0 -82
- md_processing/family_docs/Governance Officer.md +0 -2412
- md_processing/family_docs/Solution Architect/Create_Information_Supply_Chain.md +0 -70
- md_processing/family_docs/Solution Architect/Create_Solution_Blueprint.md +0 -44
- md_processing/family_docs/Solution Architect/Create_Solution_Component.md +0 -96
- md_processing/family_docs/Solution Architect/Create_Solution_Role.md +0 -66
- md_processing/family_docs/Solution Architect/Link_Information_Supply_Chain_Peers.md +0 -32
- md_processing/family_docs/Solution Architect/Link_Solution_Component_Peers.md +0 -32
- md_processing/family_docs/Solution Architect/View_Information_Supply_Chains.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Blueprints.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Components.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Roles.md +0 -32
- md_processing/family_docs/Solution Architect.md +0 -490
- md_processing/md_processing_utils/debug_log +0 -574
- md_processing/md_processing_utils/debug_log.log +0 -0
- md_processing/md_processing_utils/dr-egeria-help-2025-07-17T17:22:09.md +0 -2065
- md_processing/md_processing_utils/generated_help_terms.md +0 -842
- pyegeria/.DS_Store +0 -0
- pyegeria/README.md +0 -35
- pyegeria/_client_new.py +0 -1102
- pyegeria/_output_formats.py +0 -730
- pyegeria/asset_catalog_omvs.py +0 -864
- pyegeria/automated_curation_omvs.py +0 -3765
- pyegeria/config.py +0 -523
- pyegeria/egeria_my_client.py +0 -91
- pyegeria/feedback_manager_omvs.py +0 -4573
- pyegeria/load_config_orig.py +0 -218
- pyegeria/md_processing_helpers.py +0 -58
- pyegeria/md_processing_utils_orig.py +0 -1103
- pyegeria/metadata_explorer_omvs.py +0 -2326
- pyegeria/my_profile_omvs.py +0 -1022
- pyegeria/project_manager.py +0 -1591
- pyegeria/registered_info.py +0 -167
- pyegeria/template_manager_omvs.py +0 -1414
- pyegeria/utils.py +0 -256
- pyegeria-5.4.0.28.dist-info/METADATA +0 -77
- pyegeria-5.4.0.28.dist-info/RECORD +0 -343
- pyegeria-5.4.0.28.dist-info/entry_points.txt +0 -105
- /commands/cat/debug_log.log → /pyegeria/deprecated/__init__.py +0 -0
- /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
- /pyegeria/{collection_models.py → models/collection_models.py} +0 -0
- {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,1133 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
Copyright Contributors to the ODPi Egeria project.
|
|
4
|
+
|
|
5
|
+
This module provides access to the Digital Business OMVS module.
|
|
6
|
+
|
|
7
|
+
The Digital Business OMVS provides APIs for managing business capabilities and their
|
|
8
|
+
relationships to digital resources.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import asyncio
|
|
12
|
+
from typing import Optional
|
|
13
|
+
|
|
14
|
+
from pyegeria.omvs.collection_manager import CollectionManager
|
|
15
|
+
from pyegeria.core._server_client import ServerClient
|
|
16
|
+
from pyegeria.core.config import settings as app_settings
|
|
17
|
+
from pyegeria.models import (
|
|
18
|
+
NewElementRequestBody,
|
|
19
|
+
UpdateElementRequestBody,
|
|
20
|
+
DeleteElementRequestBody,
|
|
21
|
+
NewRelationshipRequestBody,
|
|
22
|
+
DeleteRelationshipRequestBody,
|
|
23
|
+
NewClassificationRequestBody,
|
|
24
|
+
DeleteClassificationRequestBody
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
from pyegeria.core.utils import dynamic_catch, body_slimmer
|
|
28
|
+
|
|
29
|
+
EGERIA_LOCAL_QUALIFIER = app_settings.User_Profile.egeria_local_qualifier
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class DigitalBusiness(CollectionManager):
|
|
33
|
+
"""
|
|
34
|
+
Manage business capabilities, their lifecycle, and their digital support relationships.
|
|
35
|
+
|
|
36
|
+
This client provides methods to create, update, and manage business capabilities,
|
|
37
|
+
link business capabilities with their dependencies and digital support elements,
|
|
38
|
+
as well as manage business significance classifications.
|
|
39
|
+
|
|
40
|
+
Attributes
|
|
41
|
+
----------
|
|
42
|
+
view_server : str
|
|
43
|
+
The name of the View Server to connect to.
|
|
44
|
+
platform_url : str
|
|
45
|
+
URL of the server platform to connect to.
|
|
46
|
+
user_id : str
|
|
47
|
+
The identity of the user calling the method - this sets a default optionally
|
|
48
|
+
used by the methods when the user doesn't pass the user_id on a method call.
|
|
49
|
+
user_pwd : str, optional
|
|
50
|
+
The password associated with the user_id. Defaults to None.
|
|
51
|
+
token : str, optional
|
|
52
|
+
An optional bearer token for authentication.
|
|
53
|
+
|
|
54
|
+
Methods
|
|
55
|
+
-------
|
|
56
|
+
create_business_capability(body)
|
|
57
|
+
Create a new business capability collection.
|
|
58
|
+
update_business_capability(business_capability_guid, body)
|
|
59
|
+
Update the properties of a business capability.
|
|
60
|
+
delete_business_capability(business_capability_guid, body, cascade)
|
|
61
|
+
Delete a business capability.
|
|
62
|
+
get_business_capability_by_guid(business_capability_guid, body, output_format, report_spec)
|
|
63
|
+
Return the properties of a specific business capability by GUID.
|
|
64
|
+
get_business_capabilities_by_name(filter_string, body, start_from, page_size, output_format, report_spec)
|
|
65
|
+
Returns the list of business capabilities with a particular name.
|
|
66
|
+
find_business_capabilities(search_string, starts_with, ends_with, ignore_case, start_from, page_size, output_format, report_spec, body)
|
|
67
|
+
Returns the list of business capabilities matching the search string.
|
|
68
|
+
link_business_capability_dependency(business_capability_guid, supporting_capability_guid, body)
|
|
69
|
+
Link dependent business capabilities.
|
|
70
|
+
detach_business_capability_dependency(business_capability_guid, supporting_capability_guid, body)
|
|
71
|
+
Detach dependent business capabilities.
|
|
72
|
+
link_digital_support(business_capability_guid, element_guid, body)
|
|
73
|
+
Attach a business capability to an element that provides digital support.
|
|
74
|
+
detach_digital_support(business_capability_guid, element_guid, body)
|
|
75
|
+
Detach a business capability from digital support.
|
|
76
|
+
set_business_significant(element_guid, body)
|
|
77
|
+
Classify an element as business significant.
|
|
78
|
+
clear_business_significance(element_guid, body)
|
|
79
|
+
Remove the business significant classification.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
def __init__(
|
|
83
|
+
self,
|
|
84
|
+
view_server: str,
|
|
85
|
+
platform_url: str,
|
|
86
|
+
user_id: str,
|
|
87
|
+
user_pwd: Optional[str] = None,
|
|
88
|
+
token: Optional[str] = None,
|
|
89
|
+
):
|
|
90
|
+
self.view_server = view_server
|
|
91
|
+
self.platform_url = platform_url
|
|
92
|
+
self.user_id = user_id
|
|
93
|
+
self.user_pwd = user_pwd
|
|
94
|
+
self.digital_business_command_root: str = (
|
|
95
|
+
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/digital-business"
|
|
96
|
+
)
|
|
97
|
+
ServerClient.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
98
|
+
|
|
99
|
+
def _prepare_body(self, body: Optional[dict | NewElementRequestBody | UpdateElementRequestBody |
|
|
100
|
+
DeleteElementRequestBody | NewRelationshipRequestBody |
|
|
101
|
+
DeleteRelationshipRequestBody | NewClassificationRequestBody |
|
|
102
|
+
DeleteClassificationRequestBody]) -> dict:
|
|
103
|
+
"""Convert Pydantic models to dict and slim the body."""
|
|
104
|
+
if body is None:
|
|
105
|
+
return {}
|
|
106
|
+
if isinstance(body, dict):
|
|
107
|
+
return body_slimmer(body)
|
|
108
|
+
# It's a Pydantic model
|
|
109
|
+
return body_slimmer(body.model_dump(mode='json', by_alias=True, exclude_none=True))
|
|
110
|
+
|
|
111
|
+
#
|
|
112
|
+
# Business Capability Lifecycle Management
|
|
113
|
+
#
|
|
114
|
+
|
|
115
|
+
@dynamic_catch
|
|
116
|
+
async def _async_create_business_capability(
|
|
117
|
+
self,
|
|
118
|
+
body: Optional[dict | NewElementRequestBody],
|
|
119
|
+
) -> str:
|
|
120
|
+
"""Create a new business capability collection. Async version.
|
|
121
|
+
|
|
122
|
+
Parameters
|
|
123
|
+
----------
|
|
124
|
+
body : dict | NewElementRequestBody
|
|
125
|
+
Request body containing business capability properties.
|
|
126
|
+
|
|
127
|
+
Returns
|
|
128
|
+
-------
|
|
129
|
+
str
|
|
130
|
+
The GUID of the created business capability.
|
|
131
|
+
|
|
132
|
+
Raises
|
|
133
|
+
------
|
|
134
|
+
PyegeriaException
|
|
135
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
136
|
+
ValidationError
|
|
137
|
+
If the body does not conform to NewElementRequestBody.
|
|
138
|
+
PyegeriaNotAuthorizedException
|
|
139
|
+
If the user is not authorized for the requested action.
|
|
140
|
+
|
|
141
|
+
Notes
|
|
142
|
+
-----
|
|
143
|
+
JSON Structure looks like:
|
|
144
|
+
{
|
|
145
|
+
"class" : "NewElementRequestBody",
|
|
146
|
+
"typeName": "BusinessCapability",
|
|
147
|
+
"isOwnAnchor" : true,
|
|
148
|
+
"properties": {
|
|
149
|
+
"class" : "BusinessCapabilityProperties",
|
|
150
|
+
"qualifiedName": "BusinessCapability::Add capability name here",
|
|
151
|
+
"displayName" : "Capability name",
|
|
152
|
+
"description" : "Add description of capability here",
|
|
153
|
+
"identifier" : "Add capability identifier here",
|
|
154
|
+
"businessCapabilityType" : "Add type here",
|
|
155
|
+
"additionalProperties": {
|
|
156
|
+
"property1Name" : "property1Value"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"effectiveTime" : "timestamp",
|
|
160
|
+
"forLineage" : false,
|
|
161
|
+
"forDuplicateProcessing" : false,
|
|
162
|
+
}
|
|
163
|
+
"""
|
|
164
|
+
url = f"{self.digital_business_command_root}/collections"
|
|
165
|
+
return await self._async_create_element_body_request(url, ["BusinessCapabilityProperties"], body)
|
|
166
|
+
|
|
167
|
+
def create_business_capability(
|
|
168
|
+
self,
|
|
169
|
+
body: Optional[dict | NewElementRequestBody],
|
|
170
|
+
) -> str:
|
|
171
|
+
"""Create a new business capability collection. Sync version.
|
|
172
|
+
|
|
173
|
+
Parameters
|
|
174
|
+
----------
|
|
175
|
+
body : dict | NewElementRequestBody
|
|
176
|
+
Request body containing business capability properties.
|
|
177
|
+
|
|
178
|
+
Returns
|
|
179
|
+
-------
|
|
180
|
+
str
|
|
181
|
+
The GUID of the created business capability.
|
|
182
|
+
|
|
183
|
+
Raises
|
|
184
|
+
------
|
|
185
|
+
PyegeriaException
|
|
186
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
187
|
+
"""
|
|
188
|
+
body = self._prepare_body(body)
|
|
189
|
+
loop = asyncio.get_event_loop()
|
|
190
|
+
return loop.run_until_complete(self._async_create_business_capability(body))
|
|
191
|
+
|
|
192
|
+
@dynamic_catch
|
|
193
|
+
async def _async_update_business_capability(
|
|
194
|
+
self,
|
|
195
|
+
business_capability_guid: str,
|
|
196
|
+
body: Optional[dict | UpdateElementRequestBody] = None,
|
|
197
|
+
) -> None:
|
|
198
|
+
"""Update the properties of a business capability. Async version.
|
|
199
|
+
|
|
200
|
+
Parameters
|
|
201
|
+
----------
|
|
202
|
+
business_capability_guid : str
|
|
203
|
+
The GUID of the business capability to update.
|
|
204
|
+
body : dict | UpdateElementRequestBody, optional
|
|
205
|
+
Request body containing updated properties.
|
|
206
|
+
|
|
207
|
+
Returns
|
|
208
|
+
-------
|
|
209
|
+
None
|
|
210
|
+
|
|
211
|
+
Raises
|
|
212
|
+
------
|
|
213
|
+
PyegeriaException
|
|
214
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
215
|
+
ValidationError
|
|
216
|
+
If the body does not conform to UpdateElementRequestBody.
|
|
217
|
+
PyegeriaNotAuthorizedException
|
|
218
|
+
If the user is not authorized for the requested action.
|
|
219
|
+
"""
|
|
220
|
+
url = f"{self.digital_business_command_root}/collections/{business_capability_guid}/update"
|
|
221
|
+
await self._async_update_element_body_request(url, ["BusinessCapabilityProperties"], body)
|
|
222
|
+
|
|
223
|
+
def update_business_capability(
|
|
224
|
+
self,
|
|
225
|
+
business_capability_guid: str,
|
|
226
|
+
body: Optional[dict | UpdateElementRequestBody] = None,
|
|
227
|
+
) -> None:
|
|
228
|
+
"""Update the properties of a business capability. Sync version.
|
|
229
|
+
|
|
230
|
+
Parameters
|
|
231
|
+
----------
|
|
232
|
+
business_capability_guid : str
|
|
233
|
+
The GUID of the business capability to update.
|
|
234
|
+
body : dict | UpdateElementRequestBody, optional
|
|
235
|
+
Request body containing updated properties.
|
|
236
|
+
|
|
237
|
+
Returns
|
|
238
|
+
-------
|
|
239
|
+
None
|
|
240
|
+
|
|
241
|
+
Raises
|
|
242
|
+
------
|
|
243
|
+
PyegeriaException
|
|
244
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
245
|
+
"""
|
|
246
|
+
business_capability_guid = str(business_capability_guid)
|
|
247
|
+
body = self._prepare_body(body)
|
|
248
|
+
loop = asyncio.get_event_loop()
|
|
249
|
+
loop.run_until_complete(
|
|
250
|
+
self._async_update_business_capability(business_capability_guid, body)
|
|
251
|
+
)
|
|
252
|
+
|
|
253
|
+
@dynamic_catch
|
|
254
|
+
async def _async_delete_business_capability(
|
|
255
|
+
self,
|
|
256
|
+
business_capability_guid: str,
|
|
257
|
+
body: Optional[dict | DeleteElementRequestBody] = None,
|
|
258
|
+
cascade: bool = False,
|
|
259
|
+
) -> None:
|
|
260
|
+
"""Delete a business capability. Async version.
|
|
261
|
+
|
|
262
|
+
Parameters
|
|
263
|
+
----------
|
|
264
|
+
business_capability_guid : str
|
|
265
|
+
The GUID of the business capability to delete.
|
|
266
|
+
body : dict | DeleteElementRequestBody, optional
|
|
267
|
+
Request body for deletion.
|
|
268
|
+
cascade : bool, optional
|
|
269
|
+
Whether to cascade the delete. Defaults to False.
|
|
270
|
+
|
|
271
|
+
Returns
|
|
272
|
+
-------
|
|
273
|
+
None
|
|
274
|
+
|
|
275
|
+
Raises
|
|
276
|
+
------
|
|
277
|
+
PyegeriaException
|
|
278
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
279
|
+
ValidationError
|
|
280
|
+
If the body does not conform to DeleteElementRequestBody.
|
|
281
|
+
PyegeriaNotAuthorizedException
|
|
282
|
+
If the user is not authorized for the requested action.
|
|
283
|
+
"""
|
|
284
|
+
url = f"{self.digital_business_command_root}/collections/{business_capability_guid}/delete"
|
|
285
|
+
await self._async_delete_element_request(url, body, cascade)
|
|
286
|
+
|
|
287
|
+
def delete_business_capability(
|
|
288
|
+
self,
|
|
289
|
+
business_capability_guid: str,
|
|
290
|
+
body: Optional[dict | DeleteElementRequestBody] = None,
|
|
291
|
+
cascade: bool = False,
|
|
292
|
+
) -> None:
|
|
293
|
+
"""Delete a business capability. Sync version.
|
|
294
|
+
|
|
295
|
+
Parameters
|
|
296
|
+
----------
|
|
297
|
+
business_capability_guid : str
|
|
298
|
+
The GUID of the business capability to delete.
|
|
299
|
+
body : dict | DeleteElementRequestBody, optional
|
|
300
|
+
Request body for deletion.
|
|
301
|
+
cascade : bool, optional
|
|
302
|
+
Whether to cascade the delete. Defaults to False.
|
|
303
|
+
|
|
304
|
+
Returns
|
|
305
|
+
-------
|
|
306
|
+
None
|
|
307
|
+
|
|
308
|
+
Raises
|
|
309
|
+
------
|
|
310
|
+
PyegeriaException
|
|
311
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
312
|
+
"""
|
|
313
|
+
business_capability_guid = str(business_capability_guid)
|
|
314
|
+
body = self._prepare_body(body)
|
|
315
|
+
cascade = bool(cascade)
|
|
316
|
+
loop = asyncio.get_event_loop()
|
|
317
|
+
loop.run_until_complete(
|
|
318
|
+
self._async_delete_business_capability(business_capability_guid, body, cascade)
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
@dynamic_catch
|
|
322
|
+
async def _async_get_business_capability_by_guid(
|
|
323
|
+
self,
|
|
324
|
+
business_capability_guid: str,
|
|
325
|
+
body: Optional[dict] = None,
|
|
326
|
+
output_format: str = "JSON",
|
|
327
|
+
report_spec: Optional[str | dict] = None,
|
|
328
|
+
) -> dict | str:
|
|
329
|
+
"""Return the properties of a specific business capability by GUID. Async version.
|
|
330
|
+
|
|
331
|
+
Parameters
|
|
332
|
+
----------
|
|
333
|
+
business_capability_guid : str
|
|
334
|
+
The GUID of the business capability to retrieve.
|
|
335
|
+
body : dict, optional
|
|
336
|
+
Request body (typically empty for retrieval).
|
|
337
|
+
output_format : str, optional
|
|
338
|
+
Format for output. Defaults to "JSON".
|
|
339
|
+
report_spec : str | dict, optional
|
|
340
|
+
Report specification for formatting.
|
|
341
|
+
|
|
342
|
+
Returns
|
|
343
|
+
-------
|
|
344
|
+
dict | str
|
|
345
|
+
The business capability properties.
|
|
346
|
+
|
|
347
|
+
Raises
|
|
348
|
+
------
|
|
349
|
+
PyegeriaException
|
|
350
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
351
|
+
PyegeriaNotFoundException
|
|
352
|
+
If the business capability is not found.
|
|
353
|
+
PyegeriaNotAuthorizedException
|
|
354
|
+
If the user is not authorized for the requested action.
|
|
355
|
+
"""
|
|
356
|
+
url = f"{self.digital_business_command_root}/collections/{business_capability_guid}/retrieve"
|
|
357
|
+
response = await self._async_get_guid_request(
|
|
358
|
+
url,
|
|
359
|
+
_type="BusinessCapability",
|
|
360
|
+
_gen_output=self._generate_collection_output,
|
|
361
|
+
output_format=output_format,
|
|
362
|
+
report_spec=report_spec,
|
|
363
|
+
body=body,
|
|
364
|
+
)
|
|
365
|
+
return response
|
|
366
|
+
|
|
367
|
+
def get_business_capability_by_guid(
|
|
368
|
+
self,
|
|
369
|
+
business_capability_guid: str,
|
|
370
|
+
body: Optional[dict] = None,
|
|
371
|
+
output_format: str = "JSON",
|
|
372
|
+
report_spec: Optional[str | dict] = None,
|
|
373
|
+
) -> dict | str:
|
|
374
|
+
"""Return the properties of a specific business capability by GUID. Sync version.
|
|
375
|
+
|
|
376
|
+
Parameters
|
|
377
|
+
----------
|
|
378
|
+
business_capability_guid : str
|
|
379
|
+
The GUID of the business capability to retrieve.
|
|
380
|
+
body : dict, optional
|
|
381
|
+
Request body (typically empty for retrieval).
|
|
382
|
+
output_format : str, optional
|
|
383
|
+
Format for output. Defaults to "JSON".
|
|
384
|
+
report_spec : str | dict, optional
|
|
385
|
+
Report specification for formatting.
|
|
386
|
+
|
|
387
|
+
Returns
|
|
388
|
+
-------
|
|
389
|
+
dict | str
|
|
390
|
+
The business capability properties.
|
|
391
|
+
|
|
392
|
+
Raises
|
|
393
|
+
------
|
|
394
|
+
PyegeriaException
|
|
395
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
396
|
+
"""
|
|
397
|
+
loop = asyncio.get_event_loop()
|
|
398
|
+
return loop.run_until_complete(
|
|
399
|
+
self._async_get_business_capability_by_guid(
|
|
400
|
+
business_capability_guid, body, output_format, report_spec
|
|
401
|
+
)
|
|
402
|
+
)
|
|
403
|
+
|
|
404
|
+
@dynamic_catch
|
|
405
|
+
async def _async_get_business_capabilities_by_name(
|
|
406
|
+
self,
|
|
407
|
+
filter_string: Optional[str] = None,
|
|
408
|
+
classification_names: Optional[list[str]] = None,
|
|
409
|
+
body: Optional[dict] = None,
|
|
410
|
+
start_from: int = 0,
|
|
411
|
+
page_size: int = 0,
|
|
412
|
+
output_format: str = "JSON",
|
|
413
|
+
report_spec: Optional[str | dict] = None,
|
|
414
|
+
) -> list | str:
|
|
415
|
+
"""Returns the list of business capabilities with a particular name. Async version.
|
|
416
|
+
|
|
417
|
+
Parameters
|
|
418
|
+
----------
|
|
419
|
+
filter_string : str, optional
|
|
420
|
+
Filter string to match against capability names.
|
|
421
|
+
classification_names : list[str], optional
|
|
422
|
+
List of classification names to filter by.
|
|
423
|
+
body : dict, optional
|
|
424
|
+
Request body for additional filtering.
|
|
425
|
+
start_from : int, optional
|
|
426
|
+
Starting index for pagination. Defaults to 0.
|
|
427
|
+
page_size : int, optional
|
|
428
|
+
Number of results per page. Defaults to 0 (no limit).
|
|
429
|
+
output_format : str, optional
|
|
430
|
+
Format for output. Defaults to "JSON".
|
|
431
|
+
report_spec : str | dict, optional
|
|
432
|
+
Report specification for formatting.
|
|
433
|
+
|
|
434
|
+
Returns
|
|
435
|
+
-------
|
|
436
|
+
list | str
|
|
437
|
+
List of business capabilities matching the criteria.
|
|
438
|
+
|
|
439
|
+
Raises
|
|
440
|
+
------
|
|
441
|
+
PyegeriaException
|
|
442
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
443
|
+
"""
|
|
444
|
+
url = f"{self.digital_business_command_root}/collections/by-name"
|
|
445
|
+
response = await self._async_get_name_request(
|
|
446
|
+
url,
|
|
447
|
+
_type="BusinessCapability",
|
|
448
|
+
_gen_output=self._generate_collection_output,
|
|
449
|
+
filter_string=filter_string,
|
|
450
|
+
classification_names=classification_names,
|
|
451
|
+
start_from=start_from,
|
|
452
|
+
page_size=page_size,
|
|
453
|
+
output_format=output_format,
|
|
454
|
+
report_spec=report_spec,
|
|
455
|
+
body=body,
|
|
456
|
+
)
|
|
457
|
+
return response
|
|
458
|
+
|
|
459
|
+
def get_business_capabilities_by_name(
|
|
460
|
+
self,
|
|
461
|
+
filter_string: Optional[str] = None,
|
|
462
|
+
classification_names: Optional[list[str]] = None,
|
|
463
|
+
body: Optional[dict] = None,
|
|
464
|
+
start_from: int = 0,
|
|
465
|
+
page_size: int = 0,
|
|
466
|
+
output_format: str = "JSON",
|
|
467
|
+
report_spec: Optional[str | dict] = None,
|
|
468
|
+
) -> list | str:
|
|
469
|
+
"""Returns the list of business capabilities with a particular name. Sync version.
|
|
470
|
+
|
|
471
|
+
Parameters
|
|
472
|
+
----------
|
|
473
|
+
filter_string : str, optional
|
|
474
|
+
Filter string to match against capability names.
|
|
475
|
+
classification_names : list[str], optional
|
|
476
|
+
List of classification names to filter by.
|
|
477
|
+
body : dict, optional
|
|
478
|
+
Request body for additional filtering.
|
|
479
|
+
start_from : int, optional
|
|
480
|
+
Starting index for pagination. Defaults to 0.
|
|
481
|
+
page_size : int, optional
|
|
482
|
+
Number of results per page. Defaults to 0 (no limit).
|
|
483
|
+
output_format : str, optional
|
|
484
|
+
Format for output. Defaults to "JSON".
|
|
485
|
+
report_spec : str | dict, optional
|
|
486
|
+
Report specification for formatting.
|
|
487
|
+
|
|
488
|
+
Returns
|
|
489
|
+
-------
|
|
490
|
+
list | str
|
|
491
|
+
List of business capabilities matching the criteria.
|
|
492
|
+
|
|
493
|
+
Raises
|
|
494
|
+
------
|
|
495
|
+
PyegeriaException
|
|
496
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
497
|
+
"""
|
|
498
|
+
loop = asyncio.get_event_loop()
|
|
499
|
+
return loop.run_until_complete(
|
|
500
|
+
self._async_get_business_capabilities_by_name(
|
|
501
|
+
filter_string, classification_names, body, start_from, page_size, output_format, report_spec
|
|
502
|
+
)
|
|
503
|
+
)
|
|
504
|
+
|
|
505
|
+
@dynamic_catch
|
|
506
|
+
async def _async_find_business_capabilities(
|
|
507
|
+
self,
|
|
508
|
+
search_string: str = "*",
|
|
509
|
+
starts_with: bool = False,
|
|
510
|
+
ends_with: bool = False,
|
|
511
|
+
ignore_case: bool = True,
|
|
512
|
+
anchor_domain: Optional[str] = None,
|
|
513
|
+
metadata_element_type: Optional[str] = "BusinessCapability",
|
|
514
|
+
metadata_element_subtype: Optional[list[str]] = None,
|
|
515
|
+
skip_relationships: Optional[list[str]] = None,
|
|
516
|
+
include_only_relationships: Optional[list[str]] = None,
|
|
517
|
+
skip_classified_elements: Optional[list[str]] = None,
|
|
518
|
+
include_only_classified_elements: Optional[list[str]] = None,
|
|
519
|
+
graph_query_depth: int = 0,
|
|
520
|
+
governance_zone_filter: Optional[list[str]] = None,
|
|
521
|
+
as_of_time: Optional[str] = None,
|
|
522
|
+
effective_time: Optional[str] = None,
|
|
523
|
+
relationship_page_size: int = 0,
|
|
524
|
+
limit_results_by_status: Optional[list[str]] = None,
|
|
525
|
+
sequencing_order: Optional[str] = None,
|
|
526
|
+
sequencing_property: Optional[str] = None,
|
|
527
|
+
start_from: int = 0,
|
|
528
|
+
page_size: int = 0,
|
|
529
|
+
output_format: str = "JSON",
|
|
530
|
+
report_spec: Optional[str | dict] = None,
|
|
531
|
+
property_names: Optional[list[str]] = None,
|
|
532
|
+
body: Optional[dict] = None,
|
|
533
|
+
) -> list | str:
|
|
534
|
+
"""Returns the list of business capabilities matching the search string. Async version.
|
|
535
|
+
|
|
536
|
+
Parameters
|
|
537
|
+
----------
|
|
538
|
+
search_string : str, optional
|
|
539
|
+
Search string to match. Defaults to "*" (all).
|
|
540
|
+
starts_with : bool, optional
|
|
541
|
+
Whether to match from the start. Defaults to False.
|
|
542
|
+
ends_with : bool, optional
|
|
543
|
+
Whether to match at the end. Defaults to False.
|
|
544
|
+
ignore_case : bool, optional
|
|
545
|
+
Whether to ignore case. Defaults to True.
|
|
546
|
+
anchor_domain : str, optional
|
|
547
|
+
Domain to anchor the search.
|
|
548
|
+
metadata_element_type : str, optional
|
|
549
|
+
Type of metadata element to search for. Defaults to "BusinessCapability".
|
|
550
|
+
metadata_element_subtype : list[str], optional
|
|
551
|
+
Subtypes of metadata element.
|
|
552
|
+
skip_relationships : list[str], optional
|
|
553
|
+
Relationships to skip in the graph.
|
|
554
|
+
include_only_relationships : list[str], optional
|
|
555
|
+
Only include these relationships.
|
|
556
|
+
skip_classified_elements : list[str], optional
|
|
557
|
+
Skip elements with these classifications.
|
|
558
|
+
include_only_classified_elements : list[str], optional
|
|
559
|
+
Only include elements with these classifications.
|
|
560
|
+
graph_query_depth : int, optional
|
|
561
|
+
Depth of graph query. Defaults to 0.
|
|
562
|
+
governance_zone_filter : list[str], optional
|
|
563
|
+
Filter by governance zones.
|
|
564
|
+
as_of_time : str, optional
|
|
565
|
+
Historical time for the query.
|
|
566
|
+
effective_time : str, optional
|
|
567
|
+
Effective time for the query.
|
|
568
|
+
relationship_page_size : int, optional
|
|
569
|
+
Page size for relationships. Defaults to 0.
|
|
570
|
+
limit_results_by_status : list[str], optional
|
|
571
|
+
Limit results by status values.
|
|
572
|
+
sequencing_order : str, optional
|
|
573
|
+
Order for sequencing results.
|
|
574
|
+
sequencing_property : str, optional
|
|
575
|
+
Property to sequence by.
|
|
576
|
+
start_from : int, optional
|
|
577
|
+
Starting index for pagination. Defaults to 0.
|
|
578
|
+
page_size : int, optional
|
|
579
|
+
Number of results per page. Defaults to 0 (no limit).
|
|
580
|
+
output_format : str, optional
|
|
581
|
+
Format for output. Defaults to "JSON".
|
|
582
|
+
report_spec : str | dict, optional
|
|
583
|
+
Report specification for formatting.
|
|
584
|
+
property_names: list[str], optional
|
|
585
|
+
The names of properties to search for.
|
|
586
|
+
body : dict, optional
|
|
587
|
+
Request body for additional parameters.
|
|
588
|
+
|
|
589
|
+
Returns
|
|
590
|
+
-------
|
|
591
|
+
list | str
|
|
592
|
+
List of business capabilities matching the search criteria.
|
|
593
|
+
|
|
594
|
+
Raises
|
|
595
|
+
------
|
|
596
|
+
PyegeriaException
|
|
597
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
598
|
+
"""
|
|
599
|
+
url = f"{self.digital_business_command_root}/collections/by-search-string"
|
|
600
|
+
response = await self._async_find_request(
|
|
601
|
+
url,
|
|
602
|
+
_type="BusinessCapability",
|
|
603
|
+
_gen_output=self._generate_collection_output,
|
|
604
|
+
search_string=search_string,
|
|
605
|
+
starts_with=starts_with,
|
|
606
|
+
ends_with=ends_with,
|
|
607
|
+
ignore_case=ignore_case,
|
|
608
|
+
anchor_domain=anchor_domain,
|
|
609
|
+
metadata_element_type=metadata_element_type,
|
|
610
|
+
metadata_element_subtypes=metadata_element_subtype,
|
|
611
|
+
skip_relationships=skip_relationships,
|
|
612
|
+
include_only_relationships=include_only_relationships,
|
|
613
|
+
skip_classified_elements=skip_classified_elements,
|
|
614
|
+
include_only_classified_elements=include_only_classified_elements,
|
|
615
|
+
graph_query_depth=graph_query_depth,
|
|
616
|
+
governance_zone_filter=governance_zone_filter,
|
|
617
|
+
as_of_time=as_of_time,
|
|
618
|
+
effective_time=effective_time,
|
|
619
|
+
relationship_page_size=relationship_page_size,
|
|
620
|
+
limit_results_by_status=limit_results_by_status,
|
|
621
|
+
sequencing_order=sequencing_order,
|
|
622
|
+
sequencing_property=sequencing_property,
|
|
623
|
+
start_from=start_from,
|
|
624
|
+
page_size=page_size,
|
|
625
|
+
output_format=output_format,
|
|
626
|
+
report_spec=report_spec,
|
|
627
|
+
property_names=property_names,
|
|
628
|
+
body=body,
|
|
629
|
+
)
|
|
630
|
+
return response
|
|
631
|
+
|
|
632
|
+
def find_business_capabilities(
|
|
633
|
+
self,
|
|
634
|
+
search_string: str = "*",
|
|
635
|
+
starts_with: bool = False,
|
|
636
|
+
ends_with: bool = False,
|
|
637
|
+
ignore_case: bool = True,
|
|
638
|
+
anchor_domain: Optional[str] = None,
|
|
639
|
+
metadata_element_type: Optional[str] = "BusinessCapability",
|
|
640
|
+
metadata_element_subtype: Optional[list[str]] = None,
|
|
641
|
+
skip_relationships: Optional[list[str]] = None,
|
|
642
|
+
include_only_relationships: Optional[list[str]] = None,
|
|
643
|
+
skip_classified_elements: Optional[list[str]] = None,
|
|
644
|
+
include_only_classified_elements: Optional[list[str]] = None,
|
|
645
|
+
graph_query_depth: int = 0,
|
|
646
|
+
governance_zone_filter: Optional[list[str]] = None,
|
|
647
|
+
as_of_time: Optional[str] = None,
|
|
648
|
+
effective_time: Optional[str] = None,
|
|
649
|
+
relationship_page_size: int = 0,
|
|
650
|
+
limit_results_by_status: Optional[list[str]] = None,
|
|
651
|
+
sequencing_order: Optional[str] = None,
|
|
652
|
+
sequencing_property: Optional[str] = None,
|
|
653
|
+
start_from: int = 0,
|
|
654
|
+
page_size: int = 0,
|
|
655
|
+
output_format: str = "JSON",
|
|
656
|
+
report_spec: Optional[str | dict] = None,
|
|
657
|
+
property_names: Optional[list[str]] = None,
|
|
658
|
+
body: Optional[dict] = None,
|
|
659
|
+
) -> list | str:
|
|
660
|
+
"""Returns the list of business capabilities matching the search string. Sync version.
|
|
661
|
+
|
|
662
|
+
Parameters
|
|
663
|
+
----------
|
|
664
|
+
search_string : str, optional
|
|
665
|
+
Search string to match. Defaults to "*" (all).
|
|
666
|
+
starts_with : bool, optional
|
|
667
|
+
Whether to match from the start. Defaults to False.
|
|
668
|
+
ends_with : bool, optional
|
|
669
|
+
Whether to match at the end. Defaults to False.
|
|
670
|
+
ignore_case : bool, optional
|
|
671
|
+
Whether to ignore case. Defaults to True.
|
|
672
|
+
anchor_domain : str, optional
|
|
673
|
+
Domain to anchor the search.
|
|
674
|
+
metadata_element_type : str, optional
|
|
675
|
+
Type of metadata element to search for. Defaults to "BusinessCapability".
|
|
676
|
+
metadata_element_subtype : list[str], optional
|
|
677
|
+
Subtypes of metadata element.
|
|
678
|
+
skip_relationships : list[str], optional
|
|
679
|
+
Relationships to skip in the graph.
|
|
680
|
+
include_only_relationships : list[str], optional
|
|
681
|
+
Only include these relationships.
|
|
682
|
+
skip_classified_elements : list[str], optional
|
|
683
|
+
Skip elements with these classifications.
|
|
684
|
+
include_only_classified_elements : list[str], optional
|
|
685
|
+
Only include elements with these classifications.
|
|
686
|
+
graph_query_depth : int, optional
|
|
687
|
+
Depth of graph query. Defaults to 0.
|
|
688
|
+
governance_zone_filter : list[str], optional
|
|
689
|
+
Filter by governance zones.
|
|
690
|
+
as_of_time : str, optional
|
|
691
|
+
Historical time for the query.
|
|
692
|
+
effective_time : str, optional
|
|
693
|
+
Effective time for the query.
|
|
694
|
+
relationship_page_size : int, optional
|
|
695
|
+
Page size for relationships. Defaults to 0.
|
|
696
|
+
limit_results_by_status : list[str], optional
|
|
697
|
+
Limit results by status values.
|
|
698
|
+
sequencing_order : str, optional
|
|
699
|
+
Order for sequencing results.
|
|
700
|
+
sequencing_property : str, optional
|
|
701
|
+
Property to sequence by.
|
|
702
|
+
start_from : int, optional
|
|
703
|
+
Starting index for pagination. Defaults to 0.
|
|
704
|
+
page_size : int, optional
|
|
705
|
+
Number of results per page. Defaults to 0 (no limit).
|
|
706
|
+
output_format : str, optional
|
|
707
|
+
Format for output. Defaults to "JSON".
|
|
708
|
+
report_spec : str | dict, optional
|
|
709
|
+
Report specification for formatting.
|
|
710
|
+
property_names: list[str], optional
|
|
711
|
+
The names of properties to search for.
|
|
712
|
+
body : dict, optional
|
|
713
|
+
Request body for additional parameters.
|
|
714
|
+
|
|
715
|
+
Returns
|
|
716
|
+
-------
|
|
717
|
+
list | str
|
|
718
|
+
List of business capabilities matching the search criteria.
|
|
719
|
+
|
|
720
|
+
Raises
|
|
721
|
+
------
|
|
722
|
+
PyegeriaException
|
|
723
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
724
|
+
"""
|
|
725
|
+
loop = asyncio.get_event_loop()
|
|
726
|
+
return loop.run_until_complete(
|
|
727
|
+
self._async_find_business_capabilities(
|
|
728
|
+
search_string, starts_with, ends_with, ignore_case, anchor_domain,
|
|
729
|
+
metadata_element_type, metadata_element_subtype, skip_relationships,
|
|
730
|
+
include_only_relationships, skip_classified_elements, include_only_classified_elements,
|
|
731
|
+
graph_query_depth, governance_zone_filter, as_of_time, effective_time,
|
|
732
|
+
relationship_page_size, limit_results_by_status, sequencing_order,
|
|
733
|
+
sequencing_property, start_from, page_size, output_format, report_spec,
|
|
734
|
+
property_names, body
|
|
735
|
+
)
|
|
736
|
+
)
|
|
737
|
+
|
|
738
|
+
#
|
|
739
|
+
# Business Capability Dependency Management
|
|
740
|
+
#
|
|
741
|
+
|
|
742
|
+
@dynamic_catch
|
|
743
|
+
async def _async_link_business_capability_dependency(
|
|
744
|
+
self,
|
|
745
|
+
business_capability_guid: str,
|
|
746
|
+
supporting_capability_guid: str,
|
|
747
|
+
body: Optional[dict | NewRelationshipRequestBody] = None,
|
|
748
|
+
) -> None:
|
|
749
|
+
"""Link dependent business capabilities. Async version.
|
|
750
|
+
|
|
751
|
+
Parameters
|
|
752
|
+
----------
|
|
753
|
+
business_capability_guid : str
|
|
754
|
+
The GUID of the business capability that depends on another.
|
|
755
|
+
supporting_capability_guid : str
|
|
756
|
+
The GUID of the supporting business capability.
|
|
757
|
+
body : dict | NewRelationshipRequestBody, optional
|
|
758
|
+
Request body containing relationship properties.
|
|
759
|
+
|
|
760
|
+
Returns
|
|
761
|
+
-------
|
|
762
|
+
None
|
|
763
|
+
|
|
764
|
+
Raises
|
|
765
|
+
------
|
|
766
|
+
PyegeriaException
|
|
767
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
768
|
+
ValidationError
|
|
769
|
+
If the body does not conform to NewRelationshipRequestBody.
|
|
770
|
+
PyegeriaNotAuthorizedException
|
|
771
|
+
If the user is not authorized for the requested action.
|
|
772
|
+
"""
|
|
773
|
+
url = (
|
|
774
|
+
f"{self.digital_business_command_root}/business-capabilities/"
|
|
775
|
+
f"{business_capability_guid}/dependencies/{supporting_capability_guid}/attach"
|
|
776
|
+
)
|
|
777
|
+
await self._async_new_relationship_request(url=url, prop=['BusinessCapabilityDependencyProperties'],body=body)
|
|
778
|
+
|
|
779
|
+
def link_business_capability_dependency(
|
|
780
|
+
self,
|
|
781
|
+
business_capability_guid: str,
|
|
782
|
+
supporting_capability_guid: str,
|
|
783
|
+
body: Optional[dict | NewRelationshipRequestBody] = None,
|
|
784
|
+
) -> None:
|
|
785
|
+
"""Link dependent business capabilities. Sync version.
|
|
786
|
+
|
|
787
|
+
Parameters
|
|
788
|
+
----------
|
|
789
|
+
business_capability_guid : str
|
|
790
|
+
The GUID of the business capability that depends on another.
|
|
791
|
+
supporting_capability_guid : str
|
|
792
|
+
The GUID of the supporting business capability.
|
|
793
|
+
body : dict | NewRelationshipRequestBody, optional
|
|
794
|
+
Request body containing relationship properties.
|
|
795
|
+
|
|
796
|
+
Returns
|
|
797
|
+
-------
|
|
798
|
+
None
|
|
799
|
+
|
|
800
|
+
Raises
|
|
801
|
+
------
|
|
802
|
+
PyegeriaException
|
|
803
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
804
|
+
"""
|
|
805
|
+
loop = asyncio.get_event_loop()
|
|
806
|
+
loop.run_until_complete(
|
|
807
|
+
self._async_link_business_capability_dependency(
|
|
808
|
+
business_capability_guid, supporting_capability_guid, body
|
|
809
|
+
)
|
|
810
|
+
)
|
|
811
|
+
|
|
812
|
+
@dynamic_catch
|
|
813
|
+
async def _async_detach_business_capability_dependency(
|
|
814
|
+
self,
|
|
815
|
+
business_capability_guid: str,
|
|
816
|
+
supporting_capability_guid: str,
|
|
817
|
+
body: Optional[dict | DeleteRelationshipRequestBody] = None,
|
|
818
|
+
cascade: bool = False,
|
|
819
|
+
) -> None:
|
|
820
|
+
"""Detach dependent business capabilities. Async version.
|
|
821
|
+
|
|
822
|
+
Parameters
|
|
823
|
+
----------
|
|
824
|
+
business_capability_guid : str
|
|
825
|
+
The GUID of the business capability.
|
|
826
|
+
supporting_capability_guid : str
|
|
827
|
+
The GUID of the supporting business capability to detach.
|
|
828
|
+
body : dict | DeleteRelationshipRequestBody, optional
|
|
829
|
+
Request body for deletion.
|
|
830
|
+
cascade : bool, optional, default=False
|
|
831
|
+
Whether to cascade delete dependent elements.
|
|
832
|
+
Returns
|
|
833
|
+
-------
|
|
834
|
+
None
|
|
835
|
+
|
|
836
|
+
Raises
|
|
837
|
+
------
|
|
838
|
+
PyegeriaException
|
|
839
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
840
|
+
|
|
841
|
+
"""
|
|
842
|
+
url = (
|
|
843
|
+
f"{self.digital_business_command_root}/business-capabilities/"
|
|
844
|
+
f"{business_capability_guid}/dependencies/{supporting_capability_guid}/detach"
|
|
845
|
+
)
|
|
846
|
+
await self._async_delete_relationship_request(url=url, body=body, cascade_delete=cascade)
|
|
847
|
+
|
|
848
|
+
def detach_business_capability_dependency(
|
|
849
|
+
self,
|
|
850
|
+
business_capability_guid: str,
|
|
851
|
+
supporting_capability_guid: str,
|
|
852
|
+
body: Optional[dict | DeleteRelationshipRequestBody] = None,
|
|
853
|
+
cascade: bool = False,
|
|
854
|
+
) -> None:
|
|
855
|
+
"""Detach dependent business capabilities. Sync version.
|
|
856
|
+
|
|
857
|
+
Parameters
|
|
858
|
+
----------
|
|
859
|
+
business_capability_guid : str
|
|
860
|
+
The GUID of the business capability.
|
|
861
|
+
supporting_capability_guid : str
|
|
862
|
+
The GUID of the supporting business capability to detach.
|
|
863
|
+
body : dict | DeleteRelationshipRequestBody, optional
|
|
864
|
+
Request body for deletion.
|
|
865
|
+
cascade : bool, optional, default=False
|
|
866
|
+
Whether to cascade delete dependent elements.
|
|
867
|
+
|
|
868
|
+
Returns
|
|
869
|
+
-------
|
|
870
|
+
None
|
|
871
|
+
|
|
872
|
+
Raises
|
|
873
|
+
------
|
|
874
|
+
PyegeriaException
|
|
875
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
876
|
+
"""
|
|
877
|
+
loop = asyncio.get_event_loop()
|
|
878
|
+
loop.run_until_complete(
|
|
879
|
+
self._async_detach_business_capability_dependency(business_capability_guid, supporting_capability_guid,
|
|
880
|
+
body, cascade)
|
|
881
|
+
)
|
|
882
|
+
|
|
883
|
+
#
|
|
884
|
+
# Digital Support Management
|
|
885
|
+
#
|
|
886
|
+
|
|
887
|
+
@dynamic_catch
|
|
888
|
+
async def _async_link_digital_support(
|
|
889
|
+
self,
|
|
890
|
+
business_capability_guid: str,
|
|
891
|
+
element_guid: str,
|
|
892
|
+
body: Optional[dict | NewRelationshipRequestBody] = None,
|
|
893
|
+
) -> None:
|
|
894
|
+
"""Attach a business capability to an element that provides digital support. Async version.
|
|
895
|
+
|
|
896
|
+
Parameters
|
|
897
|
+
----------
|
|
898
|
+
business_capability_guid : str
|
|
899
|
+
The GUID of the business capability.
|
|
900
|
+
element_guid : str
|
|
901
|
+
The GUID of the element providing digital support.
|
|
902
|
+
body : dict | NewRelationshipRequestBody, optional
|
|
903
|
+
Request body containing relationship properties.
|
|
904
|
+
|
|
905
|
+
Returns
|
|
906
|
+
-------
|
|
907
|
+
None
|
|
908
|
+
|
|
909
|
+
Raises
|
|
910
|
+
------
|
|
911
|
+
PyegeriaException
|
|
912
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
913
|
+
"""
|
|
914
|
+
url = (
|
|
915
|
+
f"{self.digital_business_command_root}/business-capabilities/"
|
|
916
|
+
f"{business_capability_guid}/digital-support/{element_guid}/attach"
|
|
917
|
+
)
|
|
918
|
+
await self._async_new_relationship_request(url=url, prop=['DigitalSupportProperties'],body=body)
|
|
919
|
+
|
|
920
|
+
def link_digital_support(
|
|
921
|
+
self,
|
|
922
|
+
business_capability_guid: str,
|
|
923
|
+
element_guid: str,
|
|
924
|
+
body: Optional[dict | NewRelationshipRequestBody] = None,
|
|
925
|
+
) -> None:
|
|
926
|
+
"""Attach a business capability to an element that provides digital support. Sync version.
|
|
927
|
+
|
|
928
|
+
Parameters
|
|
929
|
+
----------
|
|
930
|
+
business_capability_guid : str
|
|
931
|
+
The GUID of the business capability.
|
|
932
|
+
element_guid : str
|
|
933
|
+
The GUID of the element providing digital support.
|
|
934
|
+
body : dict | NewRelationshipRequestBody, optional
|
|
935
|
+
Request body containing relationship properties.
|
|
936
|
+
|
|
937
|
+
Returns
|
|
938
|
+
-------
|
|
939
|
+
None
|
|
940
|
+
|
|
941
|
+
Raises
|
|
942
|
+
------
|
|
943
|
+
PyegeriaException
|
|
944
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
945
|
+
"""
|
|
946
|
+
loop = asyncio.get_event_loop()
|
|
947
|
+
loop.run_until_complete(
|
|
948
|
+
self._async_link_digital_support(business_capability_guid, element_guid, body)
|
|
949
|
+
)
|
|
950
|
+
|
|
951
|
+
@dynamic_catch
|
|
952
|
+
async def _async_detach_digital_support(
|
|
953
|
+
self,
|
|
954
|
+
business_capability_guid: str,
|
|
955
|
+
element_guid: str,
|
|
956
|
+
body: Optional[dict | DeleteRelationshipRequestBody] = None,
|
|
957
|
+
cascade: bool = False,
|
|
958
|
+
) -> None:
|
|
959
|
+
"""Detach a business capability from digital support. Async version.
|
|
960
|
+
|
|
961
|
+
Parameters
|
|
962
|
+
----------
|
|
963
|
+
business_capability_guid : str
|
|
964
|
+
The GUID of the business capability.
|
|
965
|
+
element_guid : str
|
|
966
|
+
The GUID of the digital support element to detach.
|
|
967
|
+
body : dict | DeleteRelationshipRequestBody, optional
|
|
968
|
+
Request body for deletion.
|
|
969
|
+
|
|
970
|
+
Returns
|
|
971
|
+
-------
|
|
972
|
+
None
|
|
973
|
+
|
|
974
|
+
Raises
|
|
975
|
+
------
|
|
976
|
+
PyegeriaException
|
|
977
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
978
|
+
|
|
979
|
+
Args:
|
|
980
|
+
cascade ():
|
|
981
|
+
"""
|
|
982
|
+
url = (
|
|
983
|
+
f"{self.digital_business_command_root}/business-capabilities/"
|
|
984
|
+
f"{business_capability_guid}/digital-support/{element_guid}/detach"
|
|
985
|
+
)
|
|
986
|
+
await self._async_delete_relationship_request(url, self._prepare_body(body), cascade)
|
|
987
|
+
|
|
988
|
+
def detach_digital_support(
|
|
989
|
+
self,
|
|
990
|
+
business_capability_guid: str,
|
|
991
|
+
element_guid: str,
|
|
992
|
+
body: Optional[dict | DeleteRelationshipRequestBody] = None,
|
|
993
|
+
cascade: bool = False,
|
|
994
|
+
) -> None:
|
|
995
|
+
"""Detach a business capability from digital support. Sync version.
|
|
996
|
+
|
|
997
|
+
Parameters
|
|
998
|
+
----------
|
|
999
|
+
business_capability_guid : str
|
|
1000
|
+
The GUID of the business capability.
|
|
1001
|
+
element_guid : str
|
|
1002
|
+
The GUID of the digital support element to detach.
|
|
1003
|
+
body : dict | DeleteRelationshipRequestBody, optional
|
|
1004
|
+
Request body for deletion.
|
|
1005
|
+
cascade: bool, default False
|
|
1006
|
+
If true, will perform a cascade delete.
|
|
1007
|
+
Returns
|
|
1008
|
+
-------
|
|
1009
|
+
None
|
|
1010
|
+
|
|
1011
|
+
Raises
|
|
1012
|
+
------
|
|
1013
|
+
PyegeriaException
|
|
1014
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
1015
|
+
|
|
1016
|
+
|
|
1017
|
+
Args:
|
|
1018
|
+
cascade ():
|
|
1019
|
+
"""
|
|
1020
|
+
loop = asyncio.get_event_loop()
|
|
1021
|
+
loop.run_until_complete(
|
|
1022
|
+
self._async_detach_digital_support(business_capability_guid, element_guid, body, cascade)
|
|
1023
|
+
)
|
|
1024
|
+
|
|
1025
|
+
#
|
|
1026
|
+
# Business Significance Classification
|
|
1027
|
+
#
|
|
1028
|
+
|
|
1029
|
+
@dynamic_catch
|
|
1030
|
+
async def _async_set_business_significant(
|
|
1031
|
+
self,
|
|
1032
|
+
element_guid: str,
|
|
1033
|
+
body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1034
|
+
) -> None:
|
|
1035
|
+
"""Classify an element as business significant. Async version.
|
|
1036
|
+
|
|
1037
|
+
Parameters
|
|
1038
|
+
----------
|
|
1039
|
+
element_guid : str
|
|
1040
|
+
The GUID of the element to classify.
|
|
1041
|
+
body : dict | NewClassificationRequestBody, optional
|
|
1042
|
+
Request body containing classification properties.
|
|
1043
|
+
|
|
1044
|
+
Returns
|
|
1045
|
+
-------
|
|
1046
|
+
None
|
|
1047
|
+
|
|
1048
|
+
Raises
|
|
1049
|
+
------
|
|
1050
|
+
PyegeriaException
|
|
1051
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
1052
|
+
"""
|
|
1053
|
+
url = f"{self.digital_business_command_root}/elements/{element_guid}/business-significant"
|
|
1054
|
+
await self._async_new_classification_request(url=url, prop = ['BusinessSignificantProperties'],body=body)
|
|
1055
|
+
|
|
1056
|
+
def set_business_significant(
|
|
1057
|
+
self,
|
|
1058
|
+
element_guid: str,
|
|
1059
|
+
body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1060
|
+
) -> None:
|
|
1061
|
+
"""Classify an element as business significant. Sync version.
|
|
1062
|
+
|
|
1063
|
+
Parameters
|
|
1064
|
+
----------
|
|
1065
|
+
element_guid : str
|
|
1066
|
+
The GUID of the element to classify.
|
|
1067
|
+
body : dict | NewClassificationRequestBody, optional
|
|
1068
|
+
Request body containing classification properties.
|
|
1069
|
+
|
|
1070
|
+
Returns
|
|
1071
|
+
-------
|
|
1072
|
+
None
|
|
1073
|
+
|
|
1074
|
+
Raises
|
|
1075
|
+
------
|
|
1076
|
+
PyegeriaException
|
|
1077
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
1078
|
+
"""
|
|
1079
|
+
loop = asyncio.get_event_loop()
|
|
1080
|
+
loop.run_until_complete(self._async_set_business_significant(element_guid, body))
|
|
1081
|
+
|
|
1082
|
+
@dynamic_catch
|
|
1083
|
+
async def _async_clear_business_significance(
|
|
1084
|
+
self,
|
|
1085
|
+
element_guid: str,
|
|
1086
|
+
body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
1087
|
+
) -> None:
|
|
1088
|
+
"""Remove the business significant classification. Async version.
|
|
1089
|
+
|
|
1090
|
+
Parameters
|
|
1091
|
+
----------
|
|
1092
|
+
element_guid : str
|
|
1093
|
+
The GUID of the element to declassify.
|
|
1094
|
+
body : dict | DeleteClassificationRequestBody, optional
|
|
1095
|
+
Request body for deletion.
|
|
1096
|
+
|
|
1097
|
+
Returns
|
|
1098
|
+
-------
|
|
1099
|
+
None
|
|
1100
|
+
|
|
1101
|
+
Raises
|
|
1102
|
+
------
|
|
1103
|
+
PyegeriaException
|
|
1104
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
1105
|
+
"""
|
|
1106
|
+
url = f"{self.digital_business_command_root}/elements/{element_guid}/business-significant/remove"
|
|
1107
|
+
await self._async_delete_classification_request(url=url,body=body,)
|
|
1108
|
+
|
|
1109
|
+
def clear_business_significance(
|
|
1110
|
+
self,
|
|
1111
|
+
element_guid: str,
|
|
1112
|
+
body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
1113
|
+
) -> None:
|
|
1114
|
+
"""Remove the business significant classification. Sync version.
|
|
1115
|
+
|
|
1116
|
+
Parameters
|
|
1117
|
+
----------
|
|
1118
|
+
element_guid : str
|
|
1119
|
+
The GUID of the element to declassify.
|
|
1120
|
+
body : dict | DeleteClassificationRequestBody, optional
|
|
1121
|
+
Request body for deletion.
|
|
1122
|
+
|
|
1123
|
+
Returns
|
|
1124
|
+
-------
|
|
1125
|
+
None
|
|
1126
|
+
|
|
1127
|
+
Raises
|
|
1128
|
+
------
|
|
1129
|
+
PyegeriaException
|
|
1130
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
1131
|
+
"""
|
|
1132
|
+
loop = asyncio.get_event_loop()
|
|
1133
|
+
loop.run_until_complete(self._async_clear_business_significance(element_guid, body))
|