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.

Files changed (433) hide show
  1. commands/__init__.py +24 -0
  2. commands/cat/Dr-Egeria_md-orig.py +2 -2
  3. commands/cat/collection_actions.py +197 -0
  4. commands/cat/dr_egeria_command_help.py +137 -38
  5. commands/cat/dr_egeria_jupyter.py +7 -7
  6. commands/cat/dr_egeria_md.py +10 -267
  7. commands/cat/exp_list_glossaries.py +11 -14
  8. commands/cat/get_asset_graph.py +37 -267
  9. commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
  10. commands/cat/get_project_dependencies.py +14 -14
  11. commands/cat/get_project_structure.py +15 -14
  12. commands/cat/get_tech_type_elements.py +16 -116
  13. commands/cat/glossary_actions.py +145 -298
  14. commands/cat/list_assets.py +3 -11
  15. commands/cat/list_cert_types.py +17 -63
  16. commands/cat/list_collections.py +17 -139
  17. commands/cat/list_deployed_catalogs.py +15 -27
  18. commands/cat/list_deployed_database_schemas.py +27 -43
  19. commands/cat/list_deployed_databases.py +16 -31
  20. commands/cat/list_deployed_servers.py +35 -54
  21. commands/cat/list_glossaries.py +18 -17
  22. commands/cat/list_projects.py +10 -12
  23. commands/cat/list_tech_type_elements.py +21 -37
  24. commands/cat/list_tech_types.py +13 -25
  25. commands/cat/list_terms.py +38 -79
  26. commands/cat/list_todos.py +4 -11
  27. commands/cat/list_user_ids.py +3 -10
  28. commands/cat/my_reports.py +559 -0
  29. commands/cat/run_report.py +394 -0
  30. commands/cat/{list_format_set.py → run_report_orig.py} +136 -44
  31. commands/cli/egeria.py +182 -219
  32. commands/cli/egeria_cat.py +32 -59
  33. commands/cli/egeria_my.py +13 -0
  34. commands/cli/egeria_ops.py +69 -74
  35. commands/cli/egeria_tech.py +17 -93
  36. commands/{cat → deprecated}/list_data_designer.py +2 -4
  37. commands/{cat → deprecated}/list_data_structures_full.py +3 -6
  38. commands/deprecated/old_get_asset_graph.py +315 -0
  39. commands/my/__init__.py +0 -2
  40. commands/my/list_my_profile.py +27 -34
  41. commands/my/list_my_roles.py +1 -7
  42. commands/my/monitor_my_todos.py +1 -7
  43. commands/my/monitor_open_todos.py +6 -7
  44. commands/my/todo_actions.py +4 -5
  45. commands/ops/__init__.py +0 -2
  46. commands/ops/gov_server_actions.py +17 -21
  47. commands/ops/list_archives.py +17 -38
  48. commands/ops/list_catalog_targets.py +33 -40
  49. commands/ops/load_archive.py +14 -11
  50. commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
  51. commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
  52. commands/ops/monitor_engine_activity.py +79 -77
  53. commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
  54. commands/ops/monitor_platform_status.py +38 -50
  55. commands/ops/monitor_server_startup.py +6 -11
  56. commands/ops/monitor_server_status.py +7 -11
  57. commands/ops/orig_monitor_server_list.py +8 -8
  58. commands/ops/orig_monitor_server_status.py +1 -5
  59. commands/ops/refresh_integration_daemon.py +5 -5
  60. commands/ops/restart_integration_daemon.py +5 -5
  61. commands/ops/table_integ_daemon_status.py +6 -6
  62. commands/ops/x_engine_actions.py +7 -7
  63. commands/tech/__init__.py +0 -2
  64. commands/tech/{generic_actions.py → element_actions.py} +6 -11
  65. commands/tech/get_element_info.py +20 -29
  66. commands/tech/get_guid_info.py +23 -42
  67. commands/tech/get_tech_details.py +20 -35
  68. commands/tech/get_tech_type_template.py +28 -39
  69. commands/tech/list_all_om_type_elements.py +24 -30
  70. commands/tech/list_all_om_type_elements_x.py +22 -28
  71. commands/tech/list_all_related_elements.py +19 -28
  72. commands/tech/list_anchored_elements.py +22 -30
  73. commands/tech/list_asset_types.py +19 -24
  74. commands/tech/list_elements_by_classification_by_property_value.py +26 -32
  75. commands/tech/list_elements_by_property_value.py +19 -25
  76. commands/tech/list_elements_by_property_value_x.py +20 -28
  77. commands/tech/list_elements_for_classification.py +28 -41
  78. commands/tech/list_gov_action_processes.py +16 -27
  79. commands/tech/list_information_supply_chains.py +22 -30
  80. commands/tech/list_registered_services.py +14 -26
  81. commands/tech/list_related_elements_with_prop_value.py +15 -25
  82. commands/tech/list_related_specification.py +1 -4
  83. commands/tech/list_relationship_types.py +15 -25
  84. commands/tech/list_relationships.py +20 -36
  85. commands/tech/list_solution_blueprints.py +28 -33
  86. commands/tech/list_solution_components.py +23 -29
  87. commands/tech/list_solution_roles.py +21 -32
  88. commands/tech/list_tech_templates.py +51 -54
  89. commands/tech/list_valid_metadata_values.py +5 -9
  90. commands/tech/table_tech_templates.py +2 -6
  91. commands/tech/x_list_related_elements.py +1 -4
  92. examples/GeoSpatial Products Example.py +524 -0
  93. examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
  94. examples/Jupyter Notebooks/README.md +2 -0
  95. examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
  96. examples/Jupyter Notebooks/common/__init__.py +14 -0
  97. examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
  98. examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
  99. examples/Jupyter Notebooks/common/globals.ipynb +184 -0
  100. examples/Jupyter Notebooks/common/globals.py +154 -0
  101. examples/Jupyter Notebooks/common/orig_globals.py +152 -0
  102. examples/format_sets/all_format_sets.json +910 -0
  103. examples/format_sets/custom_format_sets.json +268 -0
  104. examples/format_sets/subset_format_sets.json +187 -0
  105. examples/format_sets_save_load_example.py +291 -0
  106. examples/jacquard_data_sets.py +129 -0
  107. examples/output_formats_example.py +193 -0
  108. examples/test_jacquard_data_sets.py +54 -0
  109. examples/test_jacquard_data_sets_scenarios.py +94 -0
  110. md_processing/__init__.py +33 -24
  111. md_processing/command_dispatcher.py +33 -0
  112. md_processing/command_mapping.py +221 -0
  113. md_processing/data/commands/commands_data_designer.json +537 -0
  114. md_processing/data/commands/commands_external_reference.json +733 -0
  115. md_processing/data/commands/commands_feedback.json +155 -0
  116. md_processing/data/commands/commands_general.json +204 -0
  117. md_processing/data/commands/commands_glossary.json +218 -0
  118. md_processing/data/commands/commands_governance.json +3678 -0
  119. md_processing/data/commands/commands_product_manager.json +865 -0
  120. md_processing/data/commands/commands_project.json +642 -0
  121. md_processing/data/commands/commands_solution_architect.json +366 -0
  122. md_processing/data/commands.json +6489 -30060
  123. md_processing/data/{commands-working.json → commands_working.json} +9304 -13513
  124. md_processing/data/gened_report_specs.py +6584 -0
  125. md_processing/data/generated_format_sets.json +6533 -0
  126. md_processing/data/generated_format_sets_old.json +4137 -0
  127. md_processing/data/generated_format_sets_old.py +45 -0
  128. md_processing/dr_egeria.py +182 -0
  129. md_processing/md_commands/data_designer_commands.py +195 -583
  130. md_processing/md_commands/ext_ref_commands.py +530 -0
  131. md_processing/md_commands/feedback_commands.py +726 -0
  132. md_processing/md_commands/glossary_commands.py +106 -490
  133. md_processing/md_commands/governance_officer_commands.py +129 -18
  134. md_processing/md_commands/product_manager_commands.py +362 -115
  135. md_processing/md_commands/project_commands.py +351 -134
  136. md_processing/md_commands/solution_architect_commands.py +276 -232
  137. md_processing/md_commands/view_commands.py +295 -0
  138. md_processing/md_processing_utils/common_md_proc_utils.py +258 -166
  139. md_processing/md_processing_utils/common_md_utils.py +138 -43
  140. md_processing/md_processing_utils/determine_width.py +103 -0
  141. md_processing/md_processing_utils/extraction_utils.py +100 -39
  142. md_processing/md_processing_utils/gen_report_specs.py +643 -0
  143. md_processing/md_processing_utils/generate_dr_help.py +61 -33
  144. md_processing/md_processing_utils/generate_md_cmd_templates.py +20 -19
  145. md_processing/md_processing_utils/generate_md_templates.py +3 -12
  146. md_processing/md_processing_utils/md_processing_constants.py +1053 -72
  147. pyegeria/__init__.py +203 -158
  148. pyegeria/core/__init__.py +40 -0
  149. pyegeria/core/_base_platform_client.py +574 -0
  150. pyegeria/core/_base_server_client.py +573 -0
  151. pyegeria/{_exceptions_new.py → core/_exceptions.py} +62 -30
  152. pyegeria/{_globals.py → core/_globals.py} +14 -3
  153. pyegeria/core/_server_client.py +6073 -0
  154. pyegeria/{_validators.py → core/_validators.py} +7 -8
  155. pyegeria/core/config.py +654 -0
  156. pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
  157. pyegeria/core/load_config.py +37 -0
  158. pyegeria/{logging_configuration.py → core/logging_configuration.py} +1 -1
  159. pyegeria/core/mcp_adapter.py +144 -0
  160. pyegeria/core/mcp_server.py +212 -0
  161. pyegeria/core/utils.py +405 -0
  162. pyegeria/{_client.py → deprecated/_client.py} +24 -25
  163. pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
  164. pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1987 -1877
  165. pyegeria/{output_formatter.py → deprecated/output_formatter_with_machine_keys.py} +298 -45
  166. pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +155 -171
  167. pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
  168. pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
  169. pyegeria/egeria_cat_client.py +26 -70
  170. pyegeria/egeria_client.py +130 -93
  171. pyegeria/egeria_config_client.py +40 -46
  172. pyegeria/egeria_tech_client.py +141 -54
  173. pyegeria/models/__init__.py +150 -0
  174. pyegeria/{models.py → models/models.py} +156 -20
  175. pyegeria/omvs/__init__.py +84 -0
  176. pyegeria/omvs/action_author.py +342 -0
  177. pyegeria/omvs/actor_manager.py +5980 -0
  178. pyegeria/omvs/asset_catalog.py +842 -0
  179. pyegeria/omvs/asset_maker.py +2736 -0
  180. pyegeria/omvs/automated_curation.py +4403 -0
  181. pyegeria/omvs/classification_manager.py +11213 -0
  182. pyegeria/{collection_manager.py → omvs/collection_manager.py} +1334 -1160
  183. pyegeria/omvs/community_matters_omvs.py +468 -0
  184. pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
  185. pyegeria/{data_designer.py → omvs/data_designer.py} +1115 -660
  186. pyegeria/omvs/data_discovery.py +869 -0
  187. pyegeria/omvs/data_engineer.py +372 -0
  188. pyegeria/omvs/digital_business.py +1133 -0
  189. pyegeria/omvs/external_links.py +1752 -0
  190. pyegeria/omvs/feedback_manager.py +834 -0
  191. pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
  192. pyegeria/{glossary_manager.py → omvs/glossary_manager.py} +857 -519
  193. pyegeria/{governance_officer.py → omvs/governance_officer.py} +964 -468
  194. pyegeria/omvs/lineage_linker.py +314 -0
  195. pyegeria/omvs/location_arena.py +1525 -0
  196. pyegeria/omvs/metadata_expert.py +668 -0
  197. pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
  198. pyegeria/omvs/my_profile.py +1042 -0
  199. pyegeria/omvs/notification_manager.py +358 -0
  200. pyegeria/omvs/people_organizer.py +394 -0
  201. pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
  202. pyegeria/omvs/product_manager.py +1825 -0
  203. pyegeria/omvs/project_manager.py +1907 -0
  204. pyegeria/omvs/reference_data.py +1140 -0
  205. pyegeria/omvs/registered_info.py +334 -0
  206. pyegeria/omvs/runtime_manager.py +2817 -0
  207. pyegeria/omvs/schema_maker.py +446 -0
  208. pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
  209. pyegeria/{solution_architect_omvs.py → omvs/solution_architect.py} +1886 -1505
  210. pyegeria/omvs/specification_properties.py +37 -0
  211. pyegeria/omvs/subject_area.py +1042 -0
  212. pyegeria/omvs/template_manager_omvs.py +236 -0
  213. pyegeria/omvs/time_keeper.py +1761 -0
  214. pyegeria/omvs/valid_metadata.py +3221 -0
  215. pyegeria/omvs/valid_metadata_lists.py +37 -0
  216. pyegeria/omvs/valid_type_lists.py +37 -0
  217. pyegeria/view/__init__.py +28 -0
  218. pyegeria/{_output_format_models.py → view/_output_format_models.py} +160 -24
  219. pyegeria/view/_output_formats.py +14 -0
  220. pyegeria/view/base_report_formats.py +2719 -0
  221. pyegeria/view/dr_egeria_reports.py +56 -0
  222. pyegeria/view/format_set_executor.py +397 -0
  223. pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
  224. pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
  225. pyegeria/view/output_formatter.py +1297 -0
  226. pyegeria-5.5.3.3.dist-info/METADATA +218 -0
  227. pyegeria-5.5.3.3.dist-info/RECORD +241 -0
  228. {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
  229. pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
  230. pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
  231. commands/cat/.DS_Store +0 -0
  232. commands/cat/.env +0 -8
  233. commands/cat/README.md +0 -16
  234. commands/cat/debug_log +0 -1126
  235. commands/cat/debug_log.2025-08-18_11-34-38_088636.zip +0 -0
  236. commands/cat/list_categories.py +0 -192
  237. commands/cat/logs/pyegeria.log +0 -4
  238. commands/cli/debug_log +0 -0
  239. commands/cli/debug_log.log +0 -0
  240. commands/cli/txt_custom_v2.tcss +0 -19
  241. commands/my/README.md +0 -17
  242. commands/ops/README.md +0 -24
  243. commands/ops/logs/pyegeria.log +0 -0
  244. commands/ops/monitor_asset_events.py +0 -108
  245. commands/tech/README.md +0 -24
  246. md_processing/.DS_Store +0 -0
  247. md_processing/dr-egeria-outbox/Collections-2025-08-12-13-30-37.md +0 -163
  248. md_processing/dr-egeria-outbox/Collections-2025-08-12-13-35-58.md +0 -474
  249. md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +0 -8
  250. md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +0 -873
  251. md_processing/dr_egeria_inbox/arch_test.md +0 -57
  252. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
  253. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
  254. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
  255. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
  256. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
  257. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
  258. md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
  259. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
  260. md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
  261. md_processing/dr_egeria_inbox/cat_test.md +0 -100
  262. md_processing/dr_egeria_inbox/collections.md +0 -39
  263. md_processing/dr_egeria_inbox/data_designer_debug.log +0 -6
  264. md_processing/dr_egeria_inbox/data_designer_out.md +0 -60
  265. md_processing/dr_egeria_inbox/data_designer_search_test.md +0 -11
  266. md_processing/dr_egeria_inbox/data_field.md +0 -54
  267. md_processing/dr_egeria_inbox/data_spec.md +0 -77
  268. md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
  269. md_processing/dr_egeria_inbox/data_test.md +0 -179
  270. md_processing/dr_egeria_inbox/data_test2.md +0 -429
  271. md_processing/dr_egeria_inbox/data_test3.md +0 -462
  272. md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +0 -124
  273. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
  274. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
  275. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -318
  276. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
  277. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
  278. md_processing/dr_egeria_inbox/generated_help_report.md +0 -9
  279. md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
  280. md_processing/dr_egeria_inbox/glossary_list.md +0 -5
  281. md_processing/dr_egeria_inbox/glossary_search_test.md +0 -40
  282. md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
  283. md_processing/dr_egeria_inbox/gov_def.md +0 -482
  284. md_processing/dr_egeria_inbox/gov_def2.md +0 -447
  285. md_processing/dr_egeria_inbox/img.png +0 -0
  286. md_processing/dr_egeria_inbox/product.md +0 -211
  287. md_processing/dr_egeria_inbox/rel.md +0 -8
  288. md_processing/dr_egeria_inbox/sb.md +0 -119
  289. md_processing/dr_egeria_inbox/solution-components.md +0 -136
  290. md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
  291. md_processing/dr_egeria_inbox/synonym_test.md +0 -42
  292. md_processing/dr_egeria_inbox/t2.md +0 -268
  293. md_processing/dr_egeria_outbox/.obsidian/app.json +0 -1
  294. md_processing/dr_egeria_outbox/.obsidian/appearance.json +0 -1
  295. md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +0 -6
  296. md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +0 -31
  297. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +0 -10
  298. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +0 -4459
  299. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +0 -10
  300. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +0 -3
  301. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +0 -153
  302. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +0 -11
  303. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +0 -1
  304. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +0 -500
  305. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +0 -12
  306. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +0 -1
  307. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +0 -37
  308. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +0 -11
  309. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +0 -220
  310. md_processing/dr_egeria_outbox/.obsidian/types.json +0 -28
  311. md_processing/dr_egeria_outbox/.obsidian/workspace.json +0 -220
  312. md_processing/dr_egeria_outbox/Untitled.canvas +0 -1
  313. md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:22-dr_egeria_intro_part1.md +0 -312
  314. md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:23-dr_egeria_intro_part1.md +0 -265
  315. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:06-dr_egeria_intro_part1.md +0 -230
  316. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:30-dr_egeria_intro_part1.md +0 -296
  317. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:31-dr_egeria_intro_part1.md +0 -253
  318. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:08-dr_egeria_intro_part2.md +0 -343
  319. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:12-dr_egeria_intro_part2.md +0 -343
  320. md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:05-product.md +0 -426
  321. md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:56-product.md +0 -212
  322. md_processing/dr_egeria_outbox/monday/processed-2025-08-19 09:43-product.md +0 -201
  323. md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 14:55-product.md +0 -77
  324. md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:05-product.md +0 -75
  325. md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:11-product.md +0 -74
  326. md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 20:40-collections.md +0 -49
  327. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +0 -719
  328. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +0 -41
  329. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +0 -33
  330. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +0 -192
  331. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +0 -486
  332. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +0 -486
  333. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +0 -486
  334. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +0 -486
  335. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +0 -486
  336. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +0 -486
  337. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +0 -486
  338. md_processing/dr_egeria_outbox/tuesday/processed-2025-07-16 19:15-gov_def2.md +0 -527
  339. md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 12:08-gov_def2.md +0 -527
  340. md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 14:27-gov_def2.md +0 -485
  341. md_processing/dr_egeria_outbox/tuesday/processed-2025-08-19 10:55-product.md +0 -209
  342. md_processing/family_docs/Data Designer/Create_Data_Class.md +0 -164
  343. md_processing/family_docs/Data Designer/Create_Data_Dictionary.md +0 -30
  344. md_processing/family_docs/Data Designer/Create_Data_Field.md +0 -162
  345. md_processing/family_docs/Data Designer/Create_Data_Specification.md +0 -36
  346. md_processing/family_docs/Data Designer/Create_Data_Structure.md +0 -38
  347. md_processing/family_docs/Data Designer/View_Data_Classes.md +0 -78
  348. md_processing/family_docs/Data Designer/View_Data_Dictionaries.md +0 -78
  349. md_processing/family_docs/Data Designer/View_Data_Fields.md +0 -78
  350. md_processing/family_docs/Data Designer/View_Data_Specifications.md +0 -78
  351. md_processing/family_docs/Data Designer/View_Data_Structures.md +0 -78
  352. md_processing/family_docs/Data Designer.md +0 -842
  353. md_processing/family_docs/Digital Product Manager/Add_Member->Collection.md +0 -42
  354. md_processing/family_docs/Digital Product Manager/Attach_Collection->Resource.md +0 -36
  355. md_processing/family_docs/Digital Product Manager/Create_Agreement.md +0 -96
  356. md_processing/family_docs/Digital Product Manager/Create_Data_Sharing_Agreement.md +0 -72
  357. md_processing/family_docs/Digital Product Manager/Create_DigitalSubscription.md +0 -102
  358. md_processing/family_docs/Digital Product Manager/Create_Digital_Product.md +0 -134
  359. md_processing/family_docs/Digital Product Manager/Link_Agreement_Items.md +0 -60
  360. md_processing/family_docs/Digital Product Manager/Link_Contracts.md +0 -26
  361. md_processing/family_docs/Digital Product Manager/Link_Digital_Product_-_Digital_Product.md +0 -30
  362. md_processing/family_docs/Digital Product Manager/Link_Subscribers.md +0 -48
  363. md_processing/family_docs/Digital Product Manager.md +0 -668
  364. md_processing/family_docs/Glossary/Attach_Category_Parent.md +0 -18
  365. md_processing/family_docs/Glossary/Attach_Term-Term_Relationship.md +0 -26
  366. md_processing/family_docs/Glossary/Create_Category.md +0 -38
  367. md_processing/family_docs/Glossary/Create_Glossary.md +0 -42
  368. md_processing/family_docs/Glossary/Create_Term.md +0 -70
  369. md_processing/family_docs/Glossary.md +0 -206
  370. md_processing/family_docs/Governance Officer/Create_Business_Imperative.md +0 -106
  371. md_processing/family_docs/Governance Officer/Create_Certification_Type.md +0 -112
  372. md_processing/family_docs/Governance Officer/Create_Governance_Approach.md +0 -114
  373. md_processing/family_docs/Governance Officer/Create_Governance_Obligation.md +0 -114
  374. md_processing/family_docs/Governance Officer/Create_Governance_Principle.md +0 -114
  375. md_processing/family_docs/Governance Officer/Create_Governance_Procedure.md +0 -128
  376. md_processing/family_docs/Governance Officer/Create_Governance_Process.md +0 -122
  377. md_processing/family_docs/Governance Officer/Create_Governance_Processing_Purpose.md +0 -106
  378. md_processing/family_docs/Governance Officer/Create_Governance_Responsibility.md +0 -122
  379. md_processing/family_docs/Governance Officer/Create_Governance_Rule.md +0 -122
  380. md_processing/family_docs/Governance Officer/Create_Governance_Strategy.md +0 -106
  381. md_processing/family_docs/Governance Officer/Create_License_Type.md +0 -112
  382. md_processing/family_docs/Governance Officer/Create_Naming_Standard_Rule.md +0 -122
  383. md_processing/family_docs/Governance Officer/Create_Regulation_Article.md +0 -106
  384. md_processing/family_docs/Governance Officer/Create_Regulation_Definition.md +0 -118
  385. md_processing/family_docs/Governance Officer/Create_Security_Access_Control.md +0 -114
  386. md_processing/family_docs/Governance Officer/Create_Security_Group.md +0 -120
  387. md_processing/family_docs/Governance Officer/Create_Service_Level_Objectives.md +0 -122
  388. md_processing/family_docs/Governance Officer/Create_Threat_Definition.md +0 -106
  389. md_processing/family_docs/Governance Officer/Link_Governance_Controls.md +0 -32
  390. md_processing/family_docs/Governance Officer/Link_Governance_Drivers.md +0 -32
  391. md_processing/family_docs/Governance Officer/Link_Governance_Policies.md +0 -32
  392. md_processing/family_docs/Governance Officer/View_Governance_Definitions.md +0 -82
  393. md_processing/family_docs/Governance Officer.md +0 -2412
  394. md_processing/family_docs/Solution Architect/Create_Information_Supply_Chain.md +0 -70
  395. md_processing/family_docs/Solution Architect/Create_Solution_Blueprint.md +0 -44
  396. md_processing/family_docs/Solution Architect/Create_Solution_Component.md +0 -96
  397. md_processing/family_docs/Solution Architect/Create_Solution_Role.md +0 -66
  398. md_processing/family_docs/Solution Architect/Link_Information_Supply_Chain_Peers.md +0 -32
  399. md_processing/family_docs/Solution Architect/Link_Solution_Component_Peers.md +0 -32
  400. md_processing/family_docs/Solution Architect/View_Information_Supply_Chains.md +0 -32
  401. md_processing/family_docs/Solution Architect/View_Solution_Blueprints.md +0 -32
  402. md_processing/family_docs/Solution Architect/View_Solution_Components.md +0 -32
  403. md_processing/family_docs/Solution Architect/View_Solution_Roles.md +0 -32
  404. md_processing/family_docs/Solution Architect.md +0 -490
  405. md_processing/md_processing_utils/debug_log +0 -574
  406. md_processing/md_processing_utils/debug_log.log +0 -0
  407. md_processing/md_processing_utils/dr-egeria-help-2025-07-17T17:22:09.md +0 -2065
  408. md_processing/md_processing_utils/generated_help_terms.md +0 -842
  409. pyegeria/.DS_Store +0 -0
  410. pyegeria/README.md +0 -35
  411. pyegeria/_client_new.py +0 -1102
  412. pyegeria/_output_formats.py +0 -730
  413. pyegeria/asset_catalog_omvs.py +0 -864
  414. pyegeria/automated_curation_omvs.py +0 -3765
  415. pyegeria/config.py +0 -523
  416. pyegeria/egeria_my_client.py +0 -91
  417. pyegeria/feedback_manager_omvs.py +0 -4573
  418. pyegeria/load_config_orig.py +0 -218
  419. pyegeria/md_processing_helpers.py +0 -58
  420. pyegeria/md_processing_utils_orig.py +0 -1103
  421. pyegeria/metadata_explorer_omvs.py +0 -2326
  422. pyegeria/my_profile_omvs.py +0 -1022
  423. pyegeria/project_manager.py +0 -1591
  424. pyegeria/registered_info.py +0 -167
  425. pyegeria/template_manager_omvs.py +0 -1414
  426. pyegeria/utils.py +0 -256
  427. pyegeria-5.4.0.28.dist-info/METADATA +0 -77
  428. pyegeria-5.4.0.28.dist-info/RECORD +0 -343
  429. pyegeria-5.4.0.28.dist-info/entry_points.txt +0 -105
  430. /commands/cat/debug_log.log → /pyegeria/deprecated/__init__.py +0 -0
  431. /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
  432. /pyegeria/{collection_models.py → models/collection_models.py} +0 -0
  433. {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,56 @@
1
+ # Auto-generated by gen_report_specs.py
2
+ from pyegeria.view._output_format_models import Column, Format, ActionParameter, FormatSet, FormatSetDict
3
+
4
+ generated_format_sets = FormatSetDict({
5
+ 'Agreement-DrE': FormatSet(target_type='Agreement', heading='Agreement-DrE Attributes', description='Auto-generated format for Agreement (Create).', family='Digital Product Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Identifier', key='agreement_identifier'), Column(name='Agreement Actors', key='agreement_actors')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['Agreement']})),
6
+ 'Business-Imperative-DrE': FormatSet(target_type='Business Imperative', heading='Business-Imperative-DrE Attributes', description='Auto-generated format for Business Imperative (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceDriver']})),
7
+ 'Campaign-DrE': FormatSet(target_type='Campaign', heading='Campaign-DrE Attributes', description='Auto-generated format for Campaign (Create).', family='Project', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Project Type', key='project_type'), Column(name='Identifier', key='project_identifier'), Column(name='Mission', key='mission'), Column(name='Purposes', key='purposes'), Column(name='Start Date', key='start_date'), Column(name='Planned End Date', key='end_date'), Column(name='Priority', key='priority'), Column(name='Project Phase', key='project_phase'), Column(name='Project Status', key='project_status'), Column(name='Project Health', key='project_health')])], action=ActionParameter(function='ProjectManager.find_projects', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'classification_names': ['Campaign']})),
8
+ 'Certification-Type-DrE': FormatSet(target_type='Certification Type', heading='Certification-Type-DrE Attributes', description='Auto-generated format for Certification Type (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Document Identifier', key='document_identifier'), Column(name='Scope', key='scope'), Column(name='Usage', key='usage'), Column(name='Importance', key='importance'), Column(name='Details', key='details'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Restrictions', key='restrictions'), Column(name='Obligations', key='obligations'), Column(name='Entitlements', key='Entitlements')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['CertificationType']})),
9
+ 'Collection-DrE': FormatSet(target_type='Collection', heading='Collection-DrE Attributes', description='Auto-generated format for Collection (Create).', family='Digital Product Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
10
+ 'Comment-DrE': FormatSet(target_type='Comment', heading='Comment-DrE Attributes', description='Auto-generated format for Comment (Create).', family='Feedback Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Associated Element', key='associated_element'), Column(name='Comment Text', key='comment_text'), Column(name='Comment Type', key='comment_type')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
11
+ 'CSV-File-DrE': FormatSet(target_type='CSV File', heading='CSV-File-DrE Attributes', description='Auto-generated format for CSV File (Create).', family='Digital Product Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='File Path', key='file_path'), Column(name='File Encoding', key='file_encoding'), Column(name='File Extension', key='file_extension'), Column(name='File System Name', key='file_system_name')])]),
12
+ 'Data-Class-DrE': FormatSet(target_type='Data Class', heading='Data-Class-DrE Attributes', description='Auto-generated format for Data Class (Create).', family='Data Designer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Namespace', key='namespace'), Column(name='Match Property Names', key='match_property_names'), Column(name='Match Threshold', key='match_threshold'), Column(name='IsCaseSensitive', key='is_case_sensitive'), Column(name='Data Type', key='data_type'), Column(name='Allow Duplicate Values', key='duplicates_allowed'), Column(name='isNullable', key='is_nullable'), Column(name='Default Value', key='default_value'), Column(name='Average Value', key='avg_value'), Column(name='Value List', key='value_list'), Column(name='Value Range From', key='value_range_from'), Column(name='Value Range To', key='value_range_to'), Column(name='Sample Values', key='sample_values'), Column(name='Data Patterns', key='data_patterns'), Column(name='In Data Dictionary', key='in_data_dictionary'), Column(name='Containing Data Class', key='containing_data_class'), Column(name='Specializes Data Class', key='specializes_data_class')])], action=ActionParameter(function='DataDesigner.find_data_classes', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
13
+ 'Data-Dictionary-DrE': FormatSet(target_type='Data Dictionary', heading='Data-Dictionary-DrE Attributes', description='Auto-generated format for Data Dictionary (Create).', family='Data Designer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['DataDictionary']})),
14
+ 'Data-Field-DrE': FormatSet(target_type='Data Field', heading='Data-Field-DrE Attributes', description='Auto-generated format for Data Field (Create).', family='Data Designer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Data Type', key='data_type'), Column(name='Position', key='position'), Column(name='Minimum Cardinality', key='min_cardinality'), Column(name='Maximum Cardinality', key='max_cardinality'), Column(name='In Data Structure', key='in_data_structure'), Column(name='In Data Dictionary', key='in_data_dictionary'), Column(name='Data Class', key='data_class'), Column(name='isNullable', key='is_nullable'), Column(name='Minimum Length', key='min_length'), Column(name='Length', key='length'), Column(name='Precision', key='precision'), Column(name='Ordered Values', key='ordered_values'), Column(name='Units', key='units'), Column(name='Default Value', key='default_value')])], action=ActionParameter(function='DataDesigner.find_data_fields', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
15
+ 'Data-Processing-Purpose-DrE': FormatSet(target_type='Data Processing Purpose', heading='Data-Processing-Purpose-DrE Attributes', description='Auto-generated format for Data Processing Purpose (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['DataProcessingPurpose']})),
16
+ 'Data-Sharing-Agreement-DrE': FormatSet(target_type='Data Sharing Agreement', heading='Data-Sharing-Agreement-DrE Attributes', description='Auto-generated format for Data Sharing Agreement (Create).', family='Digital Product Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Product Manager', key='product_manager')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'classification_names': ['DataSharingAgreement']})),
17
+ 'Data-Specification-DrE': FormatSet(target_type='Data Specification', heading='Data-Specification-DrE Attributes', description='Auto-generated format for Data Specification (Create).', family='Data Designer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['DataSpec']})),
18
+ 'Data-Structure-DrE': FormatSet(target_type='Data Structure', heading='Data-Structure-DrE Attributes', description='Auto-generated format for Data Structure (Create).', family='Data Designer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='In Data Specification', key='in_data_spec'), Column(name='In Data Dictionary', key='in_data_dictionary')])], action=ActionParameter(function='DataDesigner.find_data_structures', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
19
+ 'Digital-Product-Catalog-DrE': FormatSet(target_type='Digital Product Catalog', heading='Digital-Product-Catalog-DrE Attributes', description='Auto-generated format for Digital Product Catalog (Create).', family='Digital Product Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['DigitalProductCatalog']})),
20
+ 'Digital-Product-DrE': FormatSet(target_type='Digital Product', heading='Digital-Product-DrE Attributes', description='Auto-generated format for Digital Product (Create).', family='Digital Product Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Product Name', key='product_name'), Column(name='Identifier', key='identifier'), Column(name='Maturity', key='maturity'), Column(name='Service Life', key='service_life'), Column(name='Introduction Date', key='introduction_date'), Column(name='Next Version Date', key='next_version_date'), Column(name='Withdrawal Date', key='withdrawal_date'), Column(name='Product Manager', key='product_manager'), Column(name='Agreements', key='agreements')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['DigitalProduct']})),
21
+ 'Digital-Subscription-DrE': FormatSet(target_type='Digital Subscription', heading='Digital-Subscription-DrE Attributes', description='Auto-generated format for Digital Subscription (Create).', family='Digital Product Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Identifier', key='identifier'), Column(name='Support Level', key='support_level'), Column(name='Service Levels', key='service_levels')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['DigitalSubscription']})),
22
+ 'External-Data-Source-DrE': FormatSet(target_type='External Data Source', heading='External-Data-Source-DrE Attributes', description='Auto-generated format for External Data Source (Create).', family='External Reference', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Reference Title', key='reference_title'), Column(name='Reference Abstract', key='reference_abstract'), Column(name='Authors', key='authors'), Column(name='Organization', key='organization'), Column(name='Sources', key='reference_sources'), Column(name='License', key='license'), Column(name='Copyright', key='copyright'), Column(name='Attribution', key='category')])], action=ActionParameter(function='ExternalReference.find_external_references', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['ExternalDataSource']})),
23
+ 'External-Reference-DrE': FormatSet(target_type='External Reference', heading='External-Reference-DrE Attributes', description='Auto-generated format for External Reference (Create).', family='External Reference', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Reference Title', key='reference_title'), Column(name='Reference Abstract', key='reference_abstract'), Column(name='Authors', key='authors'), Column(name='Organization', key='organization'), Column(name='Sources', key='reference_sources'), Column(name='License', key='license'), Column(name='Copyright', key='copyright'), Column(name='Attribution', key='category'), Column(name='Number of Pages', key='number_of_pages'), Column(name='Page Range', key='page_range'), Column(name='Publication Series', key='publication_series'), Column(name='Publication Series Volume', key='pub_series_volume'), Column(name='Publisher', key='publisher'), Column(name='First Publication Date', key='first_pub_date'), Column(name='Publication Date', key='pub_date'), Column(name='Publication City', key='pub_city'), Column(name='Publication Year', key='pub_year'), Column(name='Publication Numbers', key='pub_numbers')])], action=ActionParameter(function='ExternalReference.find_external_references', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['CitedDocument']})),
24
+ 'Glossary-DrE': FormatSet(target_type='Glossary', heading='Glossary-DrE Attributes', description='Auto-generated format for Glossary (Create).', family='Glossary', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Language', key='language')])], action=ActionParameter(function='CollectionManager.find_collections', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['Glossary']})),
25
+ 'Glossary-Term-DrE': FormatSet(target_type='Glossary Term', heading='Glossary-Term-DrE Attributes', description='Auto-generated format for Glossary Term (Create).', family='Glossary', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='term_name'), Column(name='Glossary', key='glossary_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Folders', key='folders'), Column(name='Abbreviation', key='abbreviation'), Column(name='Example', key='example'), Column(name='Usage', key='usage')])], action=ActionParameter(function='GlossaryManager.find_glossary_terms', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
26
+ 'Governance-Action-DrE': FormatSet(target_type='Governance Action', heading='Governance-Action-DrE Attributes', description='Auto-generated format for Governance Action (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceAction']})),
27
+ 'Governance-Approach-DrE': FormatSet(target_type='Governance Approach', heading='Governance-Approach-DrE Attributes', description='Auto-generated format for Governance Approach (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceApproach']})),
28
+ 'Governance-Control-DrE': FormatSet(target_type='Governance Control', heading='Governance-Control-DrE Attributes', description='Auto-generated format for Governance Control (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='measurement', key='measurement'), Column(name='target', key='target'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceMetric']})),
29
+ 'Governance-Driver-DrE': FormatSet(target_type='Governance Driver', heading='Governance-Driver-DrE Attributes', description='Auto-generated format for Governance Driver (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Usage', key='usage'), Column(name='Summary', key='summary'), Column(name='Scope', key='scope'), Column(name='Results', key='results'), Column(name='Outcomes', key='outcomes'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Identifier', key='identifier')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceDriver']})),
30
+ 'Governance-Obligation-DrE': FormatSet(target_type='Governance Obligation', heading='Governance-Obligation-DrE Attributes', description='Auto-generated format for Governance Obligation (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceObligation']})),
31
+ 'Governance-Policy-DrE': FormatSet(target_type='Governance Policy', heading='Governance-Policy-DrE Attributes', description='Auto-generated format for Governance Policy (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernancePolicy']})),
32
+ 'Governance-Principle-DrE': FormatSet(target_type='Governance Principle', heading='Governance-Principle-DrE Attributes', description='Auto-generated format for Governance Principle (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernancePrinciple']})),
33
+ 'Governance-Procedure-DrE': FormatSet(target_type='Governance Procedure', heading='Governance-Procedure-DrE Attributes', description='Auto-generated format for Governance Procedure (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Document Identifier', key='document_identifier'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implementation Description', key='implementation_description'), Column(name='Supports Policies', key='supports_policies'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceProcedure']})),
34
+ 'Governance-Responsibility-DrE': FormatSet(target_type='Governance Responsibility', heading='Governance-Responsibility-DrE Attributes', description='Auto-generated format for Governance Responsibility (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Document Identifier', key='document_identifier'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implementation Description', key='implementation_description'), Column(name='Supports Policies', key='supports_policies'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceResponsibility']})),
35
+ 'Governance-Rule-DrE': FormatSet(target_type='Governance Rule', heading='Governance-Rule-DrE Attributes', description='Auto-generated format for Governance Rule (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Document Identifier', key='document_identifier'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implementation Description', key='implementation_description'), Column(name='Supports Policies', key='supports_policies'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceRule']})),
36
+ 'Governance-Strategy-DrE': FormatSet(target_type='Governance Strategy', heading='Governance-Strategy-DrE Attributes', description='Auto-generated format for Governance Strategy (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceStrategy']})),
37
+ 'Informal-Tag-DrE': FormatSet(target_type='Informal Tag', heading='Informal-Tag-DrE Attributes', description='Auto-generated format for Informal Tag (Create).', family='Feedback Manager', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description')])], action=ActionParameter(function='ServerClient.find_tags', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
38
+ 'Information-Supply-Chain-DrE': FormatSet(target_type='Information Supply Chain', heading='Information-Supply-Chain-DrE Attributes', description='Auto-generated format for Information Supply Chain (Create).', family='Solution Architect', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Scope', key='scope'), Column(name='Purposes', key='purposes'), Column(name='Nested Information Supply Chains', key='nested_info_supply_chains'), Column(name='In Information Supply Chain', key='in_supply_chain')])], action=ActionParameter(function='SolutionArchitect.find_information_supply_chains', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
39
+ 'License-Type-DrE': FormatSet(target_type='License Type', heading='License-Type-DrE Attributes', description='Auto-generated format for License Type (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Document Identifier', key='document_identifier'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Summary', key='summary'), Column(name='Scope', key='scope'), Column(name='Usage', key='usage'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results'), Column(name='Description', key='description'), Column(name='Details', key='details'), Column(name='Restrictions', key='restrictions'), Column(name='Obligations', key='obligations'), Column(name='Entitlements', key='Entitlements')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
40
+ 'Naming-Standard-Rule-DrE': FormatSet(target_type='Naming Standard Rule', heading='Naming-Standard-Rule-DrE Attributes', description='Auto-generated format for Naming Standard Rule (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Document Identifier', key='document_identifier'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implementation Description', key='implementation_description'), Column(name='Supports Policies', key='supports_policies'), Column(name='Name Patterns', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['NamingStandardRule']})),
41
+ 'NoteLog-DrE': FormatSet(target_type='NoteLog', heading='NoteLog-DrE Attributes', description='Auto-generated format for NoteLog (Create).', family='Feedback Manager', formats=[Format(types=['ALL'], columns=[Column(name='Journal Name', key='display_name'), Column(name='Associated Element', key='associated_element'), Column(name='Journal Description', key='journal_description'), Column(name='Note Entry', key='note_entry')])], action=ActionParameter(function='ServerClient.find_notes', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
42
+ 'Personal-Project-DrE': FormatSet(target_type='Personal Project', heading='Personal-Project-DrE Attributes', description='Auto-generated format for Personal Project (Create).', family='Project', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Project Type', key='project_type'), Column(name='Identifier', key='project_identifier'), Column(name='Mission', key='mission'), Column(name='Purposes', key='purposes'), Column(name='Start Date', key='start_date'), Column(name='Planned End Date', key='end_date'), Column(name='Priority', key='priority'), Column(name='Project Phase', key='project_phase'), Column(name='Project Status', key='project_status'), Column(name='Project Health', key='project_health')])], action=ActionParameter(function='ProjectManager.find_projects', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'classification_names': ['PersonalProject']})),
43
+ 'Project-DrE': FormatSet(target_type='Project', heading='Project-DrE Attributes', description='Auto-generated format for Project (Create).', family='Project', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Project Type', key='project_type'), Column(name='Identifier', key='project_identifier'), Column(name='Mission', key='mission'), Column(name='Purposes', key='purposes'), Column(name='Start Date', key='start_date'), Column(name='Planned End Date', key='end_date'), Column(name='Priority', key='priority'), Column(name='Project Phase', key='project_phase'), Column(name='Project Status', key='project_status'), Column(name='Project Health', key='project_health')])], action=ActionParameter(function='ProjectManager.find_projects', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
44
+ 'Regulation-Article-DrE': FormatSet(target_type='Regulation Article', heading='Regulation-Article-DrE Attributes', description='Auto-generated format for Regulation Article (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['RegulationArticle']})),
45
+ 'Regulation-DrE': FormatSet(target_type='Regulation', heading='Regulation-DrE Attributes', description='Auto-generated format for Regulation (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Regulation Source', key='regulation_source'), Column(name='Regulators', key='regulators'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['Regulation']})),
46
+ 'Security-Access-Control-DrE': FormatSet(target_type='Security Access Control', heading='Security-Access-Control-DrE Attributes', description='Auto-generated format for Security Access Control (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['SecurityAccessControl']})),
47
+ 'Security-Group-DrE': FormatSet(target_type='Security Group', heading='Security-Group-DrE Attributes', description='Auto-generated format for Security Group (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['SEcurityGroup']})),
48
+ 'security_access_control-DrE': FormatSet(target_type='security_access_control', heading='security_access_control-DrE Attributes', description='Auto-generated format for security_access_control (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='criteria', key='criteria'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['GovernanceZone']})),
49
+ 'Service-Level-Objectives-DrE': FormatSet(target_type='Service Level Objectives', heading='Service-Level-Objectives-DrE Attributes', description='Auto-generated format for Service Level Objectives (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Document Identifier', key='document_identifier'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implementation Description', key='implementation_description'), Column(name='Supports Policies', key='supports_policies'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['ServiceLevelObjectives']})),
50
+ 'Solution-Blueprint-DrE': FormatSet(target_type='Solution Blueprint', heading='Solution-Blueprint-DrE Attributes', description='Auto-generated format for Solution Blueprint (Create).', family='Solution Architect', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Solution Components', key='solution_components')])], action=ActionParameter(function='SolutionArchitect.find_solution_blueprints', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
51
+ 'Solution-Component-DrE': FormatSet(target_type='Solution Component', heading='Solution-Component-DrE Attributes', description='Auto-generated format for Solution Component (Create).', family='Solution Architect', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Solution Component Type', key='soln_comp_type'), Column(name='Planned Deployed Implementation Type', key='planned_deployed_impl_type'), Column(name='In Solution Components', key='in_components'), Column(name='In Solution Blueprints', key='solution_blueprints'), Column(name='In Information Supply Chains', key='in_supply_chains'), Column(name='Actors', key='actors')])], action=ActionParameter(function='SolutionArchitect.find_solution_components', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
52
+ 'Solution-Role-DrE': FormatSet(target_type='Solution Role', heading='Solution-Role-DrE Attributes', description='Auto-generated format for Solution Role (Create).', family='Solution Architect', formats=[Format(types=['ALL'], columns=[Column(name='Name', key='name'), Column(name='Description', key='description'), Column(name='Title', key='title'), Column(name='Scope', key='scope'), Column(name='identifier', key='identifier'), Column(name='Domain Identifier', key='domain_identifier')])], action=ActionParameter(function='SolutionArchitect.find_solution_roles', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'])),
53
+ 'Study-Project-DrE': FormatSet(target_type='Study Project', heading='Study-Project-DrE Attributes', description='Auto-generated format for Study Project (Create).', family='Project', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Project Type', key='project_type'), Column(name='Identifier', key='project_identifier'), Column(name='Mission', key='mission'), Column(name='Purposes', key='purposes'), Column(name='Start Date', key='start_date'), Column(name='Planned End Date', key='end_date'), Column(name='Priority', key='priority'), Column(name='Project Phase', key='project_phase'), Column(name='Project Status', key='project_status'), Column(name='Project Health', key='project_health')])], action=ActionParameter(function='ProjectManager.find_projects', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'classification_names': ['StudyProject']})),
54
+ 'Task-DrE': FormatSet(target_type='Task', heading='Task-DrE Attributes', description='Auto-generated format for Task (Create).', family='Project', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Description', key='description'), Column(name='Project Type', key='project_type'), Column(name='Identifier', key='project_identifier'), Column(name='Mission', key='mission'), Column(name='Purposes', key='purposes'), Column(name='Start Date', key='start_date'), Column(name='Planned End Date', key='end_date'), Column(name='Priority', key='priority'), Column(name='Project Phase', key='project_phase'), Column(name='Project Status', key='project_status'), Column(name='Project Health', key='project_health')])], action=ActionParameter(function='ProjectManager.find_projects', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'classification_names': ['Task']})),
55
+ 'Threat-Definition-DrE': FormatSet(target_type='Threat Definition', heading='Threat-Definition-DrE Attributes', description='Auto-generated format for Threat Definition (Create).', family='Governance Officer', formats=[Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'), Column(name='Summary', key='summary'), Column(name='Description', key='description'), Column(name='Domain Identifier', key='domain_identifier'), Column(name='Identifier', key='identifier'), Column(name='Usage', key='usage'), Column(name='Scope', key='scope'), Column(name='Importance', key='importance'), Column(name='Implications', key='implications'), Column(name='Outcomes', key='outcomes'), Column(name='Results', key='results')])], action=ActionParameter(function='GovernanceOfficer.find_governance_definitions', required_params=['search_string'], optional_params=['page_size', 'start_from', 'starts_with', 'ends_with', 'ignore_case'], spec_params={'metadata_element_subtypes': ['ThreatDefinition']}))
56
+ })
@@ -0,0 +1,397 @@
1
+ """
2
+ SPDX-License-Identifier: Apache-2.0
3
+ Copyright Contributors to the ODPi Egeria project.
4
+
5
+ A pure helper to execute a FormatSet action and return normalized results without side effects
6
+ (printing or writing to disk). This is suitable for programmatic use (e.g., MCP adapters,
7
+ notebooks, services) that want DICT/JSON or text output directly.
8
+
9
+ Notes
10
+ - Only use this for read-style format sets. It assumes the action is safe to call.
11
+ - Credentials and endpoints default from pyegeria.config.settings (ENV/config.json/ENV files).
12
+ - Prefer output_format="DICT" for machine-consumable results. REPORT/HTML/MERMAID are returned as text.
13
+ """
14
+ from __future__ import annotations
15
+
16
+ import asyncio
17
+ import json
18
+ import sys
19
+ from typing import Any, Dict, Optional
20
+
21
+ from loguru import logger
22
+
23
+ from pyegeria.omvs.classification_manager import ClassificationManager
24
+ from pyegeria.omvs.actor_manager import ActorManager
25
+ from pyegeria.egeria_tech_client import EgeriaTech
26
+ from pyegeria.omvs.collection_manager import CollectionManager
27
+ from pyegeria.omvs.governance_officer import GovernanceOfficer
28
+ from pyegeria.omvs.glossary_manager import GlossaryManager
29
+ from pyegeria.core._globals import NO_ELEMENTS_FOUND
30
+ from pyegeria.core.config import settings
31
+ from pyegeria.omvs.external_links import ExternalReferences
32
+ from pyegeria.core._exceptions import PyegeriaException
33
+ from pyegeria.view.base_report_formats import (
34
+ select_report_spec,
35
+ get_report_spec_heading,
36
+ get_report_spec_description,
37
+ )
38
+
39
+
40
+ _CLIENT_CLASS_MAP = {
41
+ "CollectionManager": CollectionManager,
42
+ "GovernanceOfficer": GovernanceOfficer,
43
+ "GlossaryManager": GlossaryManager,
44
+ "ExternalReference": ExternalReferences,
45
+ "ClassificationManager": ClassificationManager,
46
+ "ActorManager": ActorManager,
47
+ }
48
+
49
+
50
+ def _resolve_client_and_method(func_decl: str):
51
+ """Given a function declaration like 'ClassName.method', return (client_class, method_name)."""
52
+ if not isinstance(func_decl, str) or "." not in func_decl:
53
+ return (EgeriaTech, None)
54
+ class_name, method_name = func_decl.split(".", 1)
55
+ client_class = _CLIENT_CLASS_MAP.get(class_name, EgeriaTech)
56
+ return (client_class, method_name)
57
+
58
+
59
+ def _validate_report_spec_params(report_spec, params):
60
+ """Validate that required parameters are present in the provided params dictionary."""
61
+ missing_params = [param for param in report_spec.required_params if param not in params]
62
+ if missing_params:
63
+ raise PyegeriaException(f"Missing required parameters: {', '.join(missing_params)}")
64
+
65
+
66
+ async def safe_call_tool(func, **call_params):
67
+ """
68
+ Safely calls a function, awaiting it only if it is an asynchronous coroutine.
69
+ """
70
+ try:
71
+ if asyncio.iscoroutinefunction(func):
72
+ # If it's an async function, call it with await
73
+ print("DEBUG: Function is async, using await.", file=sys.stderr)
74
+ result = await func(**call_params)
75
+ else:
76
+ # If it's a synchronous function, call it directly
77
+ print("DEBUG: Function is sync, calling directly.", file=sys.stderr)
78
+ result = func(**call_params)
79
+
80
+ return result
81
+
82
+ except Exception as e:
83
+ print(f"ERROR calling function: {e}", file=sys.stderr)
84
+ raise
85
+
86
+
87
+
88
+ async def _async_run_report(
89
+ report_name: str,
90
+ egeria_client: EgeriaTech,
91
+ output_format: str = "DICT",
92
+ params: Optional[Dict[str, Any]] = None,
93
+ ) -> Dict[str, Any]:
94
+ """
95
+ Execute the action for a given format set and return a normalized result structure.
96
+
97
+ Returns shapes:
98
+ - {"kind":"empty"}
99
+ - {"kind":"json","data": <list|dict|any>}
100
+ - {"kind":"text","mime": "text/markdown"|"text/html","content": str}
101
+ - {"kind":"unknown","raw": any}
102
+ """
103
+ params = dict(params or {})
104
+ user_name = egeria_client.user_id
105
+ user_pwd = egeria_client.user_pwd
106
+
107
+ # Resolve the format set and action
108
+ effective_format = "REPORT" if output_format == "HTML" else output_format
109
+ fmt = select_report_spec(report_name, effective_format)
110
+ if not fmt:
111
+ raise ValueError(
112
+ f"Output format set '{report_name}' does not have a compatible '{output_format}' format."
113
+ )
114
+ if "action" not in fmt:
115
+ raise ValueError(f"Output format set '{report_name}' does not have an action property.")
116
+
117
+ action = fmt["action"]
118
+ func_decl = action.get("function")
119
+ if isinstance(func_decl, str) and "." in func_decl:
120
+ class_name, method_name = func_decl.split(".")
121
+
122
+ if not method_name.startswith("_async_"):
123
+ method_name = "_async_" + method_name
124
+ func_decl = class_name + "." + method_name
125
+
126
+ required_params = action.get("required_params", action.get("user_params", [])) or []
127
+ optional_params = action.get("optional_params", []) or []
128
+ spec_params = action.get("spec_params", {}) or {}
129
+ print(f"func_decl={func_decl}", file=sys.stderr)
130
+ # Build call params: required/optional provided by caller + fixed spec_params
131
+ call_params: Dict[str, Any] = {}
132
+
133
+ # Populate required and optional params when provided
134
+ for p in required_params:
135
+ if p in params and params[p] is not None:
136
+ call_params[p] = params[p]
137
+ elif p not in spec_params:
138
+ # Missing required param
139
+ logger.warning(f"Required parameter '{p}' not provided for format set '{report_name}'.")
140
+ for p in optional_params:
141
+ if p in params and params[p] is not None:
142
+ call_params[p] = params[p]
143
+
144
+ # Include fixed specifics
145
+ call_params.update(spec_params)
146
+
147
+ # Always include output_format and report_spec for downstream rendering
148
+ call_params["output_format"] = output_format
149
+ call_params["report_spec"] = report_name
150
+
151
+ client_class, method_name = _resolve_client_and_method(func_decl)
152
+
153
+
154
+ try:
155
+ func = getattr(egeria_client, method_name) if method_name and hasattr(egeria_client, method_name) else None
156
+ # Add logging to validate func
157
+ msg = f"DEBUG: func={func}, method_name={method_name}, client_class={client_class}"
158
+ logger.debug(msg)
159
+ print(msg, file=sys.stderr)
160
+
161
+ if func is None or not callable(func):
162
+ raise TypeError(
163
+ f"Resolved function '{method_name}' not found in client class '{client_class.__name__}' is not callable."
164
+ )
165
+ # Only (re)create a bearer token if one is not already set on the client.
166
+ try:
167
+ existing_token = None
168
+ if hasattr(egeria_client, "get_token"):
169
+ existing_token = egeria_client.get_token()
170
+ if not existing_token:
171
+ print("DEBUG: No existing bearer token; attempting async creation...", file=sys.stderr)
172
+ if user_name and user_pwd:
173
+ await egeria_client._async_create_egeria_bearer_token(user_name, user_pwd)
174
+ else:
175
+ print("DEBUG: Missing credentials; skipping token creation and relying on pre-initialized token.", file=sys.stderr)
176
+ else:
177
+ print("DEBUG: Using existing bearer token.", file=sys.stderr)
178
+ except Exception as auth_err:
179
+ # Do not fail the entire call if token refresh fails; downstream call may still work
180
+ print(f"DEBUG: Token creation/lookup issue: {auth_err}", file=sys.stderr)
181
+ result = await func(**call_params)
182
+
183
+ if not result or result == NO_ELEMENTS_FOUND:
184
+ return {"kind": "empty"}
185
+
186
+ # Prepare optional preamble for narrative outputs
187
+ heading = get_report_spec_heading(report_name)
188
+ desc = get_report_spec_description(report_name)
189
+ preamble = f"# {heading}\n{desc}\n\n" if heading and desc else ""
190
+
191
+ if output_format in {"DICT", "JSON", "ALL"}:
192
+ # Return raw data (list/dict/any) — do not stringify here
193
+ return {"kind": "json", "data": result}
194
+ elif output_format in {"REPORT", "MD", "FORM"}:
195
+ # These are markdown narratives, pass-through as markdown text
196
+ content = preamble + (str(result) if not isinstance(result, (list, dict)) else ("```json\n" + json.dumps(result, indent=2) + "\n```"))
197
+ return {"kind": "text", "mime": "text/markdown", "content": content}
198
+ elif output_format == "LIST":
199
+ # Produce a Markdown table from structured data
200
+ def to_rows(res):
201
+ if isinstance(res, list):
202
+ return res
203
+ elif isinstance(res, dict):
204
+ return [res]
205
+ else:
206
+ return [res]
207
+ rows = to_rows(result)
208
+ # Normalize rows into list of dicts
209
+ norm_rows = []
210
+ has_dict = False
211
+ for r in rows:
212
+ if isinstance(r, dict):
213
+ norm_rows.append(r)
214
+ has_dict = True
215
+ else:
216
+ norm_rows.append({"Value": r})
217
+ # Determine columns
218
+ cols = []
219
+ if has_dict:
220
+ for r in norm_rows:
221
+ if isinstance(r, dict):
222
+ for k in r.keys():
223
+ if k not in cols:
224
+ cols.append(str(k))
225
+ else:
226
+ cols = ["Value"]
227
+ # Build markdown table
228
+ header = "| " + " | ".join(cols) + " |"
229
+ separator = "| " + " | ".join(["---"] * len(cols)) + " |"
230
+ lines = []
231
+ if preamble:
232
+ lines.append(preamble.strip())
233
+ lines.append(header)
234
+ lines.append(separator)
235
+ for r in norm_rows:
236
+ row_vals = [str(r.get(c, "")) for c in cols]
237
+ lines.append("| " + " | ".join(row_vals) + " |")
238
+ content = "\n".join(lines)
239
+ return {"kind": "text", "mime": "text/markdown", "content": content}
240
+ elif output_format == "MERMAID":
241
+ text = str(result)
242
+ fenced = text if "```mermaid" in text else f"{preamble}```mermaid\n{text}\n```"
243
+ return {"kind": "text", "mime": "text/markdown", "content": fenced}
244
+ elif output_format == "HTML":
245
+ # HTML should be REPORT transformed to HTML
246
+ from pyegeria.view.output_formatter import markdown_to_html
247
+ # If backend returned non-string, render JSON for safety
248
+ md_source = preamble + (str(result) if not isinstance(result, (list, dict)) else ("```json\n" + json.dumps(result, indent=2) + "\n```"))
249
+ content = markdown_to_html(md_source)
250
+ return {"kind": "text", "mime": "text/html", "content": content}
251
+ else:
252
+ # Unknown or table-like formats which aren't appropriate for MCP by default
253
+ return {"kind": "unknown", "raw": result}
254
+
255
+ except PyegeriaException as e:
256
+ # Re-raise with a simpler message for upstream mapping
257
+ raise
258
+
259
+
260
+
261
+ def exec_report_spec(
262
+ format_set_name: str | dict,
263
+ *,
264
+ output_format: str = "DICT",
265
+ params: Optional[Dict[str, Any]] = None,
266
+ view_server: str = settings.Environment.egeria_view_server,
267
+ view_url: str = settings.Environment.egeria_view_server_url,
268
+ user: str = settings.User_Profile.user_name,
269
+ user_pass: str = settings.User_Profile.user_pwd,
270
+ ) -> Dict[str, Any]:
271
+ """
272
+ Execute the action for a given format set and return a normalized result structure.
273
+
274
+ Returns shapes:
275
+ - {"kind":"empty"}
276
+ - {"kind":"json","data": <list|dict|any>}
277
+ - {"kind":"text","mime": "text/markdown"|"text/html","content": str}
278
+ - {"kind":"unknown","raw": any}
279
+ """
280
+ output_format = (output_format or "DICT").upper()
281
+ params = dict(params or {})
282
+
283
+ # Resolve the format set and action
284
+ if isinstance(format_set_name, dict):
285
+ fmt = format_set_name
286
+ else:
287
+ fmt = select_report_spec(format_set_name, output_format)
288
+ if not fmt:
289
+ raise ValueError(
290
+ f"Output report spec '{format_set_name}' does not have a compatible '{output_format}' format."
291
+ )
292
+ if "action" not in fmt:
293
+ raise ValueError(f"Output report spec '{format_set_name}' does not have an action property.")
294
+
295
+ action = fmt["action"]
296
+ func_decl = action.get("function")
297
+ required_params = action.get("required_params", action.get("user_params", [])) or []
298
+ optional_params = action.get("optional_params", []) or []
299
+ spec_params = action.get("spec_params", {}) or {}
300
+
301
+ # Build call params: required/optional provided by caller + fixed spec_params
302
+ call_params: Dict[str, Any] = {}
303
+
304
+ # Populate required and optional params when provided
305
+ for p in required_params:
306
+ if p in params and params[p] is not None:
307
+ call_params[p] = params[p]
308
+ elif p not in spec_params:
309
+ # Missing required param
310
+ logger.warning(f"Required parameter '{p}' not provided for report spec '{format_set_name}'.")
311
+ for p in optional_params:
312
+ if p in params and params[p] is not None:
313
+ call_params[p] = params[p]
314
+
315
+ # Include fixed specifics
316
+ call_params.update(spec_params)
317
+
318
+ # Always include output_format and report_spec for downstream rendering
319
+ call_params["output_format"] = output_format
320
+ call_params["report_spec"] = format_set_name
321
+
322
+ client_class, method_name = _resolve_client_and_method(func_decl)
323
+ client = client_class(view_server, view_url, user_id=user, user_pwd=user_pass)
324
+
325
+ try:
326
+ client.create_egeria_bearer_token()
327
+ func = getattr(client, method_name) if method_name and hasattr(client, method_name) else None
328
+ if func is None:
329
+ raise AttributeError(
330
+ f"Method '{method_name}' not found in client class '{client_class.__name__}'."
331
+ )
332
+
333
+ result = func(**call_params)
334
+
335
+ if not result or result == NO_ELEMENTS_FOUND:
336
+ return {"kind": "empty"}
337
+
338
+ # Prepare optional preamble for narrative outputs
339
+ heading = get_report_spec_heading(format_set_name)
340
+ desc = get_report_spec_description(format_set_name)
341
+ preamble = f"# {heading}\n{desc}\n\n" if heading and desc else ""
342
+
343
+ if output_format in {"DICT", "JSON", "ALL", "TABLE"}:
344
+ # Return raw data (list/dict/any) — do not stringify here
345
+ return {"kind": "json", "data": result}
346
+ elif output_format in {"REPORT", "MD", "FORM"}:
347
+ # These are markdown narratives, pass-through as markdown text
348
+ content = preamble + (str(result) if not isinstance(result, (list, dict)) else ("```json\n" + json.dumps(result, indent=2) + "\n```"))
349
+ return {"kind": "text", "mime": "text/markdown", "content": content}
350
+ elif output_format == "LIST":
351
+ # Produce a simple markdown list from structured data when possible
352
+ if isinstance(result, (list, dict)):
353
+ rows = result if isinstance(result, list) else [result]
354
+ def flatten(item):
355
+ if isinstance(item, dict):
356
+ return item
357
+ return {"value": item}
358
+ flat_rows = [flatten(r) for r in rows]
359
+ keys = []
360
+ for r in flat_rows:
361
+ for k in r.keys():
362
+ if k not in keys:
363
+ keys.append(k)
364
+ label_key = keys[0] if keys else "value"
365
+ lines = []
366
+ if preamble:
367
+ lines.append(preamble.strip())
368
+ lines += [f"- {str(r.get(label_key, ''))}" for r in flat_rows]
369
+ content = "\n".join(lines)
370
+ else:
371
+ content = preamble + str(result)
372
+ return {"kind": "text", "mime": "text/markdown", "content": content}
373
+ elif output_format == "MERMAID":
374
+ text = str(result)
375
+ fenced = text if "```mermaid" in text else f"{preamble}```mermaid\n{text}\n```"
376
+ return {"kind": "text", "mime": "text/markdown", "content": fenced}
377
+ elif output_format == "HTML":
378
+ from pyegeria.view.output_formatter import markdown_to_html
379
+ md_source = preamble + (str(result) if not isinstance(result, (list, dict)) else ("```json\n" + json.dumps(result, indent=2) + "\n```"))
380
+ content = markdown_to_html(md_source)
381
+ return {"kind": "text", "mime": "text/html", "content": content}
382
+ else:
383
+ # Unknown or table-like formats which aren't appropriate for MCP by default
384
+ return {"kind": "unknown", "raw": result}
385
+
386
+ except PyegeriaException as e:
387
+ # Re-raise with a simpler message for upstream mapping
388
+ raise
389
+ except ValueError as e:
390
+ import traceback
391
+ traceback.print_exc()
392
+
393
+ finally:
394
+ try:
395
+ client.close_session()
396
+ except Exception:
397
+ pass
@@ -15,14 +15,14 @@ from rich import print
15
15
  from rich.console import Console
16
16
  from rich.markdown import Markdown
17
17
 
18
- from pyegeria import body_slimmer
19
- from pyegeria._globals import (NO_GLOSSARIES_FOUND, NO_ELEMENTS_FOUND, NO_PROJECTS_FOUND, NO_CATEGORIES_FOUND, DEBUG_LEVEL)
18
+ from pyegeria.core.utils import body_slimmer
19
+ from pyegeria.core._globals import (NO_GLOSSARIES_FOUND, NO_ELEMENTS_FOUND, NO_PROJECTS_FOUND, NO_CATEGORIES_FOUND, DEBUG_LEVEL)
20
20
  from pyegeria.egeria_tech_client import EgeriaTech
21
- from md_processing.md_processing_utils.md_processing_constants import (message_types,
22
- pre_command, EXISTS_REQUIRED, load_commands, get_command_spec, get_attribute, get_attribute_labels, get_alternate_names)
21
+ from md_processing.md_processing_utils.md_processing_constants import (
22
+ pre_command, EXISTS_REQUIRED)
23
23
 
24
24
 
25
- from pyegeria.project_manager_omvs import ProjectManager
25
+ from pyegeria.omvs.project_manager import ProjectManager
26
26
 
27
27
  ALWAYS = "ALWAYS"
28
28
  ERROR = "ERROR"