msfabricpysdkcore 0.2.1__py3-none-any.whl → 0.2.2__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 (48) hide show
  1. msfabricpysdkcore/adminapi.py +142 -2
  2. msfabricpysdkcore/coreapi.py +475 -8
  3. msfabricpysdkcore/item.py +6 -4
  4. msfabricpysdkcore/otheritems.py +93 -0
  5. msfabricpysdkcore/tests/__init__.py +0 -0
  6. msfabricpysdkcore/tests/test_admin_apis.py +174 -0
  7. msfabricpysdkcore/tests/test_connection.py +111 -0
  8. msfabricpysdkcore/tests/test_datapipelines.py +45 -0
  9. msfabricpysdkcore/tests/test_deployment_pipeline.py +63 -0
  10. msfabricpysdkcore/tests/test_domains.py +126 -0
  11. msfabricpysdkcore/tests/test_environments.py +114 -0
  12. msfabricpysdkcore/tests/test_evenhouses.py +56 -0
  13. msfabricpysdkcore/tests/test_evenstreams.py +52 -0
  14. msfabricpysdkcore/tests/test_external_data_shares.py +51 -0
  15. msfabricpysdkcore/tests/test_fabric_azure_client.py +80 -0
  16. msfabricpysdkcore/tests/test_gateways.py +99 -0
  17. msfabricpysdkcore/tests/test_git.py +66 -0
  18. msfabricpysdkcore/tests/test_graphqlapi.py +44 -0
  19. msfabricpysdkcore/tests/test_items.py +97 -0
  20. msfabricpysdkcore/tests/test_jobs.py +96 -0
  21. msfabricpysdkcore/tests/test_kql_dashboards.py +63 -0
  22. msfabricpysdkcore/tests/test_kql_queryset.py +64 -0
  23. msfabricpysdkcore/tests/test_kqldatabases.py +56 -0
  24. msfabricpysdkcore/tests/test_lakehouse.py +93 -0
  25. msfabricpysdkcore/tests/test_managed_private_endpoints.py +61 -0
  26. msfabricpysdkcore/tests/test_mirroreddatabases.py +80 -0
  27. msfabricpysdkcore/tests/test_ml_experiments.py +47 -0
  28. msfabricpysdkcore/tests/test_ml_models.py +47 -0
  29. msfabricpysdkcore/tests/test_mounted_adf.py +64 -0
  30. msfabricpysdkcore/tests/test_notebooks.py +57 -0
  31. msfabricpysdkcore/tests/test_one_lake_data_access_security.py +63 -0
  32. msfabricpysdkcore/tests/test_other_items.py +45 -0
  33. msfabricpysdkcore/tests/test_reflex.py +57 -0
  34. msfabricpysdkcore/tests/test_reports.py +56 -0
  35. msfabricpysdkcore/tests/test_semantic_model.py +56 -0
  36. msfabricpysdkcore/tests/test_shortcuts.py +60 -0
  37. msfabricpysdkcore/tests/test_spark.py +91 -0
  38. msfabricpysdkcore/tests/test_sparkjobdefinition.py +55 -0
  39. msfabricpysdkcore/tests/test_sqldatabases.py +45 -0
  40. msfabricpysdkcore/tests/test_warehouses.py +50 -0
  41. msfabricpysdkcore/tests/test_workspaces_capacities.py +159 -0
  42. msfabricpysdkcore/workspace.py +149 -5
  43. {msfabricpysdkcore-0.2.1.dist-info → msfabricpysdkcore-0.2.2.dist-info}/METADATA +31 -5
  44. msfabricpysdkcore-0.2.2.dist-info/RECORD +65 -0
  45. {msfabricpysdkcore-0.2.1.dist-info → msfabricpysdkcore-0.2.2.dist-info}/WHEEL +1 -1
  46. msfabricpysdkcore-0.2.1.dist-info/RECORD +0 -28
  47. {msfabricpysdkcore-0.2.1.dist-info → msfabricpysdkcore-0.2.2.dist-info}/LICENSE +0 -0
  48. {msfabricpysdkcore-0.2.1.dist-info → msfabricpysdkcore-0.2.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,159 @@
1
+ import unittest
2
+ from dotenv import load_dotenv
3
+ from datetime import datetime
4
+ from msfabricpysdkcore.coreapi import FabricClientCore
5
+
6
+ load_dotenv()
7
+
8
+ class TestFabricClientCore(unittest.TestCase):
9
+
10
+ def __init__(self, *args, **kwargs):
11
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
12
+ self.fc = FabricClientCore()
13
+
14
+
15
+ def test_end_to_end_workspace(self):
16
+ fc = self.fc
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ display_name = "testws" + datetime_str
19
+
20
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
21
+ workspace_name_new = "newws" + datetime_str
22
+ ws_created = fc.create_workspace(display_name=display_name,
23
+ description="test workspace",
24
+ exists_ok=False)
25
+ # Add assertions here to verify the result
26
+ self.assertEqual(ws_created.display_name, display_name)
27
+ workspace_id = ws_created.id
28
+ ws = fc.get_workspace_by_id(id = workspace_id)
29
+ self.assertEqual(ws.display_name, display_name)
30
+ self.assertEqual(ws.description, "test workspace")
31
+
32
+ # def test_assign_to_capacity(self):
33
+
34
+ result_status_code = fc.assign_to_capacity(workspace_id=ws.id,
35
+ capacity_id="840a6c1e-5289-4094-bbc8-716daabaeeba")
36
+ self.assertEqual(result_status_code, 202)
37
+
38
+
39
+ # def test_list_workspaces(self):
40
+
41
+ result = fc.list_workspaces()
42
+ display_names = [ws.display_name for ws in result]
43
+ self.assertIn(display_name, display_names)
44
+
45
+ for ws in result:
46
+ if ws.display_name == display_name:
47
+ self.assertEqual(ws.capacity_id, "840a6c1e-5289-4094-bbc8-716daabaeeba")
48
+
49
+
50
+ # def test_get_workspace_by_name(self):
51
+
52
+ workspace_name = display_name
53
+ ws = fc.get_workspace_by_name(name = workspace_name)
54
+ self.assertEqual(ws.display_name, display_name)
55
+
56
+ # def test_get_workspace_by_id(self):
57
+ ws = fc.get_workspace_by_id(id = workspace_id)
58
+ self.assertEqual(display_name, ws.display_name)
59
+
60
+
61
+ # def test_get_workspace(self):
62
+ result = fc.get_workspace_by_id(id = workspace_id)
63
+ self.assertEqual(result.display_name, display_name)
64
+
65
+ # def test_add_role_assignment(self):
66
+ result_status = fc.add_workspace_role_assignment(workspace_id = ws.id,
67
+ principal = {"id" : "755f273c-98f8-408c-a886-691794938bd8",
68
+ "type" : "ServicePrincipal"},
69
+ role = 'Member')
70
+
71
+ self.assertEqual(result_status, 201)
72
+
73
+ # def test_get_workspace_role_assignments(self):
74
+ result = fc.list_workspace_role_assignments(workspace_id = ws.id)
75
+ self.assertTrue(len(result) == 2)
76
+ for user in result:
77
+ if user["principal"]["displayName"] == "fabrictestuser":
78
+ self.assertEqual(user["role"], "Member")
79
+
80
+ # Get get_workspace_role_assignment
81
+
82
+ result = fc.get_workspace_role_assignment(workspace_id = ws.id,
83
+ workspace_role_assignment_id = "755f273c-98f8-408c-a886-691794938bd8")
84
+
85
+ self.assertEqual(result["role"], "Member")
86
+
87
+ # def test_update_workspace_role_assignment(self):
88
+
89
+ result_status_code = fc.update_workspace_role_assignment(workspace_id = ws.id,
90
+ role = "Contributor",
91
+ workspace_role_assignment_id= "755f273c-98f8-408c-a886-691794938bd8")
92
+
93
+ self.assertEqual(result_status_code, 200)
94
+
95
+ result = fc.list_workspace_role_assignments(workspace_id = ws.id)
96
+ self.assertTrue(len(result) == 2)
97
+ for user in result:
98
+ if user["principal"]["displayName"] == "fabrictestuser":
99
+ self.assertTrue(user["role"] == "Contributor")
100
+
101
+ # def test_delete_role_assignment(self):
102
+ result_status_code = fc.delete_workspace_role_assignment(workspace_id = ws.id,
103
+ workspace_role_assignment_id = "755f273c-98f8-408c-a886-691794938bd8")
104
+ self.assertEqual(result_status_code, 200)
105
+
106
+ # def test_get_workspace_role_assignments(self):
107
+ result = fc.list_workspace_role_assignments(workspace_id = ws.id)
108
+ self.assertTrue(len(result) == 1)
109
+ user = result[0]
110
+ # self.assertTrue(user["principal"]["displayName"] == "fabricapi")
111
+ self.assertTrue(user["role"] == "Admin")
112
+
113
+ # def test_update_workspace(self):
114
+ ws_updated = fc.update_workspace(workspace_id=ws.id,
115
+ display_name=workspace_name_new,
116
+ description="new description")
117
+ self.assertEqual(ws_updated.display_name, workspace_name_new)
118
+ self.assertEqual(ws_updated.description, "new description")
119
+ ws = fc.get_workspace_by_id(id = ws.id)
120
+ self.assertEqual(ws.display_name, workspace_name_new)
121
+ self.assertEqual(ws.description, "new description")
122
+
123
+ # def test_unassign_from_capacity(self):
124
+
125
+ result_status_code = fc.unassign_from_capacity(workspace_id=ws.id)
126
+ self.assertEqual(result_status_code, 202)
127
+ ws = fc.get_workspace_by_id(ws.id)
128
+ self.assertEqual(ws.capacity_id, None)
129
+
130
+ # result = fc.provision_identity(workspace_id=ws.id)
131
+ # self.assertIsNotNone(result["applicationId"])
132
+ # fc.deprovision_identity(workspace_id=ws.id)
133
+
134
+
135
+
136
+ # def test_delete_workspace(self):
137
+ result_status = fc.delete_workspace(display_name=workspace_name_new)
138
+ self.assertEqual(result_status, 200)
139
+
140
+ def test_list_capacities(self):
141
+ result = self.fc.list_capacities()
142
+ self.assertTrue(len(result) > 0)
143
+ cap_ids = [cap.id for cap in result]
144
+ self.assertIn("c861242b-c4ac-4e3a-9a21-13f65d9b17b2", cap_ids)
145
+
146
+ def test_get_capacity(self):
147
+ capacity = self.fc.get_capacity(capacity_id = "c861242b-c4ac-4e3a-9a21-13f65d9b17b2")
148
+ self.assertEqual(capacity.id, "c861242b-c4ac-4e3a-9a21-13f65d9b17b2")
149
+
150
+ cap = self.fc.get_capacity(capacity_name= capacity.display_name)
151
+
152
+ self.assertEqual(capacity.id, cap.id)
153
+ self.assertIsNotNone(cap.state)
154
+ self.assertIsNotNone(cap.sku)
155
+ self.assertIsNotNone(cap.region)
156
+
157
+
158
+ if __name__ == "__main__":
159
+ unittest.main()
@@ -233,6 +233,9 @@ class Workspace:
233
233
  def list_shortcuts(self, item_id, parent_path = None):
234
234
  return self.core_client.list_shortcuts(self.id, item_id, parent_path=parent_path)
235
235
 
236
+ def reset_shortcut_cache(self, wait_for_completion = False):
237
+ return self.core_client.reset_shortcut_cache(self.id, wait_for_completion=wait_for_completion)
238
+
236
239
  def cancel_item_job_instance(self, item_id, job_instance_id):
237
240
  return self.core_client.cancel_item_job_instance(workspace_id=self.id, item_id=item_id,
238
241
  job_instance_id=job_instance_id)
@@ -439,6 +442,10 @@ class Workspace:
439
442
  return self.core_client.get_eventhouse(workspace_id=self.id, eventhouse_id=eventhouse_id,
440
443
  eventhouse_name=eventhouse_name)
441
444
 
445
+ def get_eventhouse_definition(self, eventhouse_id, format = None):
446
+ """Get the definition of an eventhouse from a workspace"""
447
+ return self.core_client.get_eventhouse_definition(workspace_id=self.id, eventhouse_id=eventhouse_id, format=format)
448
+
442
449
  def delete_eventhouse(self, eventhouse_id):
443
450
  """Delete an eventhouse from a workspace"""
444
451
  return self.core_client.delete_eventhouse(workspace_id=self.id, eventhouse_id=eventhouse_id)
@@ -448,6 +455,11 @@ class Workspace:
448
455
  return self.core_client.update_eventhouse(workspace_id=self.id, eventhouse_id=eventhouse_id,
449
456
  display_name=display_name, description=description)
450
457
 
458
+ def update_eventhouse_definition(self, eventhouse_id, definition, update_metadata = None):
459
+ """Update the definition of an eventhouse in a workspace"""
460
+ return self.core_client.update_eventhouse_definition(workspace_id=self.id, eventhouse_id=eventhouse_id,
461
+ definition=definition, update_metadata=update_metadata)
462
+
451
463
  # eventstreams
452
464
 
453
465
 
@@ -462,6 +474,10 @@ class Workspace:
462
474
  def get_eventstream(self, eventstream_id = None, eventstream_name = None):
463
475
  return self.core_client.get_eventstream(workspace_id=self.id, eventstream_id=eventstream_id, eventstream_name=eventstream_name)
464
476
 
477
+ def get_eventstream_definition(self, eventstream_id, format = None):
478
+ """Get the definition of an eventstream from a workspace"""
479
+ return self.core_client.get_eventstream_definition(workspace_id=self.id, eventstream_id=eventstream_id, format=format)
480
+
465
481
  def list_eventstreams(self, with_properties = False):
466
482
  """List eventstreams in a workspace"""
467
483
  return self.core_client.list_eventstreams(workspace_id=self.id, with_properties=with_properties)
@@ -471,6 +487,34 @@ class Workspace:
471
487
  return self.core_client.update_eventstream(workspace_id=self.id, eventstream_id=eventstream_id,
472
488
  display_name=display_name, description=description)
473
489
 
490
+ def update_eventstream_definition(self, eventstream_id, definition, update_metadata = None):
491
+ """Update the definition of an eventstream in a workspace"""
492
+ return self.core_client.update_eventstream_definition(workspace_id=self.id, eventstream_id=eventstream_id,
493
+ definition=definition, update_metadata=update_metadata)
494
+
495
+ # graphQLapis
496
+
497
+ def create_graphql_api(self, display_name, description = None):
498
+ """Create a graphQL api in a workspace"""
499
+ return self.core_client.create_graphql_api(workspace_id=self.id, display_name=display_name, description=description)
500
+
501
+ def delete_graphql_api(self, graphql_api_id):
502
+ """Delete a graphQL api from a workspace"""
503
+ return self.core_client.delete_graphql_api(workspace_id=self.id, graphql_api_id=graphql_api_id)
504
+
505
+ def get_graphql_api(self, graphql_api_id = None, graphql_api_name = None):
506
+ """Get a graphQL api from a workspace"""
507
+ return self.core_client.get_graphql_api(workspace_id=self.id, graphql_api_id=graphql_api_id, graphql_api_name=graphql_api_name)
508
+
509
+ def list_graphql_apis(self, with_properties = False):
510
+ """List graphQL apis in a workspace"""
511
+ return self.core_client.list_graphql_apis(workspace_id=self.id, with_properties=with_properties)
512
+
513
+ def update_graphql_api(self, graphql_api_id, display_name = None, description = None):
514
+ """Update a graphQL api in a workspace"""
515
+ return self.core_client.update_graphql_api(workspace_id=self.id, graphql_api_id=graphql_api_id,
516
+ display_name=display_name, description=description)
517
+
474
518
  # kqlDashboards
475
519
 
476
520
  def create_kql_dashboard(self, display_name, description = None):
@@ -520,7 +564,10 @@ class Workspace:
520
564
  return self.core_client.get_kql_database(workspace_id=self.id, kql_database_id=kql_database_id,
521
565
  kql_database_name=kql_database_name)
522
566
 
523
-
567
+ def get_kql_database_definition(self, kql_database_id, format = None):
568
+ """Get the definition of a kql database from a workspace"""
569
+ return self.core_client.get_kql_database_definition(workspace_id=self.id, kql_database_id=kql_database_id, format=format)
570
+
524
571
  def list_kql_databases(self, with_properties = False):
525
572
  """List kql databases in a workspace"""
526
573
  return self.core_client.list_kql_databases(workspace_id=self.id, with_properties=with_properties)
@@ -530,6 +577,11 @@ class Workspace:
530
577
  return self.core_client.update_kql_database(workspace_id=self.id, kql_database_id=kql_database_id,
531
578
  display_name=display_name, description=description)
532
579
 
580
+ def update_kql_database_definition(self, kql_database_id, definition, update_metadata = None):
581
+ """Update the definition of a kql database in a workspace"""
582
+ return self.core_client.update_kql_database_definition(workspace_id=self.id, kql_database_id=kql_database_id,
583
+ definition=definition, update_metadata=update_metadata)
584
+
533
585
  # kqlQuerysets
534
586
 
535
587
  def create_kql_queryset(self, display_name, description = None, definition = None):
@@ -689,6 +741,40 @@ class Workspace:
689
741
  """Update an ml model in a workspace"""
690
742
  return self.core_client.update_ml_model(workspace_id=self.id, ml_model_id=ml_model_id, display_name=display_name, description=description)
691
743
 
744
+ # mounted data factory
745
+
746
+ def create_mounted_data_factory(self, display_name, description = None, definition = None):
747
+ """Create a mounted data factory in a workspace"""
748
+ return self.core_client.create_mounted_data_factory(workspace_id=self.id, display_name=display_name,
749
+ description=description, definition=definition)
750
+
751
+ def delete_mounted_data_factory(self, mounted_data_factory_id):
752
+ """Delete a mounted data factory from a workspace"""
753
+ return self.core_client.delete_mounted_data_factory(workspace_id=self.id, mounted_data_factory_id=mounted_data_factory_id)
754
+
755
+ def get_mounted_data_factory(self, mounted_data_factory_id = None, mounted_data_factory_name = None):
756
+ """Get a mounted data factory from a workspace"""
757
+ return self.core_client.get_mounted_data_factory(workspace_id=self.id, mounted_data_factory_id=mounted_data_factory_id,
758
+ mounted_data_factory_name=mounted_data_factory_name)
759
+
760
+ def get_mounted_data_factory_definition(self, mounted_data_factory_id, format = None):
761
+ """Get the definition of a mounted data factory from a workspace"""
762
+ return self.core_client.get_mounted_data_factory_definition(workspace_id=self.id, mounted_data_factory_id=mounted_data_factory_id, format=format)
763
+
764
+ def list_mounted_data_factories(self, with_properties = False):
765
+ """List mounted data factories in a workspace"""
766
+ return self.core_client.list_mounted_data_factories(workspace_id=self.id, with_properties=with_properties)
767
+
768
+ def update_mounted_data_factory(self, mounted_data_factory_id, display_name = None, description = None):
769
+ """Update a mounted data factory in a workspace"""
770
+ return self.core_client.update_mounted_data_factory(workspace_id=self.id, mounted_data_factory_id=mounted_data_factory_id,
771
+ display_name=display_name, description=description)
772
+
773
+ def update_mounted_data_factory_definition(self, mounted_data_factory_id, definition, update_metadata = None):
774
+ """Update the definition of a mounted data factory in a workspace"""
775
+ return self.core_client.update_mounted_data_factory_definition(workspace_id=self.id, mounted_data_factory_id=mounted_data_factory_id, definition=definition,
776
+ update_metadata=update_metadata)
777
+
692
778
  # notebooks
693
779
 
694
780
  def create_notebook(self, display_name, definition = None, description = None):
@@ -729,21 +815,52 @@ class Workspace:
729
815
  return self.core_client.update_paginated_report(workspace_id=self.id, paginated_report_id=paginated_report_id,
730
816
  display_name=display_name, description=description)
731
817
 
818
+ # reflex
819
+
820
+ def create_reflex(self, display_name, description = None):
821
+ """Create a reflex in a workspace"""
822
+ return self.core_client.create_reflex(workspace_id=self.id, display_name=display_name, description=description)
823
+
824
+ def delete_reflex(self, reflex_id):
825
+ """Delete a reflex from a workspace"""
826
+ return self.core_client.delete_reflex(workspace_id=self.id, reflex_id=reflex_id)
827
+
828
+ def get_reflex(self, reflex_id = None, reflex_name = None):
829
+ """Get a reflex from a workspace"""
830
+ return self.core_client.get_reflex(workspace_id=self.id, reflex_id=reflex_id, reflex_name=reflex_name)
831
+
832
+ def get_reflex_definition(self, reflex_id, format = None):
833
+ """Get the definition of a reflex from a workspace"""
834
+ return self.core_client.get_reflex_definition(workspace_id=self.id, reflex_id=reflex_id, format=format)
835
+
836
+ def list_reflexes(self, with_properties = False):
837
+ """List reflexes in a workspace"""
838
+ return self.core_client.list_reflexes(workspace_id=self.id, with_properties=with_properties)
839
+
840
+ def update_reflex(self, reflex_id, display_name = None, description = None):
841
+ """Update a reflex in a workspace"""
842
+ return self.core_client.update_reflex(workspace_id=self.id, reflex_id=reflex_id, display_name=display_name, description=description)
843
+
844
+ def update_reflex_definition(self, reflex_id, definition, update_metadata = None):
845
+ """Update the definition of a reflex in a workspace"""
846
+ return self.core_client.update_reflex_definition(workspace_id=self.id, reflex_id=reflex_id, definition=definition,
847
+ update_metadata=update_metadata)
848
+
849
+
732
850
  # reports
733
851
 
734
852
  def create_report(self, display_name, definition = None, description = None):
735
853
  """Create a report in a workspace"""
736
854
  return self.core_client.create_report(workspace_id=self.id, display_name=display_name,
737
855
  definition=definition, description=description)
856
+ def delete_report(self, report_id):
857
+ """Delete a report from a workspace"""
858
+ return self.core_client.delete_report(workspace_id=self.id, report_id=report_id)
738
859
 
739
860
  def get_report(self, report_id = None, report_name = None):
740
861
  """Get a report from a workspace"""
741
862
  return self.core_client.get_report(workspace_id=self.id, report_id=report_id, report_name=report_name)
742
863
 
743
- def delete_report(self, report_id):
744
- """Delete a report from a workspace"""
745
- return self.core_client.delete_report(workspace_id=self.id, report_id=report_id)
746
-
747
864
  def get_report_definition(self, report_id, format = None):
748
865
  """Get the definition of a report from a workspace"""
749
866
  return self.core_client.get_report_definition(workspace_id=self.id, report_id=report_id, format=format)
@@ -752,6 +869,10 @@ class Workspace:
752
869
  """List reports in a workspace"""
753
870
  return self.core_client.list_reports(workspace_id=self.id, with_properties=with_properties)
754
871
 
872
+ def update_report(self, report_id, display_name = None, description = None):
873
+ """Update a report in a workspace"""
874
+ return self.core_client.update_report(workspace_id=self.id, report_id=report_id, display_name=display_name, description=description)
875
+
755
876
  def update_report_definition(self, report_id, definition):
756
877
  """Update the definition of a report in a workspace"""
757
878
  return self.core_client.update_report_definition(workspace_id=self.id, report_id=report_id, definition=definition)
@@ -864,6 +985,29 @@ class Workspace:
864
985
  """Run on demand spark job definition"""
865
986
  return self.core_client.run_on_demand_spark_job_definition(workspace_id=self.id, spark_job_definition_id=spark_job_definition_id, job_type=job_type)
866
987
 
988
+ # sql databases
989
+
990
+ def create_sql_database(self, display_name, description = None):
991
+ """Create a sql database in a workspace"""
992
+ return self.core_client.create_sql_database(workspace_id=self.id, display_name=display_name, description=description)
993
+
994
+ def delete_sql_database(self, sql_database_id):
995
+ """Delete a sql database from a workspace"""
996
+ return self.core_client.delete_sql_database(workspace_id=self.id, sql_database_id=sql_database_id)
997
+
998
+ def get_sql_database(self, sql_database_id = None, sql_database_name = None):
999
+ """Get a sql database from a workspace"""
1000
+ return self.core_client.get_sql_database(workspace_id=self.id, sql_database_id=sql_database_id, sql_database_name=sql_database_name)
1001
+
1002
+ def list_sql_databases(self, with_properties = False):
1003
+ """List sql databases in a workspace"""
1004
+ return self.core_client.list_sql_databases(workspace_id=self.id, with_properties=with_properties)
1005
+
1006
+ def update_sql_database(self, sql_database_id, display_name = None, description = None):
1007
+ """Update a sql database in a workspace"""
1008
+ return self.core_client.update_sql_database(workspace_id=self.id, sql_database_id=sql_database_id,
1009
+ display_name=display_name, description=description)
1010
+
867
1011
  # warehouses
868
1012
 
869
1013
  def list_warehouses(self, with_properties = False):
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: msfabricpysdkcore
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: A Python SDK for Microsoft Fabric
5
5
  Author: Andreas Rederer
6
6
  Project-URL: Homepage, https://github.com/DaSenf1860/ms-fabric-sdk-core
@@ -13,6 +13,7 @@ License-File: LICENSE
13
13
  Requires-Dist: requests>=2.30.0
14
14
  Requires-Dist: azure-identity>=1.15.0
15
15
  Requires-Dist: msal>=1.28.0
16
+ Dynamic: requires-dist
16
17
 
17
18
  # Python SDK for Microsoft Fabric
18
19
 
@@ -460,6 +461,9 @@ gw = fc.create_gateway(gateway_request=gwr)
460
461
  # Delete gateway
461
462
  resp_code = fc.delete_gateway(gateway_id= "gateway_id")
462
463
 
464
+ # Delete gatewway member
465
+ resp_code = fc.delete_gateway_member(gateway_id= "gateway_id", gateway_member_id= "gateway_member_id")
466
+
463
467
  # Delete gateway role assignment
464
468
  resp_code = fc.delete_gateway_role_assignment(gateway_id=gw['id'], gateway_role_assignment_id=new_ras['id'])
465
469
 
@@ -631,6 +635,9 @@ ws.list_shortcuts(item_id="item_id",
631
635
  # or
632
636
  item.list_shortcuts(parent_path="Tables")
633
637
 
638
+ # Reset shortcut cache
639
+ fc.reset_shortcut_cache(workspace_id="23232", wait_for_completion = False)
640
+
634
641
  ```
635
642
 
636
643
 
@@ -821,14 +828,33 @@ from msfabricpysdkcore import FabricClientAdmin
821
828
 
822
829
  fca = FabricClientAdmin()
823
830
 
824
- # Get tenant settings
825
-
831
+ # List tenant settings
826
832
  tenant_settings = fca.list_tenant_settings()
827
833
 
828
834
  # Get capacity tenant settings overrides
829
-
830
835
  overrides = fca.list_capacities_tenant_settings_overrides()
831
836
 
837
+ # Get domain tenant settings overrides
838
+ overrides = fca.list_domain_tenant_settings_overrides()
839
+
840
+ # Get workspace tenant settings overrides
841
+ overrides = fca.list_workspace_tenant_settings_overrides()
842
+
843
+ # Get capacity tenant settings overrides by capacity id
844
+ overrides = fca.list_capacity_tenant_settings_overrides_by_capacity_id(capacity_id="adsfasdfasf")
845
+
846
+ # Update tenant setting
847
+ fc.update_tenant_setting(tenant_setting_name = "PlatformMonitoringTenantSetting", enabled = True, delegate_to_capacity = None, delegate_to_domain = None,
848
+ delegate_to_workspace = None, enabled_security_groups = None, excluded_security_groups = None, properties = None)
849
+
850
+ # Update capacity tenant setting override
851
+ fc.update_capacity_tenant_setting_override(capacity_id = "capacity_id", tenant_setting_name = "PlatformMonitoringTenantSetting", enabled = True, delegate_to_workspace = None,
852
+ enabled_security_groups = None, excluded_security_groups = None)
853
+
854
+
855
+ # Delete capacity tenant setting override
856
+ fc.delete_capacity_tenant_setting_override(capacity_id = "capacity_id", tenant_setting_name = "PlatformMonitoringTenantSetting")
857
+
832
858
  ```
833
859
 
834
860
  ### Admin API for Items
@@ -0,0 +1,65 @@
1
+ msfabricpysdkcore/__init__.py,sha256=ObRW5Q8IMqrvA6VH6zXSv3n01AzRCGjn5RojJXAR6VE,208
2
+ msfabricpysdkcore/admin_item.py,sha256=9L09Kb7kn7JW0bqVu1qPOMT6oHLduX4Q5_qhVJZTLxQ,3290
3
+ msfabricpysdkcore/admin_workspace.py,sha256=umNnIF8sf5Y8BDgfQdfG6sOZrQQc7RJINL9j8DPnm3c,3180
4
+ msfabricpysdkcore/adminapi.py,sha256=eJNI9BiMl93ms60APGZSKK8OGZF-0XFWdsTW4vooyUM,35341
5
+ msfabricpysdkcore/auth.py,sha256=Y9YUDqoArvkD7rLnbQvNBnCXqHJtw6PDRUHMx0CVMT0,4330
6
+ msfabricpysdkcore/capacity.py,sha256=Q_2-XrZtdf9F67fY0qU3D0ocEOGQq4KtIXAv9dXjQhI,1761
7
+ msfabricpysdkcore/client.py,sha256=KpHREbfzQRRighyJzyES3COZP3raK0C1-WhxGd07LHU,7890
8
+ msfabricpysdkcore/coreapi.py,sha256=s2YLtP4Fw4dYnBSnVBui8JJdkZ4uifNZMAtVwoEcchY,200770
9
+ msfabricpysdkcore/deployment_pipeline.py,sha256=2d7BqRPgfBiAlQOP4UfYLmFMM8xonSjPkJKhevIKGEY,5756
10
+ msfabricpysdkcore/domain.py,sha256=92IVvZ3jXHIT1a0zlTPD7uoQX6TcBBE_Y_b4dScxHSU,6949
11
+ msfabricpysdkcore/environment.py,sha256=4k2Le1mAQIrfcpNc3n1DbgdCzAldGTSTCbiDQGk0DlA,2784
12
+ msfabricpysdkcore/fabric_azure_capacity.py,sha256=7JxMp9weiKG_mDjlRK-88oIXr0kdG0pzv-Ouycf3fus,2808
13
+ msfabricpysdkcore/fabric_azure_client.py,sha256=I7Z0Y8Xy_esQcPaXgPL7EAkQmoQkAklJO4hxk_90dno,10722
14
+ msfabricpysdkcore/item.py,sha256=37M_hWZ3AHLhifO0I1wj7nYStQQ14JpHfe5SBxQyicY,8992
15
+ msfabricpysdkcore/job_instance.py,sha256=rtZp-OpuzfdMiQyuQLum38lgcfSZJTr3s9sECZglcWg,2389
16
+ msfabricpysdkcore/lakehouse.py,sha256=yIrzatWM9emPn-Y54Cg_ZdAydIWjxrpK65jIQ4SClgE,1703
17
+ msfabricpysdkcore/long_running_operation.py,sha256=XTlsueSZKVFICxhx99geEQ6btZFlFb8-lssigmQ9c6Y,2133
18
+ msfabricpysdkcore/onelakeshortcut.py,sha256=H02wR6Z86qTEJOwVRMKz1Ou3K88Y9pfJa91vizjprvo,1661
19
+ msfabricpysdkcore/otheritems.py,sha256=r6YalCheej8R0vmM50kMAtsRshdaWJ3R7bsMzRXheUk,20848
20
+ msfabricpysdkcore/spark_custom_pool.py,sha256=YsEULaQG-FO507aPIb-4kk93ZWBmDZj6fbOEHYoyxHE,3188
21
+ msfabricpysdkcore/workspace.py,sha256=22FfhDW3afUIXs7yeVnSVjLoPfbHZXrAnEcV5CcFx8o,59432
22
+ msfabricpysdkcore/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ msfabricpysdkcore/tests/test_admin_apis.py,sha256=J3LmrQkGtgBcVf7ScmuNDvpLSJjMAO3sXKkmowF_HNk,6852
24
+ msfabricpysdkcore/tests/test_connection.py,sha256=jmwvRwfp81-a3eHjC_rBFgBJJihZ63qXVdfilTaxHYw,4491
25
+ msfabricpysdkcore/tests/test_datapipelines.py,sha256=OcqudrkR9XD0ce8by2EMoAILplH5OG2P7l-u6Fpmllw,1774
26
+ msfabricpysdkcore/tests/test_deployment_pipeline.py,sha256=J7szEWrw26U91O6hSooUAJ2eNorDo-x55lPgr00J-gU,2072
27
+ msfabricpysdkcore/tests/test_domains.py,sha256=KQIzziiQcnNjrgUlV8Ei_HT41LwaJCI5AnWsIHmEQxI,4711
28
+ msfabricpysdkcore/tests/test_environments.py,sha256=EDyS-pbLVI5AVEq0_JklpDe5lc_tdsPAPf1n4Gm3rbo,5132
29
+ msfabricpysdkcore/tests/test_evenhouses.py,sha256=xl9AWV4-H69IwHvrzoF4T_mDNuaUsVoRAI5171tIPcg,2283
30
+ msfabricpysdkcore/tests/test_evenstreams.py,sha256=nTvDwhkuHewkjETDK3hk2KjbFBfOCWiBTGStoiXSiYk,2013
31
+ msfabricpysdkcore/tests/test_external_data_shares.py,sha256=YqFiVFSWhVW7pLc0DC6Em4GFOGkok2Gezk8llPOtsv0,1550
32
+ msfabricpysdkcore/tests/test_fabric_azure_client.py,sha256=_dTc3vLILwXstvDs3TUFg3aCY-14CiI4cZ5-EdEtqJY,3099
33
+ msfabricpysdkcore/tests/test_gateways.py,sha256=xR5kpgxeW_PmTvcRdUITNCRGMJCgJTQfN9GGeY6bvuE,3685
34
+ msfabricpysdkcore/tests/test_git.py,sha256=KIME3KzqnDNmmsg4M4GhhDqeVqeMXy4iVA6MJOOmrlE,2567
35
+ msfabricpysdkcore/tests/test_graphqlapi.py,sha256=NGAIfh0GjAtgKybTNCgHa2Fs2AwR34_pP6QGAgJ7Wpw,1633
36
+ msfabricpysdkcore/tests/test_items.py,sha256=84bnWyyTzvTzrEQ3Vz17AHZjo7ZvovY-zMDHO6za6g0,4546
37
+ msfabricpysdkcore/tests/test_jobs.py,sha256=wa7RiqExvZddW425beSZ5yy9zmWHlgTfRUrEySmrfDs,4086
38
+ msfabricpysdkcore/tests/test_kql_dashboards.py,sha256=w1_MiVEVfGsDkSIt3BTnUHxY5iFzfAHQcAuC6Qnzlzs,2377
39
+ msfabricpysdkcore/tests/test_kql_queryset.py,sha256=KqIz8oxq-i394r-ezKqYiWCPvls_REfj3XKVXfopGx8,2606
40
+ msfabricpysdkcore/tests/test_kqldatabases.py,sha256=dPAerTpTrFNrbSQqSv-Y745TR-Dku33CNvm202T8P28,2372
41
+ msfabricpysdkcore/tests/test_lakehouse.py,sha256=OqeDjeyszMdzq6yiNZ0zFLOACqJLCCdEy5gsG0aw6PE,3805
42
+ msfabricpysdkcore/tests/test_managed_private_endpoints.py,sha256=prd3FbH1Z0o0BC26NpzZmy8yCTOCHiL45MLhTcYY0dQ,3167
43
+ msfabricpysdkcore/tests/test_mirroreddatabases.py,sha256=b0KjReoJ9U3tTbtmhtV2Vk9zatBR10cmpOg4Omuj5EU,3686
44
+ msfabricpysdkcore/tests/test_ml_experiments.py,sha256=UJIQitJdUDRlmAmF2jdXuFPYvp8BsrpDyI2opyIBt8I,1897
45
+ msfabricpysdkcore/tests/test_ml_models.py,sha256=AilbnYXb9rTUZW5sPJ0HqFZxB5fkTb0t_qnRW1NhO_E,1723
46
+ msfabricpysdkcore/tests/test_mounted_adf.py,sha256=4TPUvAiRR4yDCNdWr9a554ajLkIvZwB3Wx08chOqzp8,3409
47
+ msfabricpysdkcore/tests/test_notebooks.py,sha256=usk99tftcJb-3m8rjmpiFOD5Dqp3dd4e7RFEeUMkX7c,2280
48
+ msfabricpysdkcore/tests/test_one_lake_data_access_security.py,sha256=eto_F6oBRqggGgWVHQ52mB6D2G-Qr-y74Sx308aJDqc,2297
49
+ msfabricpysdkcore/tests/test_other_items.py,sha256=rGyL7QCn9Y_k_NIyctIIxwujtM5_MeMKJ3g6gU1CWM4,1772
50
+ msfabricpysdkcore/tests/test_reflex.py,sha256=TDP1UccImfr7cSJeYmwJNX4xJV1SD-DxIJaqzyCsn9Q,2023
51
+ msfabricpysdkcore/tests/test_reports.py,sha256=Wu0VqArrUxuCs6l1zCcNyb8TGjrdzg-yGiRjXjThjTM,2093
52
+ msfabricpysdkcore/tests/test_semantic_model.py,sha256=AKQk0BBjMBs0j6sR8B_NE66OW2woTHkGlOaXARn34_U,2477
53
+ msfabricpysdkcore/tests/test_shortcuts.py,sha256=1ANIi8PCZCLDR2yFE0MyZvGIUxS-aJR9SsWgFl2ipoA,2622
54
+ msfabricpysdkcore/tests/test_spark.py,sha256=faoVF3AuUCyfk2PvVccPngafyAkhq2SAj87KmESUwx0,3546
55
+ msfabricpysdkcore/tests/test_sparkjobdefinition.py,sha256=SANfiOLgwKRGnQN9ArEwv0fyXM12glEn9BG4jIL4W-c,2838
56
+ msfabricpysdkcore/tests/test_sqldatabases.py,sha256=aFH-JLHKASGiIqz14wGpHfBMp_5OMZ3x_Upd_O0A2f0,1642
57
+ msfabricpysdkcore/tests/test_warehouses.py,sha256=CKF2kJMe-JSOWWok3dR_hn5HNwz9GtKoYT4fP59mTPk,1813
58
+ msfabricpysdkcore/tests/test_workspaces_capacities.py,sha256=V5ePndbtLVyYNa8Kug1Ul0oOF-Jd6DXEl8PclgfLhuw,6822
59
+ msfabricpysdkcore/util/__init__.py,sha256=p-1dC4AurfKdIUppNVlRCIcmwHBTURqfgIwxcie3fEA,50
60
+ msfabricpysdkcore/util/logger.py,sha256=XXdeaqI-BhXZgacChKrWP88TPU4FTWvS8L0YWjCT54A,1166
61
+ msfabricpysdkcore-0.2.2.dist-info/LICENSE,sha256=1NrGuF-zOmzbwzk3iI6lsP9koyDeKO1B0-8OD_tTvOQ,1156
62
+ msfabricpysdkcore-0.2.2.dist-info/METADATA,sha256=jC7zg3CUZHyJT7GDOXtmxgtuiglMStc7gimMxQQx_H8,33571
63
+ msfabricpysdkcore-0.2.2.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
64
+ msfabricpysdkcore-0.2.2.dist-info/top_level.txt,sha256=3iRonu6ptDGQN4Yl6G76XGM7xbFNsskiEHW-P2gMQGY,18
65
+ msfabricpysdkcore-0.2.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (76.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,28 +0,0 @@
1
- msfabricpysdkcore/__init__.py,sha256=ObRW5Q8IMqrvA6VH6zXSv3n01AzRCGjn5RojJXAR6VE,208
2
- msfabricpysdkcore/admin_item.py,sha256=9L09Kb7kn7JW0bqVu1qPOMT6oHLduX4Q5_qhVJZTLxQ,3290
3
- msfabricpysdkcore/admin_workspace.py,sha256=umNnIF8sf5Y8BDgfQdfG6sOZrQQc7RJINL9j8DPnm3c,3180
4
- msfabricpysdkcore/adminapi.py,sha256=usvPhIecOSCLvkJJ0Q5_4XUWenJGFoxb2EpF6ooDPNI,27245
5
- msfabricpysdkcore/auth.py,sha256=Y9YUDqoArvkD7rLnbQvNBnCXqHJtw6PDRUHMx0CVMT0,4330
6
- msfabricpysdkcore/capacity.py,sha256=Q_2-XrZtdf9F67fY0qU3D0ocEOGQq4KtIXAv9dXjQhI,1761
7
- msfabricpysdkcore/client.py,sha256=KpHREbfzQRRighyJzyES3COZP3raK0C1-WhxGd07LHU,7890
8
- msfabricpysdkcore/coreapi.py,sha256=yRat_IA3kGBdpP0uaRhjfEZ25aAcxHLVY6b7gvoHCFg,177345
9
- msfabricpysdkcore/deployment_pipeline.py,sha256=2d7BqRPgfBiAlQOP4UfYLmFMM8xonSjPkJKhevIKGEY,5756
10
- msfabricpysdkcore/domain.py,sha256=92IVvZ3jXHIT1a0zlTPD7uoQX6TcBBE_Y_b4dScxHSU,6949
11
- msfabricpysdkcore/environment.py,sha256=4k2Le1mAQIrfcpNc3n1DbgdCzAldGTSTCbiDQGk0DlA,2784
12
- msfabricpysdkcore/fabric_azure_capacity.py,sha256=7JxMp9weiKG_mDjlRK-88oIXr0kdG0pzv-Ouycf3fus,2808
13
- msfabricpysdkcore/fabric_azure_client.py,sha256=I7Z0Y8Xy_esQcPaXgPL7EAkQmoQkAklJO4hxk_90dno,10722
14
- msfabricpysdkcore/item.py,sha256=xMbIdITQ8Ii1-8hnvR7M4mUXPpCmsUL2tlKBxT-wEsE,8900
15
- msfabricpysdkcore/job_instance.py,sha256=rtZp-OpuzfdMiQyuQLum38lgcfSZJTr3s9sECZglcWg,2389
16
- msfabricpysdkcore/lakehouse.py,sha256=yIrzatWM9emPn-Y54Cg_ZdAydIWjxrpK65jIQ4SClgE,1703
17
- msfabricpysdkcore/long_running_operation.py,sha256=XTlsueSZKVFICxhx99geEQ6btZFlFb8-lssigmQ9c6Y,2133
18
- msfabricpysdkcore/onelakeshortcut.py,sha256=H02wR6Z86qTEJOwVRMKz1Ou3K88Y9pfJa91vizjprvo,1661
19
- msfabricpysdkcore/otheritems.py,sha256=6Gqx2w7VWRq6G7qOCkmhmUha5f52WZQ3jPA5A0HzwZc,15355
20
- msfabricpysdkcore/spark_custom_pool.py,sha256=YsEULaQG-FO507aPIb-4kk93ZWBmDZj6fbOEHYoyxHE,3188
21
- msfabricpysdkcore/workspace.py,sha256=oiZADyl5VTRKtIGivcBU0kWUTVYKJEyHvrYauVEjbRU,49965
22
- msfabricpysdkcore/util/__init__.py,sha256=p-1dC4AurfKdIUppNVlRCIcmwHBTURqfgIwxcie3fEA,50
23
- msfabricpysdkcore/util/logger.py,sha256=XXdeaqI-BhXZgacChKrWP88TPU4FTWvS8L0YWjCT54A,1166
24
- msfabricpysdkcore-0.2.1.dist-info/LICENSE,sha256=1NrGuF-zOmzbwzk3iI6lsP9koyDeKO1B0-8OD_tTvOQ,1156
25
- msfabricpysdkcore-0.2.1.dist-info/METADATA,sha256=WmhOfDyrAtkQSTxeN0QeEgqoQtR7lJAfQvxsiDpzZ5A,32114
26
- msfabricpysdkcore-0.2.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
27
- msfabricpysdkcore-0.2.1.dist-info/top_level.txt,sha256=3iRonu6ptDGQN4Yl6G76XGM7xbFNsskiEHW-P2gMQGY,18
28
- msfabricpysdkcore-0.2.1.dist-info/RECORD,,