msfabricpysdkcore 0.1.8__py3-none-any.whl → 0.2.1__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.
msfabricpysdkcore/item.py CHANGED
@@ -52,8 +52,11 @@ class Item:
52
52
  self.definition = resp_dict['definition']
53
53
  return resp_dict
54
54
 
55
+ def list_connections(self):
56
+ """List connections of an item in a workspace"""
57
+ return self.core_client.list_item_connections(workspace_id=self.workspace_id, item_id=self.id)
55
58
 
56
- def update(self, display_name = None, description = None, type = None, return_item="Default"):
59
+ def update(self, display_name = None, description = None, type = None, return_item=False):
57
60
  """Update the item"""
58
61
 
59
62
  resp_dict = self.core_client.update_item(workspace_id=self.workspace_id, item_id=self.id,
@@ -100,15 +103,49 @@ class Item:
100
103
  """Cancel a job instance ofjob the item"""
101
104
  return self.core_client.cancel_item_job_instance(workspace_id=self.workspace_id, item_id=self.id,
102
105
  job_instance_id=job_instance_id)
103
-
106
+
107
+ def create_item_schedule(self, job_type, configuration, enabled):
108
+ """Create a schedule for the job instance"""
109
+ return self.core_client.create_item_schedule(workspace_id=self.workspace_id,
110
+ item_id=self.id,
111
+ job_type=job_type,
112
+ configuration=configuration,
113
+ enabled=enabled)
114
+
104
115
  def get_item_job_instance(self, job_instance_id):
105
116
  """Get the job instance of the item"""
106
117
  return self.core_client.get_item_job_instance(workspace_id=self.workspace_id, item_id=self.id,
107
118
  job_instance_id=job_instance_id)
119
+ def get_item_schedule(self, job_type, schedule_id):
120
+ """Get the schedule for the job instance"""
121
+ return self.core_client.get_item_schedule(workspace_id=self.workspace_id,
122
+ item_id=self.id,
123
+ job_type=job_type,
124
+ schedule_id=schedule_id)
125
+
126
+ def list_item_job_instances(self):
127
+ """List all job instances for the job instance"""
128
+ return self.core_client.list_item_job_instances(workspace_id=self.workspace_id,
129
+ item_id=self.id)
130
+
131
+ def list_item_schedules(self, job_type):
132
+ """List all schedules for the job instance"""
133
+ return self.core_client.list_item_schedules(workspace_id=self.workspace_id,
134
+ item_id=self.id,
135
+ job_type=job_type)
108
136
 
109
137
  def run_on_demand_item_job(self, job_type, execution_data = None):
110
138
  return self.core_client.run_on_demand_item_job(workspace_id=self.workspace_id, item_id=self.id,
111
139
  job_type=job_type, execution_data=execution_data)
140
+
141
+ def update_item_schedule(self, job_type, schedule_id, configuration, enabled):
142
+ """Update the schedule for the job instance"""
143
+ return self.core_client.update_item_schedule(workspace_id=self.workspace_id,
144
+ item_id=self.id,
145
+ job_type=job_type,
146
+ schedule_id=schedule_id,
147
+ configuration=configuration,
148
+ enabled=enabled)
112
149
 
113
150
 
114
151
  # External Data Shares
@@ -51,4 +51,5 @@ class JobInstance:
51
51
  """Cancel the job instance"""
52
52
  return self.core_client.cancel_item_job_instance(workspace_id=self.workspace_id,
53
53
  item_id=self.item_id,
54
- job_instance_id=self.id)
54
+ job_instance_id=self.id)
55
+
@@ -40,9 +40,7 @@ class SparkJobDefinition(Item):
40
40
  definition=item_dict.get('definition', None), description=item_dict.get('description', ""), core_client=core_client)
41
41
 
42
42
  def get_definition(self, format=None):
43
- resp_dict = self.core_client.get_spark_job_definition_definition(self.workspace_id, self.id, format=format)
44
- self.definition = resp_dict['definition']
45
- return resp_dict
43
+ return super().get_definition(type="sparkJobDefinitions", format=format)
46
44
 
47
45
  def update_definition(self, definition):
48
46
  return self.core_client.update_spark_job_definition_definition(self.workspace_id, self.id, definition)
@@ -62,6 +60,25 @@ class Warehouse(Item):
62
60
  properties=item_dict.get('properties', None),
63
61
  definition=item_dict.get('definition', None), description=item_dict.get('description', ""), core_client=core_client)
64
62
 
63
+ class KQLDashboard(Item):
64
+ """Class to represent a kql dashboard in Microsoft Fabric"""
65
+
66
+ def __init__(self, id, display_name, type, workspace_id, core_client, properties = None, definition=None, description=""):
67
+ super().__init__(id, display_name, type, workspace_id, core_client, properties, definition, description)
68
+
69
+ def from_dict(item_dict, core_client):
70
+ return KQLDashboard(id=item_dict['id'], display_name=item_dict['displayName'], type=item_dict['type'], workspace_id=item_dict['workspaceId'],
71
+ properties=item_dict.get('properties', None),
72
+ definition=item_dict.get('definition', None), description=item_dict.get('description', ""), core_client=core_client)
73
+
74
+ def get_definition(self, format=None):
75
+ """Method to get the definition of the kql dashboard"""
76
+ return super().get_definition(type="kqlDashboards", format=format)
77
+
78
+ def update_definition(self, definition):
79
+ """Method to update the definition of the kql dashboard"""
80
+ return self.core_client.update_item_definition(self.workspace_id, self.id, definition, type="kqlDashboards")
81
+
65
82
  class KQLDatabase(Item):
66
83
  """Class to represent a kql database in Microsoft Fabric"""
67
84
 
@@ -83,6 +100,15 @@ class KQLQueryset(Item):
83
100
  return KQLQueryset(id=item_dict['id'], display_name=item_dict['displayName'], type=item_dict['type'], workspace_id=item_dict['workspaceId'],
84
101
  properties=item_dict.get('properties', None),
85
102
  definition=item_dict.get('definition', None), description=item_dict.get('description', ""), core_client=core_client)
103
+
104
+ def get_definition(self, format=None):
105
+ """Method to get the definition of the kql queryset"""
106
+ return super().get_definition(type="kqlQuerysets", format=format)
107
+
108
+ def update_definition(self, definition, update_metadata=None):
109
+ """Method to update the definition of the kql queryset"""
110
+ return self.core_client.update_item_definition(self.workspace_id, self.id, definition, type="kqlQuerysets",
111
+ update_metadata=update_metadata)
86
112
 
87
113
  class Eventstream(Item):
88
114
  """Class to represent a eventstream in Microsoft Fabric"""
@@ -94,7 +120,41 @@ class Eventstream(Item):
94
120
  return Eventstream(id=item_dict['id'], display_name=item_dict['displayName'], type=item_dict['type'], workspace_id=item_dict['workspaceId'],
95
121
  properties=item_dict.get('properties', None),
96
122
  definition=item_dict.get('definition', None), description=item_dict.get('description', ""), core_client=core_client)
123
+
124
+ class MirroredDatabase(Item):
125
+ """Class to represent a mirrored database in Microsoft Fabric"""
126
+
127
+ def __init__(self, id, display_name, type, workspace_id, core_client, properties = None, definition=None, description=""):
128
+ super().__init__(id, display_name, type, workspace_id, core_client, properties, definition, description)
129
+
130
+ def from_dict(item_dict, core_client):
131
+ return MirroredDatabase(id=item_dict['id'], display_name=item_dict['displayName'], type=item_dict['type'], workspace_id=item_dict['workspaceId'],
132
+ properties=item_dict.get('properties', None),
133
+ definition=item_dict.get('definition', None), description=item_dict.get('description', ""), core_client=core_client)
97
134
 
135
+ def get_definition(self):
136
+ """Method to get the definition of the mirrored database"""
137
+ return super().get_definition(type="mirroredDatabases")
138
+
139
+ def update_definition(self, definition):
140
+ """Method to update the definition of the mirrored database"""
141
+ return self.core_client.update_item_definition(self.workspace_id, self.id, definition, type="mirroredDatabases")
142
+
143
+ def get_mirrored_database_definition(self, mirrored_database_id):
144
+ return self.core_client.get_mirrored_database_definition(workspace_id=self.id,
145
+ mirrored_database_id=mirrored_database_id)
146
+ def get_mirroring_status(self):
147
+ return self.core_client.get_mirroring_status(workspace_id=self.workspace_id, mirrored_database_id=self.id)
148
+
149
+ def get_tables_mirroring_status(self):
150
+ return self.core_client.get_tables_mirroring_status(workspace_id=self.workspace_id, mirrored_database_id=self.id)
151
+
152
+ def start_mirroring(self):
153
+ return self.core_client.start_mirroring(workspace_id=self.workspace_id, mirrored_database_id=self.id)
154
+
155
+ def stop_mirroring(self):
156
+ return self.core_client.stop_mirroring(workspace_id=self.workspace_id, mirrored_database_id=self.id)
157
+
98
158
  class MLExperiment(Item):
99
159
  """Class to represent a ml experiment in Microsoft Fabric"""
100
160
 
@@ -130,9 +190,7 @@ class Notebook(Item):
130
190
 
131
191
  def get_definition(self, format=None):
132
192
  """Method to get the definition of the notebook"""
133
- definition = self.core_client.get_item_definition(self.workspace_id, self.id, type="notebooks", format=format)
134
- self.definition = definition
135
- return definition
193
+ return super().get_definition(type="notebooks", format=format)
136
194
 
137
195
  def update_definition(self, definition):
138
196
  """Method to update the definition of the notebook"""
@@ -151,8 +209,7 @@ class Report(Item):
151
209
 
152
210
  def get_definition(self, type=None, format=None):
153
211
  """Method to get the definition of the report"""
154
- self.definition = self.core_client.get_item_definition(self.workspace_id, self.id, type="reports", format=format)
155
- return self.definition
212
+ return super().get_definition(type="reports", format=format)
156
213
 
157
214
  def update_definition(self, definition):
158
215
  """Method to update the definition of the report"""
@@ -171,8 +228,7 @@ class SemanticModel(Item):
171
228
 
172
229
  def get_definition(self, format=None):
173
230
  """Method to get the definition of the semantic model"""
174
- self.definition = self.core_client.get_item_definition(self.workspace_id, self.id, type="semanticModels", format=format)
175
- return self.definition
231
+ return super().get_definition(type="semanticModels", format=format)
176
232
 
177
233
  def update_definition(self, definition):
178
234
  """Method to update the definition of the semantic model"""
@@ -201,11 +201,15 @@ class Workspace:
201
201
  return self.core_client.list_items(workspace_id=self.id, with_properties=with_properties,
202
202
  type=type)
203
203
 
204
+ def list_item_connections(self, item_id):
205
+ """List connections of an item in a workspace"""
206
+ return self.core_client.list_item_connections(workspace_id=self.id, item_id=item_id)
207
+
204
208
  def get_item_definition(self, item_id, type = None, format = None):
205
209
  """Get the definition of an item from a workspace"""
206
210
  return self.core_client.get_item_definition(workspace_id=self.id, item_id=item_id, type=type, format=format)
207
211
 
208
- def update_item(self, item_id, display_name = None, description = None, return_item="Default"):
212
+ def update_item(self, item_id, display_name = None, description = None, return_item=False):
209
213
  """Update an item in a workspace"""
210
214
  return self.core_client.update_item(workspace_id=self.id,
211
215
  item_id=item_id, display_name=display_name, description=description,
@@ -233,14 +237,30 @@ class Workspace:
233
237
  return self.core_client.cancel_item_job_instance(workspace_id=self.id, item_id=item_id,
234
238
  job_instance_id=job_instance_id)
235
239
 
240
+ def create_item_schedule(self, item_id, job_type, configuration, enabled):
241
+ return self.core_client.create_item_schedule(workspace_id=self.id, item_id=item_id, job_type=job_type,
242
+ configuration=configuration, enabled=enabled)
243
+
236
244
  def get_item_job_instance(self, item_id, job_instance_id):
237
245
  return self.core_client.get_item_job_instance(workspace_id=self.id, item_id=item_id,
238
246
  job_instance_id=job_instance_id)
239
247
 
248
+ def get_item_schedule(self, item_id, job_type, schedule_id):
249
+ return self.core_client.get_item_schedule(workspace_id=self.id, item_id=item_id, job_type=job_type, schedule_id=schedule_id)
250
+
251
+ def list_item_job_instances(self, item_id):
252
+ return self.core_client.list_item_job_instances(workspace_id=self.id, item_id=item_id)
253
+
254
+ def list_item_schedules(self, item_id, job_type):
255
+ return self.core_client.list_item_schedules(workspace_id=self.id, item_id=item_id, job_type=job_type)
256
+
240
257
  def run_on_demand_item_job(self, item_id, job_type, execution_data = None):
241
258
  return self.core_client.run_on_demand_item_job(workspace_id=self.id, item_id=item_id,
242
259
  job_type=job_type, execution_data=execution_data)
243
260
 
261
+ def update_item_schedule(self, item_id, job_type, schedule_id, configuration, enabled):
262
+ return self.core_client.update_item_schedule(workspace_id=self.id, item_id=item_id, job_type=job_type,
263
+ schedule_id=schedule_id, configuration=configuration, enabled=enabled)
244
264
 
245
265
 
246
266
  def commit_to_git(self, mode, comment=None, items=None, workspace_head=None):
@@ -260,6 +280,9 @@ class Workspace:
260
280
  def git_get_connection(self):
261
281
  return self.core_client.git_get_connection(workspace_id=self.id)
262
282
 
283
+ def get_my_git_credentials(self):
284
+ return self.core_client.get_my_git_credentials(workspace_id=self.id)
285
+
263
286
  def git_get_status(self):
264
287
  return self.core_client.git_get_status(workspace_id=self.id)
265
288
 
@@ -268,7 +291,28 @@ class Workspace:
268
291
  conflict_resolution=conflict_resolution,
269
292
  options=options, workspace_head=workspace_head)
270
293
 
294
+ def update_my_git_credentials(self, git_credentials):
295
+ return self.core_client.update_my_git_credentials(workspace_id=self.id, git_credentials=git_credentials)
271
296
 
297
+ # Managed Private Endpoints:
298
+
299
+ def create_workspace_managed_private_endpoint(self, name, target_private_link_resource_id,
300
+ target_subresource_type, request_message = None):
301
+ return self.core_client.create_workspace_managed_private_endpoint(workspace_id=self.id, name=name,
302
+ target_private_link_resource_id=target_private_link_resource_id,
303
+ target_subresource_type=target_subresource_type,
304
+ request_message=request_message)
305
+
306
+ def delete_workspace_managed_private_endpoint(self, managed_private_endpoint_id):
307
+ return self.core_client.delete_workspace_managed_private_endpoint(workspace_id=self.id,
308
+ managed_private_endpoint_id=managed_private_endpoint_id)
309
+
310
+ def get_workspace_managed_private_endpoint(self, managed_private_endpoint_id):
311
+ return self.core_client.get_workspace_managed_private_endpoint(workspace_id=self.id,
312
+ managed_private_endpoint_id=managed_private_endpoint_id)
313
+
314
+ def list_workspace_managed_private_endpoints(self):
315
+ return self.core_client.list_workspace_managed_private_endpoints(workspace_id=self.id)
272
316
 
273
317
  # One Lake Data Access Security
274
318
 
@@ -290,10 +334,7 @@ class Workspace:
290
334
 
291
335
  def list_datamarts(self):
292
336
  return self.core_client.list_datamarts(workspace_id=self.id)
293
-
294
- def list_paginated_reports(self):
295
- return self.core_client.list_paginated_reports(workspace_id=self.id)
296
-
337
+
297
338
  def list_sql_endpoints(self):
298
339
  return self.core_client.list_sql_endpoints(workspace_id=self.id)
299
340
 
@@ -430,8 +471,41 @@ class Workspace:
430
471
  return self.core_client.update_eventstream(workspace_id=self.id, eventstream_id=eventstream_id,
431
472
  display_name=display_name, description=description)
432
473
 
433
- # kqlDatabases
474
+ # kqlDashboards
475
+
476
+ def create_kql_dashboard(self, display_name, description = None):
477
+ """Create a kql dashboard in a workspace"""
478
+ return self.core_client.create_kql_dashboard(workspace_id=self.id, display_name=display_name, description=description)
479
+
480
+ def delete_kql_dashboard(self, kql_dashboard_id):
481
+ """Delete a kql dashboard from a workspace"""
482
+ return self.core_client.delete_kql_dashboard(workspace_id=self.id, kql_dashboard_id=kql_dashboard_id)
483
+
484
+ def get_kql_dashboard(self, kql_dashboard_id = None, kql_dashboard_name = None):
485
+ """Get a kql dashboard from a workspace"""
486
+ return self.core_client.get_kql_dashboard(workspace_id=self.id, kql_dashboard_id=kql_dashboard_id,
487
+ kql_dashboard_name=kql_dashboard_name)
488
+
489
+ def get_kql_dashboard_definition(self, kql_dashboard_id, format = None):
490
+ """Get the definition of a kql dashboard from a workspace"""
491
+ return self.core_client.get_kql_dashboard_definition(workspace_id=self.id, kql_dashboard_id=kql_dashboard_id, format=format)
492
+
493
+ def list_kql_dashboards(self, with_properties = False):
494
+ """List kql dashboards in a workspace"""
495
+ return self.core_client.list_kql_dashboards(workspace_id=self.id, with_properties=with_properties)
496
+
497
+ def update_kql_dashboard(self, kql_dashboard_id, display_name = None, description = None):
498
+ """Update a kql dashboard in a workspace"""
499
+ return self.core_client.update_kql_dashboard(workspace_id=self.id, kql_dashboard_id=kql_dashboard_id,
500
+ display_name=display_name, description=description)
501
+
502
+ def update_kql_dashboard_definition(self, kql_dashboard_id, definition, update_metadata = None):
503
+ """Update the definition of a kql dashboard in a workspace"""
504
+ return self.core_client.update_kql_dashboard_definition(workspace_id=self.id, kql_dashboard_id=kql_dashboard_id,
505
+ definition=definition, update_metadata=update_metadata)
506
+
434
507
 
508
+ # kqlDatabases
435
509
 
436
510
  def create_kql_database(self, creation_payload, display_name, description = None, ):
437
511
  """Create a kql database in a workspace"""
@@ -458,6 +532,11 @@ class Workspace:
458
532
 
459
533
  # kqlQuerysets
460
534
 
535
+ def create_kql_queryset(self, display_name, description = None, definition = None):
536
+ """Create a kql queryset in a workspace"""
537
+ return self.core_client.create_kql_queryset(workspace_id=self.id, display_name=display_name, description=description,
538
+ definition=definition)
539
+
461
540
  def delete_kql_queryset(self, kql_queryset_id):
462
541
  """Delete a kql queryset from a workspace"""
463
542
  return self.core_client.delete_kql_queryset(workspace_id=self.id, kql_queryset_id=kql_queryset_id)
@@ -466,6 +545,10 @@ class Workspace:
466
545
  """Get a kql queryset from a workspace"""
467
546
  return self.core_client.get_kql_queryset(self.id, kql_queryset_id, kql_queryset_name)
468
547
 
548
+ def get_kql_queryset_definition(self, kql_queryset_id, format = None):
549
+ """Get the definition of a kql queryset from a workspace"""
550
+ return self.core_client.get_kql_queryset_definition(workspace_id=self.id, kql_queryset_id=kql_queryset_id, format=format)
551
+
469
552
  def list_kql_querysets(self, with_properties = False):
470
553
  """List kql querysets in a workspace"""
471
554
  return self.core_client.list_kql_querysets(workspace_id=self.id, with_properties=with_properties)
@@ -474,6 +557,11 @@ class Workspace:
474
557
  """Update a kql queryset in a workspace"""
475
558
  return self.core_client.update_kql_queryset(workspace_id=self.id, kql_queryset_id=kql_queryset_id,
476
559
  display_name=display_name, description=description)
560
+
561
+ def update_kql_queryset_definition(self, kql_queryset_id, definition, update_metadata = None):
562
+ """Update the definition of a kql queryset in a workspace"""
563
+ return self.core_client.update_kql_queryset_definition(workspace_id=self.id, kql_queryset_id=kql_queryset_id,
564
+ definition=definition, update_metadata=update_metadata)
477
565
 
478
566
  # lakehouses
479
567
  def run_on_demand_table_maintenance(self, lakehouse_id, execution_data,
@@ -517,6 +605,45 @@ class Workspace:
517
605
  file_extension=file_extension, format_options=format_options,
518
606
  mode=mode, recursive=recursive, wait_for_completion=wait_for_completion)
519
607
 
608
+ # mirroredDatabases
609
+
610
+ def create_mirrored_database(self, display_name, description = None, definition = None):
611
+ return self.core_client.create_mirrored_database(workspace_id=self.id, display_name=display_name, description=description,
612
+ definition=definition)
613
+
614
+ def delete_mirrored_database(self, mirrored_database_id):
615
+ return self.core_client.delete_mirrored_database(workspace_id=self.id, mirrored_database_id=mirrored_database_id)
616
+
617
+ def get_mirrored_database(self, mirrored_database_id = None, mirrored_database_name = None):
618
+ return self.core_client.get_mirrored_database(workspace_id=self.id, mirrored_database_id=mirrored_database_id,
619
+ mirrored_database_name=mirrored_database_name)
620
+
621
+ def get_mirrored_database_definition(self, mirrored_database_id):
622
+ return self.core_client.get_mirrored_database_definition(workspace_id=self.id,
623
+ mirrored_database_id=mirrored_database_id)
624
+
625
+ def list_mirrored_databases(self, with_properties = False):
626
+ return self.core_client.list_mirrored_databases(workspace_id=self.id, with_properties=with_properties)
627
+
628
+ def update_mirrored_database(self, mirrored_database_id, display_name = None, description = None, return_item = False):
629
+ return self.core_client.update_mirrored_database(workspace_id=self.id, mirrored_database_id=mirrored_database_id,
630
+ display_name=display_name, description=description, return_item=return_item)
631
+
632
+ def update_mirrored_database_definition(self, mirrored_database_id, definition):
633
+ return self.core_client.update_mirrored_database_definition(workspace_id=self.id, mirrored_database_id=mirrored_database_id,
634
+ definition=definition)
635
+
636
+ def get_mirroring_status(self, mirrored_database_id):
637
+ return self.core_client.get_mirroring_status(workspace_id=self.id, mirrored_database_id=mirrored_database_id)
638
+
639
+ def get_tables_mirroring_status(self, mirrored_database_id):
640
+ return self.core_client.get_tables_mirroring_status(workspace_id=self.id, mirrored_database_id=mirrored_database_id)
641
+
642
+ def start_mirroring(self, mirrored_database_id):
643
+ return self.core_client.start_mirroring(workspace_id=self.id, mirrored_database_id=mirrored_database_id)
644
+
645
+ def stop_mirroring(self, mirrored_database_id):
646
+ return self.core_client.stop_mirroring(workspace_id=self.id, mirrored_database_id=mirrored_database_id)
520
647
 
521
648
  # mlExperiments
522
649
 
@@ -593,6 +720,15 @@ class Workspace:
593
720
  """Update the definition of a notebook in a workspace"""
594
721
  return self.core_client.update_notebook_definition(workspace_id=self.id, notebook_id=notebook_id, definition=definition)
595
722
 
723
+ # paginated reports
724
+
725
+ def list_paginated_reports(self):
726
+ return self.core_client.list_paginated_reports(workspace_id=self.id)
727
+
728
+ def update_paginated_report(self, paginated_report_id, display_name = None, description = None):
729
+ return self.core_client.update_paginated_report(workspace_id=self.id, paginated_report_id=paginated_report_id,
730
+ display_name=display_name, description=description)
731
+
596
732
  # reports
597
733
 
598
734
  def create_report(self, display_name, definition = None, description = None):
@@ -640,11 +776,10 @@ class Workspace:
640
776
  """Delete a semantic model from a workspace"""
641
777
  return self.core_client.delete_semantic_model(workspace_id=self.id, semantic_model_id=semantic_model_id)
642
778
 
643
- # def update_semantic_model(self, semantic_model_id, display_name = None, description = None):
644
- # """Update a semantic model in a workspace"""
645
- # return self.get_item(item_id=semantic_model_id).update(display_name=display_name,
646
- # description=description,
647
- # type="semanticModels")
779
+ def update_semantic_model(self, semantic_model_id, display_name = None, description = None):
780
+ """Update a semantic model in a workspace"""
781
+ return self.core_client.update_semantic_model(workspace_id=self.id, semantic_model_id=semantic_model_id,
782
+ display_name=display_name, description=description)
648
783
 
649
784
  def get_semantic_model_definition(self, semantic_model_id, format = None):
650
785
  """Get the definition of a semantic model from a workspace"""