pyegeria 0.5.5.21__py3-none-any.whl → 0.5.5.23__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.
Files changed (25) hide show
  1. examples/widgets/catalog_user/list_assets.py +1 -1
  2. examples/widgets/catalog_user/view_collection.py +5 -5
  3. examples/widgets/catalog_user/view_glossary.py +4 -4
  4. examples/widgets/developer/get_guid_info.py +2 -2
  5. examples/widgets/developer/get_tech_details.py +1 -1
  6. examples/widgets/developer/list_asset_types.py +4 -2
  7. examples/widgets/developer/list_registered_services.py +5 -2
  8. examples/widgets/developer/list_relationship_types.py +5 -1
  9. examples/widgets/developer/list_tech_templates.py +5 -2
  10. examples/widgets/developer/list_tech_types.py +5 -2
  11. examples/widgets/developer/list_valid_metadata_values.py +5 -1
  12. examples/widgets/operational/get_tech_type_elements.py +1 -1
  13. examples/widgets/operational/get_tech_type_template.py +1 -1
  14. examples/widgets/operational/view_asset_events.py +13 -6
  15. examples/widgets/operational/view_eng_action_status.py +4 -1
  16. examples/widgets/operational/view_gov_eng_status.py +4 -1
  17. examples/widgets/operational/view_platform_status.py +7 -4
  18. examples/widgets/operational/view_server_list.py +4 -1
  19. examples/widgets/operational/view_server_status.py +4 -1
  20. pyegeria/automated_curation_omvs.py +91 -42
  21. {pyegeria-0.5.5.21.dist-info → pyegeria-0.5.5.23.dist-info}/METADATA +1 -1
  22. {pyegeria-0.5.5.21.dist-info → pyegeria-0.5.5.23.dist-info}/RECORD +25 -25
  23. {pyegeria-0.5.5.21.dist-info → pyegeria-0.5.5.23.dist-info}/LICENSE +0 -0
  24. {pyegeria-0.5.5.21.dist-info → pyegeria-0.5.5.23.dist-info}/WHEEL +0 -0
  25. {pyegeria-0.5.5.21.dist-info → pyegeria-0.5.5.23.dist-info}/entry_points.txt +0 -0
@@ -98,7 +98,7 @@ def display_assets(search_string: str, guid: str, server: str, url: str, usernam
98
98
  # time.sleep(2)
99
99
  # live.update(generate_table())
100
100
  console = Console()
101
- with console.pager():
101
+ with console.pager(styles=True):
102
102
  console.print(generate_table(search_string))
103
103
 
104
104
 
@@ -41,12 +41,12 @@ def collection_viewer(root: str, server_name: str, platform_url: str, user: str,
41
41
  if members:
42
42
  for member in members:
43
43
  style = "bold white on black"
44
- text_collection_name = Text(f"Name: {member['name']}", style)
44
+ text_collection_name = Text(f"[bold white on black]Name: {member['name']}", style=style)
45
45
  text_qualified_name = Text(f"* QualifiedName: {member['qualifiedName']}")
46
46
  text_guid = Text(f"* GUID: {member['guid']}", "green")
47
47
  text_collection_type = Text(f"* Collection Type: {member['collectionType']}")
48
48
  text_description = Text(f"* Description: {member['description']}")
49
- p = Panel.fit(f"['bold white on black']{text_collection_name}[green]\n{text_qualified_name}\n{text_guid}\n"
49
+ p = Panel.fit(f"{text_collection_name}[green]\n{text_qualified_name}\n{text_guid}\n"
50
50
  f"{text_collection_type}\n{text_description}")
51
51
  tt = tree.add(p, style=style)
52
52
 
@@ -55,9 +55,9 @@ def collection_viewer(root: str, server_name: str, platform_url: str, user: str,
55
55
  branch = tt.add(f"[bold magenta on black]Members", style=style, guide_style=style)
56
56
  walk_collection_hierarchy(collection_client, member['qualifiedName'], branch),
57
57
  else:
58
- tt = tree.add(f"[bold magenta on black]No collections match {root_collection_name}", style="bold red")
58
+ tt = tree.add(f"[bold magenta on black]No collections match {root_collection_name}")
59
59
  try:
60
- tree = Tree(f"[bold bright green on black]{root}", guide_style="bold bright_blue")
60
+ tree = Tree(f"[bold bright green on black]{root}",guide_style="bold bright_blue")
61
61
  c_client = CollectionManager(server_name, platform_url,
62
62
  user_id=user)
63
63
 
@@ -87,7 +87,7 @@ def main():
87
87
  userid = args.userid if args.userid is not None else EGERIA_USER
88
88
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
89
89
 
90
- root_collection = Prompt.ask("Enter the Root Collection to start from:", default="Digital Products Root")
90
+ root_collection = Prompt.ask("Enter the Root Collection to start from:", default="Root Sustainability Collection")
91
91
  collection_viewer(root_collection, server, url, userid, user_pass)
92
92
 
93
93
  if __name__ == "__main__":
@@ -88,7 +88,7 @@ def display_glossary_terms(search_string: str, guid: str, server: str, url: str,
88
88
 
89
89
 
90
90
  table.add_row(
91
- display_name,qualified_name, abbrev, summary, description
91
+ display_name,qualified_name, abbrev, summary, description, style="bold white on black"
92
92
  )
93
93
 
94
94
  g_client.close_session()
@@ -98,9 +98,9 @@ def display_glossary_terms(search_string: str, guid: str, server: str, url: str,
98
98
  # with Live(generate_table(), refresh_per_second=4, screen=True) as live:
99
99
  # while True:
100
100
  # time.sleep(2)
101
- # live.update(generate_table())
102
- console = Console()
103
- with console.pager():
101
+ # live.update(generate_table(search_string))
102
+ console = Console(style="bold white on black")
103
+ with console.pager(styles=True):
104
104
  console.print(generate_table(search_string))
105
105
 
106
106
 
@@ -46,7 +46,7 @@ def display_guid(guid: str, server: str, url: str, username: str, user_password:
46
46
 
47
47
 
48
48
  try:
49
- console = Console(width = 180)
49
+ console = Console(width = 180, style="bold white on black")
50
50
  r = c.make_request("GET", url)
51
51
  if r.status_code == 200:
52
52
  pass
@@ -58,7 +58,7 @@ def display_guid(guid: str, server: str, url: str, username: str, user_password:
58
58
  created = Text(f"Created at: {e['createTime']}")
59
59
  details = Text(f"Details: {json.dumps(p, indent=2)}")
60
60
 
61
- tree = Tree(f"[bold bright green]{guid}", guide_style="bold bright_blue")
61
+ tree = Tree(f"{guid}", style = "bold bright_white on black", guide_style="bold bright_blue")
62
62
 
63
63
  tree = tree.add(type_name)
64
64
  tree.add(metadataCollection)
@@ -82,7 +82,7 @@ def tech_viewer(tech: str, server_name:str, platform_url:str, user:str, user_pas
82
82
  return tt
83
83
 
84
84
  try:
85
- tree = Tree(f"[bold bright green]{tech}", guide_style="bold bright_blue")
85
+ tree = Tree(f"{tech}", style = "bold bright_white on black", guide_style="bold bright_blue")
86
86
  a_client = AutomatedCuration(server_name, platform_url,
87
87
  user_id=user)
88
88
 
@@ -45,8 +45,10 @@ def display_asset_types(server: str, url: str, username: str, user_password: str
45
45
  """Make a new table."""
46
46
  table = Table(
47
47
  title=f"Asset Types for: {url} @ {time.asctime()}",
48
- # style = "black on grey66",
48
+ style="bold white on black",
49
+ row_styles=["bold white on black"],
49
50
  header_style="white on dark_blue",
51
+ title_style="bold white on black",
50
52
  show_lines=True,
51
53
  box=box.ROUNDED,
52
54
  caption=f"Asset Types from Server '{server}' @ Platform - {url}",
@@ -75,7 +77,7 @@ def display_asset_types(server: str, url: str, username: str, user_password: str
75
77
 
76
78
  try:
77
79
  console = Console()
78
- with console.pager():
80
+ with console.pager(styles=True):
79
81
  console.print(generate_table())
80
82
 
81
83
  except (InvalidParameterException, PropertyServerException, UserNotAuthorizedException) as e:
@@ -57,8 +57,11 @@ def display_registered_svcs(service: str, server: str , url: str,
57
57
  """Make a new table."""
58
58
  table = Table(
59
59
  title=f"Technology Types for: {url} @ {time.asctime()}",
60
- # style = "black on grey66",
60
+ style="bold white on black",
61
+ row_styles=["bold white on black"],
61
62
  header_style="white on dark_blue",
63
+ title_style="bold white on black",
64
+ caption_style="white on black",
62
65
  show_lines=True,
63
66
  box=box.ROUNDED,
64
67
  caption=f"Registered Services from Server '{server}' @ Platform - {url}",
@@ -116,7 +119,7 @@ def display_registered_svcs(service: str, server: str , url: str,
116
119
  # token = a_client.create_egeria_bearer_token(username, password)
117
120
  svc_list = a_client.list_registered_svcs(service)
118
121
 
119
- with console.pager():
122
+ with console.pager(styles=True):
120
123
  console.print(generate_table(svc_list))
121
124
 
122
125
  except (InvalidParameterException, PropertyServerException, UserNotAuthorizedException) as e:
@@ -46,7 +46,11 @@ def display_list(type_name:str, server: str, url: str ,
46
46
  """Make a new table."""
47
47
  table = Table(
48
48
  title=f"Relationship types for: {type_name} @ {time.asctime()}",
49
+ style="bold white on black",
50
+ row_styles=["bold white on black"],
49
51
  header_style="white on dark_blue",
52
+ title_style="bold white on black",
53
+ caption_style="white on black",
50
54
  show_lines=True,
51
55
  box=box.ROUNDED,
52
56
  caption=f"list for Server '{server}' @ Platform - {url}",
@@ -103,7 +107,7 @@ def display_list(type_name:str, server: str, url: str ,
103
107
  try:
104
108
 
105
109
  console = Console(record=True)
106
- with console.pager():
110
+ with console.pager(styles=True):
107
111
  console.print(generate_table(type_name))
108
112
  if save_output:
109
113
  console.save_html("projects.html")
@@ -44,8 +44,11 @@ def display_tech_types(search_string:str, server: str,
44
44
  """Make a new table."""
45
45
  table = Table(
46
46
  title=f"Technology Templates for: {url} @ {time.asctime()}",
47
- # style = "black on grey66",
47
+ style="bold white on black",
48
+ row_styles=["bold white on black"],
48
49
  header_style="white on dark_blue",
50
+ title_style="bold white on black",
51
+ caption_style="white on black",
49
52
  show_lines=True,
50
53
  box=box.ROUNDED,
51
54
  caption=f"Templates from Server '{server}' @ Platform - {url}",
@@ -106,7 +109,7 @@ def display_tech_types(search_string:str, server: str,
106
109
 
107
110
  try:
108
111
  console = Console()
109
- with console.pager():
112
+ with console.pager(styles=True):
110
113
  console.print(generate_table())
111
114
 
112
115
  except (InvalidParameterException, PropertyServerException, UserNotAuthorizedException) as e:
@@ -49,8 +49,11 @@ def display_tech_types(search_string:str, server: str, url: str, username: str,
49
49
  """Make a new table."""
50
50
  table = Table(
51
51
  title=f"Technology Types for: {url} @ {time.asctime()}",
52
- # style = "black on grey66",
52
+ style="bold white on black",
53
+ row_styles=["bold white on black"],
53
54
  header_style="white on dark_blue",
55
+ title_style="bold white on black",
56
+ caption_style="white on black",
54
57
  show_lines=True,
55
58
  box=box.ROUNDED,
56
59
  caption=f"Technology Types from Server '{server}' @ Platform - {url}",
@@ -86,7 +89,7 @@ def display_tech_types(search_string:str, server: str, url: str, username: str,
86
89
 
87
90
  try:
88
91
  console = Console()
89
- with console.pager():
92
+ with console.pager(styles=True):
90
93
  console.print(generate_table())
91
94
 
92
95
  except (InvalidParameterException, PropertyServerException, UserNotAuthorizedException) as e:
@@ -48,7 +48,11 @@ def display_values(property_name: str, type_name: str, server: str, url: str,
48
48
  """Make a new table."""
49
49
  table = Table(
50
50
  title=f"Valid Metadata Values for Property: {property_name} of type {type_name} @ {time.asctime()}",
51
+ style="bold white on black",
52
+ row_styles=["bold white on black"],
51
53
  header_style="white on dark_blue",
54
+ title_style="bold white on black",
55
+ caption_style="white on black",
52
56
  show_lines=True,
53
57
  box=box.ROUNDED,
54
58
  caption=f"Valid Metadata Values for Server '{server}' @ Platform - {url}",
@@ -101,7 +105,7 @@ def display_values(property_name: str, type_name: str, server: str, url: str,
101
105
  # time.sleep(2)
102
106
  # live.update(generate_table())
103
107
  console = Console(record=True)
104
- with console.pager():
108
+ with console.pager(styles=True):
105
109
  console.print(generate_table(property_name, type_name))
106
110
  if save_output:
107
111
  console.save_html("valid-metadata-values.html")
@@ -79,7 +79,7 @@ def tech_viewer(tech_name: str, server_name:str, platform_url:str, user:str, use
79
79
  if type(tech_elements) is str:
80
80
  console.print(f"No elements found for {tech_name}")
81
81
  sys.exit(1)
82
- tree = Tree(f"Deployed Technology Type: {tech_name}", style="bold bright_white", guide_style="bold bright_blue")
82
+ tree = Tree(f"Deployed Technology Type: {tech_name}", style="bold bright_white on black", guide_style="bold bright_blue")
83
83
  note: str =" "
84
84
  for element in tech_elements:
85
85
  header = element['elementHeader']
@@ -107,7 +107,7 @@ def tech_viewer(tech_name: str, server_name:str, platform_url:str, user:str, use
107
107
  note += (f"\t* Type: {interfaces['arrayValues']['propertyValueMap'][str(i)]['typeName']}"
108
108
  f"\tName: {interfaces['arrayValues']['propertiesAsStrings'][str(i)]}\n"
109
109
  )
110
- note_md = Panel.fit(Markdown(note), style = 'bold bright_white')
110
+ note_md = Panel.fit(Markdown(note), style = 'bold bright_white on black')
111
111
  t = tree.add(note_md)
112
112
 
113
113
  else:
@@ -29,7 +29,7 @@ EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
29
29
  EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
30
30
 
31
31
 
32
- def main():
32
+ def main(ep: str):
33
33
 
34
34
  disable_ssl_warnings = True
35
35
  console = Console(width=200)
@@ -40,11 +40,11 @@ def main():
40
40
 
41
41
  # Define the Kafka consumer configuration.
42
42
  config = {
43
- 'bootstrap.servers': EGERIA_KAFKA_ENDPOINT, # replace with your Kafka broker(s)
43
+ 'bootstrap.servers': ep, # replace with your Kafka broker(s)
44
44
  'group.id': f"view_asset_events:{current_time}", # replace with your consumer group
45
45
  'auto.offset.reset': earliest_latest # can be set to 'earliest' or 'latest'
46
46
  }
47
-
47
+ print(f"Kafka config is {json.dumps(config)}")
48
48
  # Initialize a Kafka consumer.
49
49
  consumer = Consumer(config)
50
50
 
@@ -53,7 +53,7 @@ def main():
53
53
 
54
54
  try:
55
55
  while True:
56
- msg = consumer.poll(1.0) # timeout set to 1 second
56
+ msg = consumer.poll(2.0) # timeout set to 1 second
57
57
 
58
58
  if msg is None:
59
59
  continue
@@ -78,7 +78,7 @@ def main():
78
78
  console.rule(f"\tMessage TimeStamp: {event_time}\t eventType: {event_type}\t typeName: {type_name}\t guid: {guid}")
79
79
  msg = (
80
80
 
81
- f"properties: \n{props}\n\n")
81
+ f"properties: \n[bright white on black]{props}\n\n")
82
82
  msg = Markdown(msg)
83
83
 
84
84
  console.print(msg)
@@ -87,4 +87,11 @@ def main():
87
87
  consumer.close()
88
88
 
89
89
  if __name__ == "__main__":
90
- main()
90
+ parser = argparse.ArgumentParser()
91
+
92
+ parser.add_argument("--ep", help="Endpoint to connect to")
93
+ args = parser.parse_args()
94
+
95
+ ep = args.ep if args.ep is not None else EGERIA_KAFKA_ENDPOINT
96
+
97
+ main(ep)
@@ -49,8 +49,11 @@ def display_status_engine_actions(server: str, url: str, user: str, user_pass:st
49
49
  """Make a new table."""
50
50
  table = Table(
51
51
  title=f"Engine Action Status for Platform {url} @ {time.asctime()}",
52
- # style = "black on grey66",
52
+ style="bold white on black",
53
+ row_styles=["bold white on black"],
53
54
  header_style="white on dark_blue",
55
+ title_style="bold white on black",
56
+ caption_style="white on black",
54
57
  show_lines=True,
55
58
  box=box.ROUNDED,
56
59
  caption=f"Engine Status for Server '{server}' @ Platform - {url}",
@@ -47,8 +47,11 @@ def display_gov_actions_status(server: str, url: str, username: str, user_pass:s
47
47
  """Make a new table."""
48
48
  table = Table(
49
49
  title=f"Governance Engine Status @ {time.asctime()}",
50
- # style = "black on grey66",
50
+ style="bold white on black",
51
+ row_styles=["bold white on black"],
51
52
  header_style="white on dark_blue",
53
+ title_style="bold white on black",
54
+ caption_style="white on black",
52
55
  show_lines=True,
53
56
  box=box.ROUNDED,
54
57
  caption=f"Server: '{server_name}' running on {url}",
@@ -44,8 +44,11 @@ def display_status(server: str, url: str, username: str, user_pass:str):
44
44
  """Make a new table."""
45
45
  table = Table(
46
46
  title=f"Server Status for Platform - {time.asctime()}",
47
- # style = "black on grey66",
47
+ style="bold white on black",
48
+ row_styles=["bold white on black"],
48
49
  header_style="white on dark_blue",
50
+ title_style="bold white on black",
51
+ caption_style="white on black",
49
52
  caption=f"Status of Platforms - '{url}'",
50
53
  show_lines=True,
51
54
  # expand=True
@@ -85,12 +88,12 @@ def display_status(server: str, url: str, username: str, user_pass:str):
85
88
  server_type = server.get("serverType"," ")
86
89
  server_status = server.get("serverActiveStatus","UNKNOWN")
87
90
  if server_status in("RUNNING", "STARTING"):
88
- status_flag = "[green]"
91
+ status_flag = "[bright green]"
89
92
  elif server_status in ("INACTIVE", "STOPPING"):
90
- status_flag = "[red]"
93
+ status_flag = "[bright red]"
91
94
  else:
92
95
  server_status = "UNKNOWN"
93
- status_flag = "[yellow]"
96
+ status_flag = "[bright yellow]"
94
97
 
95
98
  serv = f"{status_flag}{server_types[server_type]}: {server_name}\n"
96
99
  server_list = server_list + serv
@@ -46,8 +46,11 @@ def display_status(server: str, url: str, username: str, user_pass:str):
46
46
  """Make a new table."""
47
47
  table = Table(
48
48
  title=f"Server Status for Platform - {time.asctime()}",
49
- # style = "black on grey66",
49
+ style="bold white on black",
50
+ row_styles=["bold white on black"],
50
51
  header_style="white on dark_blue",
52
+ title_style="bold white on black",
53
+ caption_style="white on black",
51
54
  caption=f"Server Status for Platform - '{url}'",
52
55
  show_lines=True,
53
56
  # expand=True
@@ -41,8 +41,11 @@ def test_display_status(server: str, url: str , username: str , user_pass:str):
41
41
  """Make a new table."""
42
42
  table = Table(
43
43
  title=f"Server Status for Platform - {time.asctime()}",
44
- # style = "black on grey66",
44
+ style="bold white on black",
45
+ row_styles=["bold white on black"],
45
46
  header_style="white on dark_blue",
47
+ title_style="bold white on black",
48
+ caption_style="white on black",
46
49
  caption=f"Server Status for Platform - '{url}'",
47
50
  # show_lines=True,
48
51
  )
@@ -1922,8 +1922,11 @@ class AutomatedCuration(Client):
1922
1922
  return response
1923
1923
 
1924
1924
  async def _async_add_catalog_target(self, integ_connector_guid: str, metadata_element_guid: str,
1925
- catalog_target_name: str, metadata_src_qual_name: str = None,
1926
- config_properties: dict = None, server: str = None) -> str:
1925
+ catalog_target_name: str, connection_name: str= None,
1926
+ metadata_src_qual_name: str = None,
1927
+ config_properties: dict = None, template_properties: dict = None,
1928
+ permitted_sync: str = "BOTH_DIRECTIONS", delete_method: str = "ARCHIVE",
1929
+ server: str = None) -> str:
1927
1930
  """ Add a catalog target to an integration connector and .
1928
1931
  Async version.
1929
1932
 
@@ -1935,12 +1938,21 @@ class AutomatedCuration(Client):
1935
1938
  The specific metadata element target we want to retrieve.
1936
1939
  catalog_target_name : dict
1937
1940
  Name of the catalog target to add.
1941
+ connection_name: str, default = None
1942
+ Optional name of connection to use for this catalog target when multiple connections defined.
1938
1943
  metadata_src_qual_name: str
1939
1944
  The qualified name of the metadata source for the catalog target
1940
1945
  config_properties: dict
1941
1946
  Configuration properties for the catalog target
1947
+ template_properties: dict
1948
+ Template properties to pass
1949
+ permitted_sync: str, default = BOTH_DIRECTIONS
1950
+ Direction the metadata is allowed to flow (BOTH_DIRECTIONS, FROM_THIRD_PARTH, TO_THIRD_PARTY
1951
+ delete_method: str, default = ARCHIVE
1952
+ Controls the type of delete. Use ARCHIVE for lineage considerations. Alternative is SOFT_DELETE.
1942
1953
  server: str, optional
1943
1954
  The name of the server. If None, will use the default server specified in the instance will be used.
1955
+
1944
1956
  Returns:
1945
1957
  -------
1946
1958
  Relationship GUID for the catalog target,
@@ -1959,14 +1971,21 @@ class AutomatedCuration(Client):
1959
1971
  url = (f"{self.platform_url}/servers/{server}/api/open-metadata/automated-curation/integration-connectors/"
1960
1972
  f"{integ_connector_guid}/catalog-targets/{metadata_element_guid}")
1961
1973
  body = {"catalogTargetName": catalog_target_name, "metadataSourceQualifiedName": metadata_src_qual_name,
1962
- "configProperties": config_properties}
1974
+ "configProperties": config_properties, "templateProperties": template_properties,
1975
+ "connectionName": connection_name, "permittedSynchronization": permitted_sync,
1976
+ "deleteMethod": delete_method
1977
+ }
1978
+
1963
1979
  response = await self._async_make_request("POST", url, body)
1964
1980
  return response.json().get('guid', "No Guid returned")
1965
1981
 
1966
- def add_catalog_target(self, integ_connector_guid: str, metadata_element_guid: str, catalog_target_name: str,
1967
- metadata_src_qual_name: str = None, config_properties: dict = None,
1968
- server: str = None) -> str:
1969
- """ Add a catalog target to an integration connector.
1982
+ def add_catalog_target(self, integ_connector_guid: str, metadata_element_guid: str,
1983
+ catalog_target_name: str, connection_name: str= None,
1984
+ metadata_src_qual_name: str = None,
1985
+ config_properties: dict = None, template_properties: dict = None,
1986
+ permitted_sync: str = "BOTH_DIRECTIONS", delete_method: str = "ARCHIVE",
1987
+ server: str = None) -> str:
1988
+ """ Add a catalog target to an integration connector and .
1970
1989
 
1971
1990
  Parameters:
1972
1991
  ----------
@@ -1976,15 +1995,24 @@ class AutomatedCuration(Client):
1976
1995
  The specific metadata element target we want to retrieve.
1977
1996
  catalog_target_name : dict
1978
1997
  Name of the catalog target to add.
1998
+ connection_name: str, default = None
1999
+ Optional name of connection to use for this catalog target when multiple connections defined.
1979
2000
  metadata_src_qual_name: str
1980
2001
  The qualified name of the metadata source for the catalog target
1981
2002
  config_properties: dict
1982
2003
  Configuration properties for the catalog target
2004
+ template_properties: dict
2005
+ Template properties to pass
2006
+ permitted_sync: str, default = BOTH_DIRECTIONS
2007
+ Direction the metadata is allowed to flow (BOTH_DIRECTIONS, FROM_THIRD_PARTH, TO_THIRD_PARTY
2008
+ delete_method: str, default = ARCHIVE
2009
+ Controls the type of delete. Use ARCHIVE for lineage considerations. Alternative is SOFT_DELETE.
1983
2010
  server: str, optional
1984
2011
  The name of the server. If None, will use the default server specified in the instance will be used.
2012
+
1985
2013
  Returns:
1986
2014
  -------
1987
- None
2015
+ Relationship GUID for the catalog target,
1988
2016
 
1989
2017
  Raises:
1990
2018
  ------
@@ -1996,28 +2024,42 @@ class AutomatedCuration(Client):
1996
2024
  loop = asyncio.get_event_loop()
1997
2025
  response = loop.run_until_complete(
1998
2026
  self._async_add_catalog_target(integ_connector_guid, metadata_element_guid, catalog_target_name,
1999
- metadata_src_qual_name, config_properties, server))
2027
+ connection_name, metadata_src_qual_name, config_properties,
2028
+ template_properties, permitted_sync, delete_method,
2029
+ server))
2000
2030
  return response
2001
2031
 
2002
2032
  async def _async_update_catalog_target(self, relationship_guid: str,
2003
- catalog_target_name: str, metadata_src_qual_name: str = None,
2004
- config_properties: dict = None, server: str = None) -> None:
2033
+ catalog_target_name: str, connection_name: str = None,
2034
+ metadata_src_qual_name: str = None,
2035
+ config_properties: dict = None, template_properties: dict = None,
2036
+ permitted_sync: str = "BOTH_DIRECTIONS", delete_method: str = "ARCHIVE",
2037
+ server: str = None
2038
+ ) -> None:
2005
2039
  """ Update a catalog target to an integration connector.
2006
2040
  Async version.
2007
2041
 
2008
2042
  Parameters:
2009
2043
  ----------
2010
2044
  relationship_guid: str
2011
- The GUID (Globally Unique Identifier) of the integration connector used to retrieve catalog targets.
2012
-
2045
+ The GUID (Globally Unique Identifier) of the relationship used to retrieve catalog targets.
2013
2046
  catalog_target_name : dict
2014
2047
  Name of the catalog target to add.
2048
+ connection_name: str, default = None
2049
+ Optional name of connection to use for this catalog target when multiple connections defined.
2015
2050
  metadata_src_qual_name: str
2016
2051
  The qualified name of the metadata source for the catalog target
2017
2052
  config_properties: dict
2018
2053
  Configuration properties for the catalog target
2054
+ template_properties: dict
2055
+ Template properties to pass
2056
+ permitted_sync: str, default = BOTH_DIRECTIONS
2057
+ Direction the metadata is allowed to flow (BOTH_DIRECTIONS, FROM_THIRD_PARTH, TO_THIRD_PARTY
2058
+ delete_method: str, default = ARCHIVE
2059
+ Controls the type of delete. Use ARCHIVE for lineage considerations. Alternative is SOFT_DELETE.
2019
2060
  server: str, optional
2020
2061
  The name of the server. If None, will use the default server specified in the instance will be used.
2062
+
2021
2063
  Returns:
2022
2064
  -------
2023
2065
  None
@@ -2035,42 +2077,49 @@ class AutomatedCuration(Client):
2035
2077
  url = (f"{self.platform_url}/servers/{server}/api/open-metadata/automated-curation/catalog-targets/"
2036
2078
  f"{relationship_guid}/update")
2037
2079
  body = {"catalogTargetName": catalog_target_name, "metadataSourceQualifiedName": metadata_src_qual_name,
2038
- "configProperties": config_properties}
2039
- response = await self._async_make_request("POST", url, body)
2080
+ "configProperties": config_properties, "templateProperties": template_properties,
2081
+ "connectionName": connection_name, "permittedSynchronization": permitted_sync,
2082
+ "deleteMethod": delete_method
2083
+ }
2084
+ await self._async_make_request("POST", url, body)
2040
2085
  return
2041
2086
 
2042
- def update_catalog_target(self, relationship_guid: str, catalog_target_name: str,
2043
- metadata_src_qual_name: str = None, config_properties: dict = None,
2044
- server: str = None) -> None:
2045
- """ Add a catalog target to an integration connector.
2087
+ def update_catalog_target(self, relationship_guid: str,
2088
+ catalog_target_name: str, connection_name: str = None,
2089
+ metadata_src_qual_name: str = None,
2090
+ config_properties: dict = None, template_properties: dict = None,
2091
+ permitted_sync: str = "BOTH_DIRECTIONS", delete_method: str = "ARCHIVE",
2092
+ server: str = None
2093
+ ) -> None:
2094
+ """ Update a catalog target to an integration connector.
2046
2095
 
2047
- Parameters:
2048
- ----------
2049
- relationship_guid: str
2050
- The GUID (Globally Unique Identifier) of the integration connector used to retrieve catalog targets.
2051
- catalog_target_name : dict
2052
- Name of the catalog target to add.
2053
- metadata_src_qual_name: str
2054
- The qualified name of the metadata source for the catalog target
2055
- config_properties: dict
2056
- Configuration properties for the catalog target
2057
- server: str, optional
2058
- The name of the server. If None, will use the default server specified in the instance will be used.
2059
- Returns:
2060
- -------
2061
- None
2096
+ Parameters:
2097
+ ----------
2098
+ relationship_guid: str
2099
+ The GUID (Globally Unique Identifier) of the relationship used to retrieve catalog targets.
2100
+ catalog_target_name : dict
2101
+ Name of the catalog target to add.
2102
+ connection_name: str, default = None
2103
+ Optional name of connection to use for this catalog target when multiple connections defined.
2104
+ metadata_src_qual_name: str
2105
+ The qualified name of the metadata source for the catalog target
2106
+ config_properties: dict
2107
+ Configuration properties for the catalog target
2108
+ template_properties: dict
2109
+ Template properties to pass
2110
+ permitted_sync: str, default = BOTH_DIRECTIONS
2111
+ Direction the metadata is allowed to flow (BOTH_DIRECTIONS, FROM_THIRD_PARTH, TO_THIRD_PARTY
2112
+ delete_method: str, default = ARCHIVE
2113
+ Controls the type of delete. Use ARCHIVE for lineage considerations. Alternative is SOFT_DELETE.
2114
+ server: str, optional
2115
+ """
2062
2116
 
2063
- Raises:
2064
- ------
2065
- InvalidParameterException: If the API response indicates an error (non-200 status code),
2066
- this exception is raised with details from the response content.
2067
- PropertyServerException: If the API response indicates a server side error.
2068
- UserNotAuthorizedException:
2069
- """
2070
2117
  loop = asyncio.get_event_loop()
2071
2118
  loop.run_until_complete(
2072
2119
  self._async_update_catalog_target(relationship_guid, catalog_target_name,
2073
- metadata_src_qual_name, config_properties, server))
2120
+ connection_name,metadata_src_qual_name,
2121
+ config_properties, template_properties,permitted_sync,
2122
+ delete_method,server))
2074
2123
  return
2075
2124
 
2076
2125
  async def _async_remove_catalog_target(self, relationship_guid: str, server: str = None) -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyegeria
3
- Version: 0.5.5.21
3
+ Version: 0.5.5.23
4
4
  Summary: A python client for Egeria
5
5
  Home-page: https://github.com/odpi/egeria-python
6
6
  License: Apache 2.0
@@ -2,33 +2,33 @@ examples/doc_samples/Create_Collection_Sample.py,sha256=D8nhc4qLXIzAqVdJQjmFIS-j
2
2
  examples/doc_samples/Create_Sustainability_Collection_Sample.py,sha256=iLBm1LwRLi42Gayyb-wcWZ5NySQ6sc4kVSmwIAzP2Po,5049
3
3
  examples/widgets/catalog_user/README.md,sha256=aCCVo7iqyE-XGEvmoYXnkIGM0VskF95JTj6Egzec7LM,883
4
4
  examples/widgets/catalog_user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- examples/widgets/catalog_user/list_assets.py,sha256=H-iy5yh3okFHhEb6nIKtuEkY3ROen8bCiINRgdj1BkI,4789
5
+ examples/widgets/catalog_user/list_assets.py,sha256=rHa94xmFCuHQzCbqnAWr0cXujgeDnW5cMROmmuAI_0g,4800
6
6
  examples/widgets/catalog_user/view_asset_graph.py,sha256=vVJ3p30zU_jrQXqRFjUzs-XdRJWaaVSuFUsZSt_D4Cg,10561
7
- examples/widgets/catalog_user/view_collection.py,sha256=qfxK-HImDwPKyVCFF22DuDYHwqneKs_9uI1FSBpW4nU,4359
8
- examples/widgets/catalog_user/view_glossary.py,sha256=OIOgPipbiJGlZQzrH9d-GBseMGfIGJsYmW1ndRPOMeA,5036
7
+ examples/widgets/catalog_user/view_collection.py,sha256=JVf31zL01JH2k5gry4RF2zFCSyuYmu2TS2KuCmgxi7s,4353
8
+ examples/widgets/catalog_user/view_glossary.py,sha256=j5rc31aYDAWHwj-f6ScZb2eJvfJlN7Xltjp31GQ2RoY,5116
9
9
  examples/widgets/developer/README.md,sha256=nxDnfr3BCiGgW5G1VxWxiwUWJXIe5wreNuUeRyIt_hY,1343
10
10
  examples/widgets/developer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- examples/widgets/developer/get_guid_info.py,sha256=CVNq56pNFC1kKk3ZnnLJsDx83e1WwNGIgHtscNNgY_I,3545
12
- examples/widgets/developer/get_tech_details.py,sha256=gLhuvUo1MP-qJdal38b6duOclbixWbDk4ySZqM8EBtQ,5386
13
- examples/widgets/developer/list_asset_types.py,sha256=waXn2DW9dHfRLnHYdCeGrafwPcAv029ZFAYTy51U40g,3791
14
- examples/widgets/developer/list_registered_services.py,sha256=Ch8gtvhNIE-XIt2Gr6lLYGJKJ6zSX-mkgQ7HhQ-EMpA,5897
15
- examples/widgets/developer/list_relationship_types.py,sha256=F2uYEgPPOBqRilTJU980rIi4fdgPaFmeUqDsSeoLqA4,5149
16
- examples/widgets/developer/list_tech_templates.py,sha256=xP7X1TLkS8mIDzBnk_bQ94_Gw1YtZlNFlwcYF8MVusw,5732
17
- examples/widgets/developer/list_tech_types.py,sha256=SJF3KKsuwdoH-Sg0puh-r76i8f9LhkHdDhE8cmWOhks,4152
18
- examples/widgets/developer/list_valid_metadata_values.py,sha256=jBKiM_xSihYvzkveDgPM6ZIELkdGqVYBFaVLVl4ujv8,5531
11
+ examples/widgets/developer/get_guid_info.py,sha256=Ci58hIFUDWY8z_yHIN7fghGs6VM410_8-iaMRcbeThc,3593
12
+ examples/widgets/developer/get_tech_details.py,sha256=MIwbopr4hLBwxCd_zWBm7MS8XOuuxxhizXsSDwSvR7U,5405
13
+ examples/widgets/developer/list_asset_types.py,sha256=aHueMCVHmvrn331kgFrEzvTOxBf0dUIt7PZhQEvTqfY,3897
14
+ examples/widgets/developer/list_registered_services.py,sha256=LziqjzXshNcpZvha4nm5_NIHfAmD44kudzDMmQHHvd0,6047
15
+ examples/widgets/developer/list_relationship_types.py,sha256=uRiLTy4Gk1Cryxvqj5Bo8f-Ll55SMC_XEzm8TsH0JqQ,5340
16
+ examples/widgets/developer/list_tech_templates.py,sha256=ldwI834WecQAWyAgqL7_7hxqzX7FnjhzHne3TIWy_Z4,5882
17
+ examples/widgets/developer/list_tech_types.py,sha256=b7zRg79c_x1kCGNT2HlcemCyuVKii7Z4KVZpHOxLgAQ,4302
18
+ examples/widgets/developer/list_valid_metadata_values.py,sha256=HIWV5nA5KoKhGrF4smF_gNAo0H_iBwCWr06-_o9XpyA,5722
19
19
  examples/widgets/operational/README.md,sha256=PJsSDcvMv6E6og6y-cwvxFX5lhCII0UCwgKiM1T17MQ,1595
20
20
  examples/widgets/operational/__init__.py,sha256=8ebdyTD7i-XXyZr0vDx6jnXalE6QjhCvu7n6YXxwgL0,112
21
- examples/widgets/operational/get_tech_type_elements.py,sha256=XotwTj3bNWLJBE7yTr2MG9Llm5GmHGLoBAUtNYu9QfM,5837
22
- examples/widgets/operational/get_tech_type_template.py,sha256=4dL7mm2BMftTysoMpajRgUlisw1cjvx_w2CT2MwPotU,5857
21
+ examples/widgets/operational/get_tech_type_elements.py,sha256=_wSZOShJ17kuMlgh8xC-iAzByi1A0JeB4cmEiAL87M0,5846
22
+ examples/widgets/operational/get_tech_type_template.py,sha256=qIb-JYcoI_YR7NHUKH7TSdq56QI1H4QuyqWTvldNKNo,5866
23
23
  examples/widgets/operational/refresh_integration_daemon.py,sha256=7GF_xzO83nhvTaxJR2DMI7fsHg6TA4xaIy7z8YNbSlk,2274
24
- examples/widgets/operational/view_asset_events.py,sha256=D_3jVN2PiTdXdvrUpo6f-m8E-MWXEG23-CQcHqyR2zs,3396
24
+ examples/widgets/operational/view_asset_events.py,sha256=XagfKloRfoeKO8-YOGBWJ4IPFdlUOB35tFmWJSDAbpg,3662
25
25
  examples/widgets/operational/view_coco_status.py,sha256=QloMgVcXL2Fx2XHyk71PKCwmzRfc_Q_cAvpyomcYi_Y,3322
26
- examples/widgets/operational/view_eng_action_status.py,sha256=5KHNKMSHxe4-nEIyLJjcaWUBrbV3JcP6ijri5KmmVaA,5969
27
- examples/widgets/operational/view_gov_eng_status.py,sha256=vcXUSNIuZNh2JxhtNHskmNLa7FnaHJj-tmWfuCvRdnw,4404
26
+ examples/widgets/operational/view_eng_action_status.py,sha256=Qj3ySRG58rsYFyFzgyxsHUMLclSMG3Qn3WQG2ERknMs,6108
27
+ examples/widgets/operational/view_gov_eng_status.py,sha256=6HI_cp_cOPptWYQ5WMoDdWctwwfzTqYLmJMOoIGb6ec,4543
28
28
  examples/widgets/operational/view_integ_daemon_status.py,sha256=jJouL-pePUL5EIm0LvpSd8lcRXqAsKa1GuP5qkFOj_M,7061
29
- examples/widgets/operational/view_platform_status.py,sha256=kRSOWhhcKUr5w5RWC2igYDTxQQjso200zGb0AOJS-XU,5499
30
- examples/widgets/operational/view_server_list.py,sha256=GVEZ9iMg85haZA3kHE6dZxTYI6Ph94wkC8zhwo5JiU0,4178
31
- examples/widgets/operational/view_server_status.py,sha256=kwJYe5iOrlfdGLlpAYWS29iBw9JkLOWPimZhMg6f_-Y,3877
29
+ examples/widgets/operational/view_platform_status.py,sha256=T4wS4wZAvzZ6GUmd1slNNfCFa9nSddxQH9sJeMly8dg,5659
30
+ examples/widgets/operational/view_server_list.py,sha256=nOPeMjUAxMqfv0aq5zZtgkKa5Yqo6wXdC3nImQQNRmI,4317
31
+ examples/widgets/operational/view_server_status.py,sha256=rjVMacuwTLwKZ_bmZ_2TkyZTY2QpiMRZM3MCX3ERHMc,4016
32
32
  examples/widgets/personal_organizer/README.md,sha256=ZheFhj_VoPMhcWjW3pGchHB0vH_A9PklSmrSkzKdrcQ,844
33
33
  examples/widgets/personal_organizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  examples/widgets/personal_organizer/get_my_profile.py,sha256=Xt2anVXadJdJDgmCJEb0I_rRfcZ44mMM0ltRrA9KZJM,4843
@@ -46,7 +46,7 @@ pyegeria/_globals.py,sha256=DF6851qHPpoDrY4w5JGmT-8zmMfVXf9MMG6nKlu-BYM,616
46
46
  pyegeria/_validators.py,sha256=DQuMsATRGxGSBtOrVtXlCgWXGhj6Nh-uqPtCsrUGLxk,12703
47
47
  pyegeria/action_author_omvs.py,sha256=m0wsfmyO-VxRDaPpACeIDw8eVAFu3RVbo45RPCUel9M,6340
48
48
  pyegeria/asset_catalog_omvs.py,sha256=Y-Eh0k-zkJNOChVlLbC2bsTSBVLWhk-0-ewCV4YlyDY,25802
49
- pyegeria/automated_curation_omvs.py,sha256=yp5d7D_nNRrx92MU8Z72zw5nloTzBDJVfxvwZrvlVWk,118212
49
+ pyegeria/automated_curation_omvs.py,sha256=jArTmCh7n3XDSc2ozoh6qftaqh2k2_U03JVQPv0bH5M,121625
50
50
  pyegeria/collection_manager_omvs.py,sha256=IyGCbqx2Blm0OwCsC2071EeoNWHXyWGl_6pEtacizAs,112642
51
51
  pyegeria/core_guids.py,sha256=JKziCsKhklbWRramQ0orRMNTudJXYB721a32TJegBl4,4320
52
52
  pyegeria/core_omag_server_config.py,sha256=16ld7aBTgO3gGhvFs-_yzwqPsatdCAiKYi005_2evZU,93096
@@ -63,8 +63,8 @@ pyegeria/server_operations.py,sha256=hEaU6YC0iNEQFvcXYvcE4J6BQKlqMJk33nViCNIEBE4
63
63
  pyegeria/tech_guids_22-07-2024 13:22.py,sha256=nsjPrCDf9gohdw3LRcO5-uwzBN_nMB7Re_vtDJIgaIY,4643
64
64
  pyegeria/utils.py,sha256=f8isUaKDy-GJxhwswWgP_bw6q1CUzBUNVcCtin8N1cA,5433
65
65
  pyegeria/valid_metadata_omvs.py,sha256=aisdRodIwJSkyArAzfm_sEnBELh69xE8k4Nea-vHu8M,36745
66
- pyegeria-0.5.5.21.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
67
- pyegeria-0.5.5.21.dist-info/METADATA,sha256=xQoHcI2Lv9o7IdWR6f7MZTVuhOU4F2l6WsRhYlLUjK4,2612
68
- pyegeria-0.5.5.21.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
69
- pyegeria-0.5.5.21.dist-info/entry_points.txt,sha256=WgNY6OkZlWQ5uwE_qtyfVyuOX-dnOKyH0cW2JlKRIJ0,2038
70
- pyegeria-0.5.5.21.dist-info/RECORD,,
66
+ pyegeria-0.5.5.23.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
67
+ pyegeria-0.5.5.23.dist-info/METADATA,sha256=UjZwgPTlMMELgqWNN54aOZd46hvpKpAFNCKqLeznlPQ,2612
68
+ pyegeria-0.5.5.23.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
69
+ pyegeria-0.5.5.23.dist-info/entry_points.txt,sha256=WgNY6OkZlWQ5uwE_qtyfVyuOX-dnOKyH0cW2JlKRIJ0,2038
70
+ pyegeria-0.5.5.23.dist-info/RECORD,,