msfabricpysdkcore 0.1.7__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/adminapi.py +36 -10
- msfabricpysdkcore/coreapi.py +1027 -88
- msfabricpysdkcore/item.py +41 -2
- msfabricpysdkcore/job_instance.py +2 -1
- msfabricpysdkcore/otheritems.py +66 -10
- msfabricpysdkcore/workspace.py +148 -11
- {msfabricpysdkcore-0.1.7.dist-info → msfabricpysdkcore-0.2.1.dist-info}/METADATA +246 -12
- {msfabricpysdkcore-0.1.7.dist-info → msfabricpysdkcore-0.2.1.dist-info}/RECORD +11 -11
- {msfabricpysdkcore-0.1.7.dist-info → msfabricpysdkcore-0.2.1.dist-info}/WHEEL +1 -1
- {msfabricpysdkcore-0.1.7.dist-info → msfabricpysdkcore-0.2.1.dist-info}/LICENSE +0 -0
- {msfabricpysdkcore-0.1.7.dist-info → msfabricpysdkcore-0.2.1.dist-info}/top_level.txt +0 -0
msfabricpysdkcore/coreapi.py
CHANGED
@@ -65,6 +65,193 @@ class FabricClientCore(FabricClient):
|
|
65
65
|
items = [Capacity.from_dict(i) for i in items]
|
66
66
|
return items
|
67
67
|
|
68
|
+
# Connections
|
69
|
+
|
70
|
+
# POST https://api.fabric.microsoft.com/v1/connections/{connectionId}/roleAssignments
|
71
|
+
|
72
|
+
def add_connection_role_assignment(self, connection_id, principal, role):
|
73
|
+
"""Add a role assignment to a connection
|
74
|
+
Args:
|
75
|
+
connection_id (str): The ID of the connection
|
76
|
+
principal (str): The principal
|
77
|
+
role (str): The role
|
78
|
+
Returns:
|
79
|
+
dict: The role assignment
|
80
|
+
"""
|
81
|
+
url = f"https://api.fabric.microsoft.com/v1/connections/{connection_id}/roleAssignments"
|
82
|
+
|
83
|
+
body = {
|
84
|
+
'principal': principal,
|
85
|
+
'role': role
|
86
|
+
}
|
87
|
+
|
88
|
+
response_json = self.calling_routine(url, operation="POST", body=body, response_codes=[201, 429],
|
89
|
+
error_message="Error adding connection role assignment", return_format="json")
|
90
|
+
return response_json
|
91
|
+
|
92
|
+
def create_connection(self, connection_request):
|
93
|
+
"""Create a connection
|
94
|
+
Args:
|
95
|
+
connection_request (dict): The connection request
|
96
|
+
Returns:
|
97
|
+
dict: The connection
|
98
|
+
"""
|
99
|
+
url = "https://api.fabric.microsoft.com/v1/connections"
|
100
|
+
|
101
|
+
response_json = self.calling_routine(url, operation="POST", body=connection_request, response_codes=[201, 429],
|
102
|
+
error_message="Error creating connection", return_format="json")
|
103
|
+
return response_json
|
104
|
+
|
105
|
+
def delete_connection(self, connection_id):
|
106
|
+
"""Delete a connection
|
107
|
+
Args:
|
108
|
+
connection_id (str): The ID of the connection
|
109
|
+
Returns:
|
110
|
+
int: The status code of the response
|
111
|
+
"""
|
112
|
+
url = f"https://api.fabric.microsoft.com/v1/connections/{connection_id}"
|
113
|
+
|
114
|
+
response = self.calling_routine(url, operation="DELETE", response_codes=[200, 429], return_format="response",
|
115
|
+
error_message="Error deleting connection")
|
116
|
+
return response.status_code
|
117
|
+
|
118
|
+
def delete_connection_role_assignment(self, connection_id, connection_role_assignment_id):
|
119
|
+
"""Delete a role assignment for a connection
|
120
|
+
Args:
|
121
|
+
connection_id (str): The ID of the connection
|
122
|
+
connection_role_assignment_id (str): The ID of the role assignment
|
123
|
+
Returns:
|
124
|
+
int: The status code of the response
|
125
|
+
"""
|
126
|
+
url = f"https://api.fabric.microsoft.com/v1/connections/{connection_id}/roleAssignments/{connection_role_assignment_id}"
|
127
|
+
|
128
|
+
response = self.calling_routine(url, operation="DELETE", response_codes=[200, 429], return_format="response",
|
129
|
+
error_message="Error deleting connection role assignment")
|
130
|
+
return response.status_code
|
131
|
+
|
132
|
+
|
133
|
+
def get_connection(self, connection_id = None, connection_name = None):
|
134
|
+
"""Get a connection
|
135
|
+
Args:
|
136
|
+
connection_id (str): The ID of the connection
|
137
|
+
Returns:
|
138
|
+
dict: The connection
|
139
|
+
"""
|
140
|
+
if connection_id is None and connection_name is not None:
|
141
|
+
connections = self.list_connections()
|
142
|
+
for connection in connections:
|
143
|
+
if connection["displayName"] == connection_name:
|
144
|
+
connection_id = connection["id"]
|
145
|
+
break
|
146
|
+
if connection_id is None:
|
147
|
+
raise Exception("Please provide either connection_id or connection_name")
|
148
|
+
|
149
|
+
url = f"https://api.fabric.microsoft.com/v1/connections/{connection_id}"
|
150
|
+
response_json = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
151
|
+
error_message="Error getting connection", return_format="json")
|
152
|
+
return response_json
|
153
|
+
|
154
|
+
# GET https://api.fabric.microsoft.com/v1/connections/{connectionId}/roleAssignments/{connectionRoleAssignmentId}
|
155
|
+
def get_connection_role_assignment(self, connection_id, connection_role_assignment_id):
|
156
|
+
"""Get a role assignment for a connection
|
157
|
+
Args:
|
158
|
+
connection_id (str): The ID of the connection
|
159
|
+
connection_role_assignment_id (str): The ID of the role assignment
|
160
|
+
Returns:
|
161
|
+
dict: The role assignment
|
162
|
+
"""
|
163
|
+
url = f"https://api.fabric.microsoft.com/v1/connections/{connection_id}/roleAssignments/{connection_role_assignment_id}"
|
164
|
+
|
165
|
+
response_json = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
166
|
+
error_message="Error getting connection role assignment", return_format="json")
|
167
|
+
return response_json
|
168
|
+
|
169
|
+
def list_connection_role_assignments(self, connection_id):
|
170
|
+
"""List role assignments for a connection
|
171
|
+
Args:
|
172
|
+
connection_id (str): The ID of the connection
|
173
|
+
Returns:
|
174
|
+
list: The list of role assignments
|
175
|
+
"""
|
176
|
+
url = f"https://api.fabric.microsoft.com/v1/connections/{connection_id}/roleAssignments"
|
177
|
+
|
178
|
+
items = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
179
|
+
error_message="Error listing connection role assignments", return_format="value_json", paging=True)
|
180
|
+
return items
|
181
|
+
|
182
|
+
def list_connections(self):
|
183
|
+
"""Returns a list of on-premises, virtual network and cloud connections the user has permission for.
|
184
|
+
Returns:
|
185
|
+
list: The list of connections
|
186
|
+
"""
|
187
|
+
# GET https://api.fabric.microsoft.com/v1/connections
|
188
|
+
|
189
|
+
url = "https://api.fabric.microsoft.com/v1/connections"
|
190
|
+
|
191
|
+
items = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
192
|
+
error_message="Error listing connections", return_format="value_json", paging=True)
|
193
|
+
|
194
|
+
return items
|
195
|
+
|
196
|
+
def list_supported_connection_types(self, gateway_id = None, show_all_creation_methods = None):
|
197
|
+
"""List supported connection types
|
198
|
+
Args:
|
199
|
+
gateway_id (str): The ID of the gateway
|
200
|
+
show_all_creation_methods (bool): Whether to show all creation methods
|
201
|
+
Returns:
|
202
|
+
list: The list of supported connection types
|
203
|
+
"""
|
204
|
+
url = "https://api.fabric.microsoft.com/v1/connections/supportedConnectionTypes"
|
205
|
+
|
206
|
+
if gateway_id:
|
207
|
+
url += f"?gatewayId={gateway_id}"
|
208
|
+
if show_all_creation_methods:
|
209
|
+
if "?" in url:
|
210
|
+
url += "&"
|
211
|
+
else:
|
212
|
+
url += "?"
|
213
|
+
url += "showAllCreationMethods=" + str(show_all_creation_methods)
|
214
|
+
|
215
|
+
items = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
216
|
+
error_message="Error listing supported connection types", return_format="value_json", paging=True)
|
217
|
+
|
218
|
+
return items
|
219
|
+
|
220
|
+
def update_connection(self, connection_id, connection_request):
|
221
|
+
"""Update a connection
|
222
|
+
Args:
|
223
|
+
connection_id (str): The ID of the connection
|
224
|
+
connection_request (dict): The connection request
|
225
|
+
Returns:
|
226
|
+
dict: The updated connection
|
227
|
+
"""
|
228
|
+
url = f"https://api.fabric.microsoft.com/v1/connections/{connection_id}"
|
229
|
+
|
230
|
+
response_json = self.calling_routine(url, operation="PATCH", body=connection_request, response_codes=[200, 429],
|
231
|
+
error_message="Error updating connection", return_format="json")
|
232
|
+
return response_json
|
233
|
+
|
234
|
+
# PATCH https://api.fabric.microsoft.com/v1/connections/{connectionId}/roleAssignments/{connectionRoleAssignmentId}
|
235
|
+
|
236
|
+
def update_connection_role_assignment(self, connection_id, connection_role_assignment_id, role):
|
237
|
+
"""Update a role assignment for a connection
|
238
|
+
Args:
|
239
|
+
connection_id (str): The ID of the connection
|
240
|
+
connection_role_assignment_id (str): The ID of the role assignment
|
241
|
+
role (str): The role
|
242
|
+
Returns:
|
243
|
+
dict: The role assignment
|
244
|
+
"""
|
245
|
+
url = f"https://api.fabric.microsoft.com/v1/connections/{connection_id}/roleAssignments/{connection_role_assignment_id}"
|
246
|
+
|
247
|
+
body = {
|
248
|
+
'role': role
|
249
|
+
}
|
250
|
+
|
251
|
+
response_json = self.calling_routine(url, operation="PATCH", body=body, response_codes=[200, 429],
|
252
|
+
error_message="Error updating connection role assignment", return_format="json")
|
253
|
+
return response_json
|
254
|
+
|
68
255
|
# Deployment Pipelines
|
69
256
|
|
70
257
|
def deploy_stage_content(self, deployment_pipeline_id, source_stage_id, target_stage_id, created_workspace_details = None,
|
@@ -268,6 +455,211 @@ class FabricClientCore(FabricClient):
|
|
268
455
|
response = self.calling_routine(url, operation="POST", response_codes=[200, 429], error_message="Error revoking external data share", return_format="response")
|
269
456
|
return response.status_code
|
270
457
|
|
458
|
+
# Gateways
|
459
|
+
|
460
|
+
def add_gateway_role_assignment(self, gateway_id, principal, role):
|
461
|
+
"""Add a role assignment to a gateway
|
462
|
+
Args:
|
463
|
+
gateway_id (str): The ID of the gateway
|
464
|
+
principal (str): The principal
|
465
|
+
role (str): The role
|
466
|
+
Returns:
|
467
|
+
dict: The role assignment
|
468
|
+
"""
|
469
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}/roleAssignments"
|
470
|
+
|
471
|
+
body = {
|
472
|
+
'principal': principal,
|
473
|
+
'role': role
|
474
|
+
}
|
475
|
+
|
476
|
+
response_json = self.calling_routine(url, operation="POST", body=body, response_codes=[201, 429],
|
477
|
+
error_message="Error adding gateway role assignment", return_format="json")
|
478
|
+
return response_json
|
479
|
+
|
480
|
+
def create_gateway(self, gateway_request):
|
481
|
+
"""Create a gateway
|
482
|
+
Args:
|
483
|
+
gateway_request (dict): The gateway request
|
484
|
+
Returns:
|
485
|
+
dict: The gateway
|
486
|
+
"""
|
487
|
+
url = "https://api.fabric.microsoft.com/v1/gateways"
|
488
|
+
|
489
|
+
response_json = self.calling_routine(url, operation="POST", body=gateway_request, response_codes=[200, 201, 429],
|
490
|
+
error_message="Error creating gateway", return_format="json")
|
491
|
+
return response_json
|
492
|
+
|
493
|
+
def delete_gateway(self, gateway_id):
|
494
|
+
"""Delete a gateway
|
495
|
+
Args:
|
496
|
+
gateway_id (str): The ID of the gateway
|
497
|
+
Returns:
|
498
|
+
int: The status code of the response
|
499
|
+
"""
|
500
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}"
|
501
|
+
|
502
|
+
response = self.calling_routine(url, operation="DELETE", response_codes=[200, 429], return_format="response",
|
503
|
+
error_message="Error deleting gateway")
|
504
|
+
return response.status_code
|
505
|
+
|
506
|
+
def delete_gateway_member(self, gateway_id, gateway_member_id):
|
507
|
+
"""Delete a gateway member
|
508
|
+
Args:
|
509
|
+
gateway_id (str): The ID of the gateway
|
510
|
+
gateway_member_id (str): The ID of the gateway member
|
511
|
+
Returns:
|
512
|
+
int: The status code of the response
|
513
|
+
"""
|
514
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}/members/{gateway_member_id}"
|
515
|
+
|
516
|
+
response = self.calling_routine(url, operation="DELETE", response_codes=[200, 429], return_format="response",
|
517
|
+
error_message="Error deleting gateway member")
|
518
|
+
return response.status_code
|
519
|
+
|
520
|
+
def delete_gateway_role_assignment(self, gateway_id, gateway_role_assignment_id):
|
521
|
+
"""Delete a gateway role assignment
|
522
|
+
Args:
|
523
|
+
gateway_id (str): The ID of the gateway
|
524
|
+
gateway_role_assignment_id (str): The ID of the gateway role assignment
|
525
|
+
Returns:
|
526
|
+
int: The status code of the response
|
527
|
+
"""
|
528
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}/roleAssignments/{gateway_role_assignment_id}"
|
529
|
+
|
530
|
+
response = self.calling_routine(url, operation="DELETE", response_codes=[200, 429], return_format="response",
|
531
|
+
error_message="Error deleting gateway role assignment")
|
532
|
+
return response.status_code
|
533
|
+
|
534
|
+
def get_gateway(self, gateway_id = None, gateway_name = None):
|
535
|
+
"""Get a gateway
|
536
|
+
Args:
|
537
|
+
gateway_id (str): The ID of the gateway
|
538
|
+
gateway_name (str): The name of the gateway
|
539
|
+
Returns:
|
540
|
+
dict: The gateway
|
541
|
+
"""
|
542
|
+
if gateway_id is None and gateway_name is not None:
|
543
|
+
gateways = self.list_gateways()
|
544
|
+
for gateway in gateways:
|
545
|
+
if gateway["displayName"] == gateway_name:
|
546
|
+
gateway_id = gateway["id"]
|
547
|
+
break
|
548
|
+
if gateway_id is None:
|
549
|
+
raise Exception("Please provide either gateway_id or gateway_name")
|
550
|
+
|
551
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}"
|
552
|
+
response_json = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
553
|
+
error_message="Error getting gateway", return_format="json")
|
554
|
+
return response_json
|
555
|
+
|
556
|
+
def get_gateway_role_assignment(self, gateway_id, gateway_role_assignment_id):
|
557
|
+
"""Get a gateway role assignment
|
558
|
+
Args:
|
559
|
+
gateway_id (str): The
|
560
|
+
gateway_role_assignment_id (str): The ID of the gateway role assignment
|
561
|
+
Returns:
|
562
|
+
dict: The gateway role assignment
|
563
|
+
"""
|
564
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}/roleAssignments/{gateway_role_assignment_id}"
|
565
|
+
|
566
|
+
response_json = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
567
|
+
error_message="Error getting gateway role assignment", return_format="json")
|
568
|
+
return response_json
|
569
|
+
|
570
|
+
def list_gateway_members(self, gateway_id):
|
571
|
+
"""List gateway members
|
572
|
+
Args:
|
573
|
+
gateway_id (str): The ID of the gateway
|
574
|
+
Returns:
|
575
|
+
list: The list of gateway members
|
576
|
+
"""
|
577
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}/members"
|
578
|
+
|
579
|
+
items = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
580
|
+
error_message="Error listing gateway members", return_format="value_json", paging=True)
|
581
|
+
return items
|
582
|
+
|
583
|
+
def list_gateway_role_assignments(self, gateway_id):
|
584
|
+
"""List gateway role assignments
|
585
|
+
Args:
|
586
|
+
gateway_id (str): The ID of the gateway
|
587
|
+
Returns:
|
588
|
+
list: The list of gateway role assignments
|
589
|
+
"""
|
590
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}/roleAssignments"
|
591
|
+
|
592
|
+
items = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
593
|
+
error_message="Error listing gateway role assignments", return_format="value_json", paging=True)
|
594
|
+
return items
|
595
|
+
|
596
|
+
def list_gateways(self):
|
597
|
+
"""List gateways
|
598
|
+
Returns:
|
599
|
+
list: The list of gateways
|
600
|
+
"""
|
601
|
+
url = "https://api.fabric.microsoft.com/v1/gateways"
|
602
|
+
|
603
|
+
items = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
604
|
+
error_message="Error listing gateways", return_format="value_json", paging=True)
|
605
|
+
return items
|
606
|
+
|
607
|
+
def update_gateway(self, gateway_id, gateway_request):
|
608
|
+
"""Update a gateway
|
609
|
+
Args:
|
610
|
+
gateway_id (str): The ID of the gateway
|
611
|
+
gateway_request (dict): The gateway request
|
612
|
+
Returns:
|
613
|
+
dict: The updated gateway
|
614
|
+
"""
|
615
|
+
|
616
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}"
|
617
|
+
|
618
|
+
response_json = self.calling_routine(url, operation="PATCH", body=gateway_request, response_codes=[200, 429],
|
619
|
+
error_message="Error updating gateway", return_format="json")
|
620
|
+
return response_json
|
621
|
+
|
622
|
+
def update_gateway_member(self, gateway_id, gateway_member_id, display_name, enabled):
|
623
|
+
"""Update a gateway member
|
624
|
+
Args:
|
625
|
+
gateway_id (str): The ID of the gateway
|
626
|
+
gateway_member_id (str): The ID of the gateway member
|
627
|
+
display_name (str): The display name of the gateway member
|
628
|
+
enabled (bool): Whether the gateway member is enabled
|
629
|
+
Returns:
|
630
|
+
dict: The updated gateway member
|
631
|
+
"""
|
632
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}/members/{gateway_member_id}"
|
633
|
+
|
634
|
+
body = {
|
635
|
+
'displayName': display_name,
|
636
|
+
'enabled': enabled
|
637
|
+
}
|
638
|
+
|
639
|
+
response_json = self.calling_routine(url, operation="PATCH", body=body, response_codes=[200, 429],
|
640
|
+
error_message="Error updating gateway member", return_format="json")
|
641
|
+
return response_json
|
642
|
+
|
643
|
+
def update_gateway_role_assignment(self, gateway_id, gateway_role_assignment_id, role):
|
644
|
+
"""Update a gateway role assignment
|
645
|
+
Args:
|
646
|
+
gateway_id (str): The ID of the gateway
|
647
|
+
gateway_role_assignment_id (str): The ID of the gateway role assignment
|
648
|
+
role (str): The role
|
649
|
+
Returns:
|
650
|
+
dict: The updated gateway role assignment
|
651
|
+
"""
|
652
|
+
|
653
|
+
url = f"https://api.fabric.microsoft.com/v1/gateways/{gateway_id}/roleAssignments/{gateway_role_assignment_id}"
|
654
|
+
|
655
|
+
body = {
|
656
|
+
'role': role
|
657
|
+
}
|
658
|
+
|
659
|
+
response_json = self.calling_routine(url, operation="PATCH", body=body, response_codes=[200, 429],
|
660
|
+
error_message="Error updating gateway role assignment", return_format="json")
|
661
|
+
return response_json
|
662
|
+
|
271
663
|
# Git
|
272
664
|
|
273
665
|
def commit_to_git(self, workspace_id, mode, comment=None, items=None, workspace_head=None):
|
@@ -348,6 +740,22 @@ class FabricClientCore(FabricClient):
|
|
348
740
|
error_message="Error getting git connection info", return_format="json")
|
349
741
|
|
350
742
|
return response_json
|
743
|
+
|
744
|
+
def get_my_git_credentials(self, workspace_id):
|
745
|
+
# GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/git/myGitCredentials
|
746
|
+
"""Get my git credentials
|
747
|
+
Args:
|
748
|
+
workspace_id (str): The ID of the workspace
|
749
|
+
Returns:
|
750
|
+
dict: The git credentials
|
751
|
+
"""
|
752
|
+
|
753
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/git/myGitCredentials"
|
754
|
+
|
755
|
+
response_json = self.calling_routine(url=url, operation="GET", response_codes=[200, 429],
|
756
|
+
error_message="Error getting git credentials", return_format="json")
|
757
|
+
|
758
|
+
return response_json
|
351
759
|
|
352
760
|
def git_get_status(self, workspace_id):
|
353
761
|
"""Get git connection status
|
@@ -405,6 +813,23 @@ class FabricClientCore(FabricClient):
|
|
405
813
|
|
406
814
|
return response.status_code
|
407
815
|
|
816
|
+
def update_my_git_credentials(self, workspace_id, git_credentials):
|
817
|
+
#PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/git/myGitCredentials
|
818
|
+
"""Update my git credentials
|
819
|
+
Args:
|
820
|
+
git_credentials (dict): The git provider details
|
821
|
+
Returns:
|
822
|
+
dict: The response object
|
823
|
+
"""
|
824
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/git/myGitCredentials"
|
825
|
+
|
826
|
+
body = git_credentials
|
827
|
+
|
828
|
+
response = self.calling_routine(url=url, operation="PATCH", body=body,
|
829
|
+
response_codes=[200, 429],
|
830
|
+
error_message="Error updating git credentials", return_format="json")
|
831
|
+
|
832
|
+
return response
|
408
833
|
|
409
834
|
# Items
|
410
835
|
|
@@ -442,12 +867,16 @@ class FabricClientCore(FabricClient):
|
|
442
867
|
return self.get_eventstream(workspace_id, item_dict["id"])
|
443
868
|
if item_dict["type"] == "Eventhouse":
|
444
869
|
return self.get_eventhouse(workspace_id, item_dict["id"])
|
870
|
+
if item_dict["type"] == "KQLDashboard":
|
871
|
+
return self.get_kql_dashboard(workspace_id, item_dict["id"])
|
445
872
|
if item_dict["type"] == "KQLDatabase":
|
446
873
|
return self.get_kql_database(workspace_id, item_dict["id"])
|
447
874
|
if item_dict["type"] == "KQLQueryset":
|
448
875
|
return self.get_kql_queryset(workspace_id, item_dict["id"])
|
449
876
|
if item_dict["type"] == "Lakehouse":
|
450
877
|
return self.get_lakehouse(workspace_id, item_dict["id"])
|
878
|
+
if item_dict["type"] == "MirroredDatabase":
|
879
|
+
return self.get_mirrored_database(workspace_id, item_dict["id"])
|
451
880
|
if item_dict["type"] == "MLExperiment":
|
452
881
|
return self.get_ml_experiment(workspace_id, item_dict["id"])
|
453
882
|
if item_dict["type"] == "MLModel":
|
@@ -511,7 +940,10 @@ class FabricClientCore(FabricClient):
|
|
511
940
|
"eventhouses",
|
512
941
|
"eventstreams",
|
513
942
|
"kqlDatabases",
|
943
|
+
"kqlDashboards",
|
944
|
+
"kqlQuerysets",
|
514
945
|
"lakehouses",
|
946
|
+
"mirroredDatabases",
|
515
947
|
"mlExperiments",
|
516
948
|
"mlModels",
|
517
949
|
"notebooks",
|
@@ -528,7 +960,6 @@ class FabricClientCore(FabricClient):
|
|
528
960
|
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/{type}"
|
529
961
|
body.pop('type')
|
530
962
|
|
531
|
-
|
532
963
|
item_dict = self.calling_routine(url, operation="POST",
|
533
964
|
body=body, response_codes=[201, 202, 429],
|
534
965
|
error_message="Error creating item", return_format="json+operation_result",
|
@@ -544,8 +975,11 @@ class FabricClientCore(FabricClient):
|
|
544
975
|
"environments": "Environment",
|
545
976
|
"eventhouses": "Eventhouse",
|
546
977
|
"eventstreams": "Eventstream",
|
978
|
+
"kqlDashboards": "KQLDashboard",
|
547
979
|
"kqlDatabases": "KQLDatabase",
|
548
|
-
"
|
980
|
+
"kqlQuerysets": "KQLQueryset",
|
981
|
+
"lakehouses": "Lakehouse",
|
982
|
+
"mirroredDatabases": "MirroredDatabase",
|
549
983
|
"mlExperiments": "MLExperiment",
|
550
984
|
"mlModels": "MLModel",
|
551
985
|
"notebooks": "Notebook",
|
@@ -590,6 +1024,8 @@ class FabricClientCore(FabricClient):
|
|
590
1024
|
return self.get_data_pipeline(workspace_id, item_id, item_name)
|
591
1025
|
if item_type.lower() == "eventstream":
|
592
1026
|
return self.get_eventstream(workspace_id, item_id, item_name)
|
1027
|
+
if item_type.lower() == "kqldashboard":
|
1028
|
+
return self.get_kql_dashboard(workspace_id, item_id, item_name)
|
593
1029
|
if item_type.lower() == "kqldatabase":
|
594
1030
|
return self.get_kql_database(workspace_id, item_id, item_name)
|
595
1031
|
if item_type.lower() == "kqlqueryset":
|
@@ -643,6 +1079,22 @@ class FabricClientCore(FabricClient):
|
|
643
1079
|
return response.status_code
|
644
1080
|
|
645
1081
|
# List
|
1082
|
+
|
1083
|
+
def list_item_connections(self, workspace_id, item_id):
|
1084
|
+
"""List item connections
|
1085
|
+
Args:
|
1086
|
+
workspace_id (str): The ID of the workspace
|
1087
|
+
item_id (str): The ID of the item
|
1088
|
+
Returns:
|
1089
|
+
dict: The item connections
|
1090
|
+
"""
|
1091
|
+
#GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/connections
|
1092
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/connections"
|
1093
|
+
|
1094
|
+
response_json = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
1095
|
+
error_message="Error listing item connections", return_format="value_json", paging=True)
|
1096
|
+
|
1097
|
+
return response_json
|
646
1098
|
|
647
1099
|
def list_items(self, workspace_id, with_properties = False, type = None):
|
648
1100
|
"""List items in a workspace
|
@@ -692,7 +1144,7 @@ class FabricClientCore(FabricClient):
|
|
692
1144
|
return_format="json+operation_result")
|
693
1145
|
|
694
1146
|
|
695
|
-
def update_item(self, workspace_id, item_id, display_name = None, description = None, type = None, return_item=
|
1147
|
+
def update_item(self, workspace_id, item_id, display_name = None, description = None, type = None, return_item=False):
|
696
1148
|
"""Update the item
|
697
1149
|
Args:
|
698
1150
|
workspace_id (str): The ID of the workspace
|
@@ -716,19 +1168,12 @@ class FabricClientCore(FabricClient):
|
|
716
1168
|
resp_dict = self.calling_routine(url, operation="PATCH", body=payload,
|
717
1169
|
response_codes=[200, 429], error_message="Error updating item",
|
718
1170
|
return_format="json")
|
719
|
-
|
720
|
-
warn(
|
721
|
-
message="Updating an item currently will make invoke an additional API call to get the item object. "
|
722
|
-
"The default behaviour of returning the item object will change in newer versions of the SDK. "
|
723
|
-
"To keep this behaviour, set return_item=True in the function call.",
|
724
|
-
category=FutureWarning,
|
725
|
-
stacklevel=2
|
726
|
-
)
|
1171
|
+
|
727
1172
|
if return_item:
|
728
1173
|
return self.get_item_specific(workspace_id, resp_dict)
|
729
1174
|
return resp_dict
|
730
1175
|
|
731
|
-
def update_item_definition(self, workspace_id, item_id, definition, type = None, wait_for_completion=True):
|
1176
|
+
def update_item_definition(self, workspace_id, item_id, definition, type = None, wait_for_completion=True, **kwargs):
|
732
1177
|
"""Update the item definition
|
733
1178
|
Args:
|
734
1179
|
workspace_id (str): The ID of the workspace
|
@@ -738,11 +1183,15 @@ class FabricClientCore(FabricClient):
|
|
738
1183
|
Returns:
|
739
1184
|
requests.Response: The response object
|
740
1185
|
"""
|
1186
|
+
|
741
1187
|
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/updateDefinition"
|
742
1188
|
|
743
1189
|
if type:
|
744
1190
|
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/{type}/{item_id}/updateDefinition"
|
745
|
-
|
1191
|
+
|
1192
|
+
if "update_metadata" in kwargs and kwargs["update_metadata"]:
|
1193
|
+
url = f"{url}?updateMetadata={kwargs['update_metadata']}"
|
1194
|
+
|
746
1195
|
payload = {
|
747
1196
|
'definition': definition
|
748
1197
|
}
|
@@ -792,6 +1241,65 @@ class FabricClientCore(FabricClient):
|
|
792
1241
|
job_dict['itemId'] = item_id
|
793
1242
|
return JobInstance.from_dict(job_dict, core_client=self)
|
794
1243
|
|
1244
|
+
def create_item_schedule(self, workspace_id, item_id, job_type, configuration, enabled):
|
1245
|
+
"""Create a job schedule for the item
|
1246
|
+
Args:
|
1247
|
+
workspace_id (str): The ID of the workspace
|
1248
|
+
item_id (str): The ID of the item
|
1249
|
+
job_type (str): The type of the job
|
1250
|
+
Returns:
|
1251
|
+
dict: The job schedule
|
1252
|
+
"""
|
1253
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/jobs/{job_type}/schedules"
|
1254
|
+
|
1255
|
+
payload = {"configuration": configuration,
|
1256
|
+
"enabled": enabled}
|
1257
|
+
|
1258
|
+
return self.calling_routine(url=url, operation="POST", body=payload, response_codes=[201, 429],
|
1259
|
+
error_message="Error creating job schedule", return_format="json")
|
1260
|
+
|
1261
|
+
def get_item_schedule(self, workspace_id, item_id, job_type, schedule_id):
|
1262
|
+
"""Get the job schedule of the item
|
1263
|
+
Args:
|
1264
|
+
workspace_id (str): The ID of the workspace
|
1265
|
+
item_id (str): The ID of the item
|
1266
|
+
job_type (str): The type of the job
|
1267
|
+
schedule_id (str): The ID of the schedule
|
1268
|
+
Returns:
|
1269
|
+
dict: The job schedule
|
1270
|
+
"""
|
1271
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/jobs/{job_type}/schedules/{schedule_id}"
|
1272
|
+
|
1273
|
+
return self.calling_routine(url=url, operation="GET", response_codes=[200, 429],
|
1274
|
+
error_message="Error getting job schedule", return_format="json")
|
1275
|
+
|
1276
|
+
def list_item_job_instances(self, workspace_id, item_id):
|
1277
|
+
"""List the job instances of the item
|
1278
|
+
Args:
|
1279
|
+
workspace_id (str): The ID of the workspace
|
1280
|
+
item_id (str): The ID of the item
|
1281
|
+
job_type (str): The type of the job
|
1282
|
+
Returns:
|
1283
|
+
list: The list of job instances
|
1284
|
+
"""
|
1285
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/jobs/instances"
|
1286
|
+
|
1287
|
+
return self.calling_routine(url=url, operation="GET", response_codes=[200, 429],
|
1288
|
+
error_message="Error listing job instances", return_format="value_json", paging=True)
|
1289
|
+
|
1290
|
+
def list_item_schedules(self, workspace_id, item_id, job_type):
|
1291
|
+
"""List the job schedules of the item
|
1292
|
+
Args:
|
1293
|
+
workspace_id (str): The ID of the workspace
|
1294
|
+
item_id (str): The ID of the item
|
1295
|
+
job_type (str): The type of the job
|
1296
|
+
Returns:
|
1297
|
+
list: The list of job schedules
|
1298
|
+
"""
|
1299
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/jobs/{job_type}/schedules"
|
1300
|
+
|
1301
|
+
return self.calling_routine(url=url, operation="GET", response_codes=[200, 429],
|
1302
|
+
error_message="Error listing job schedules", return_format="value_json", paging=True)
|
795
1303
|
|
796
1304
|
def run_on_demand_item_job(self, workspace_id, item_id, job_type, execution_data = None):
|
797
1305
|
"""Run an on demand job on the item
|
@@ -818,38 +1326,133 @@ class FabricClientCore(FabricClient):
|
|
818
1326
|
job_instance = self.get_item_job_instance(workspace_id, item_id, job_instance_id=job_instance_id)
|
819
1327
|
return job_instance
|
820
1328
|
|
1329
|
+
def update_item_schedule(self, workspace_id, item_id, job_type, schedule_id, configuration, enabled):
|
1330
|
+
"""Update the job schedule of the item
|
1331
|
+
Args:
|
1332
|
+
workspace_id (str): The ID of the workspace
|
1333
|
+
item_id (str): The ID of the item
|
1334
|
+
job_type (str): The type of the job
|
1335
|
+
schedule_id (str): The ID of the schedule
|
1336
|
+
configuration (dict): The configuration of the schedule
|
1337
|
+
Returns:
|
1338
|
+
dict: The updated job schedule
|
1339
|
+
"""
|
1340
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/jobs/{job_type}/schedules/{schedule_id}"
|
1341
|
+
|
1342
|
+
payload = {"configuration": configuration,
|
1343
|
+
"enabled": enabled}
|
1344
|
+
|
1345
|
+
return self.calling_routine(url=url, operation="PATCH", body=payload, response_codes=[200, 429],
|
1346
|
+
error_message="Error updating job schedule", return_format="json")
|
1347
|
+
|
821
1348
|
# long running operations
|
822
1349
|
|
823
|
-
def get_operation_results(self, operation_id):
|
824
|
-
"""Get the results of an operation
|
1350
|
+
def get_operation_results(self, operation_id):
|
1351
|
+
"""Get the results of an operation
|
1352
|
+
Args:
|
1353
|
+
operation_id (str): The ID of the operation
|
1354
|
+
Returns:
|
1355
|
+
dict: The results of the operation
|
1356
|
+
"""
|
1357
|
+
url = f"https://api.fabric.microsoft.com/v1/operations/{operation_id}/result"
|
1358
|
+
|
1359
|
+
response = self.calling_routine(url=url, operation="GET", response_codes=[200, 429],
|
1360
|
+
error_message="Error getting operation results", return_format="response",
|
1361
|
+
continue_on_error_code=True)
|
1362
|
+
if response.status_code == 400:
|
1363
|
+
return {"no_operation_result": True}
|
1364
|
+
return json.loads(response.text)
|
1365
|
+
|
1366
|
+
def get_operation_state(self, operation_id):
|
1367
|
+
"""Get the state of an operation
|
1368
|
+
Args:
|
1369
|
+
operation_id (str): The ID of the operation
|
1370
|
+
Returns:
|
1371
|
+
dict: The state of the operation
|
1372
|
+
"""
|
1373
|
+
url = f"https://api.fabric.microsoft.com/v1/operations/{operation_id}"
|
1374
|
+
|
1375
|
+
response_json = self.calling_routine(url=url, operation="GET", response_codes=[200, 429],
|
1376
|
+
error_message="Error getting operation state", return_format="json")
|
1377
|
+
|
1378
|
+
return response_json
|
1379
|
+
|
1380
|
+
# Managed Private Endpoints:
|
1381
|
+
|
1382
|
+
def create_workspace_managed_private_endpoint(self, workspace_id, name, target_private_link_resource_id,
|
1383
|
+
target_subresource_type, request_message = None):
|
1384
|
+
|
1385
|
+
"""Create a managed private endpoint in a workspace
|
1386
|
+
Args:
|
1387
|
+
workspace_id (str): The ID of the workspace
|
1388
|
+
name (str): The name of the managed private endpoint
|
1389
|
+
target_private_link_resource_id (str): The target private link resource ID
|
1390
|
+
target_subresource_type (str): The target subresource type
|
1391
|
+
request_message (str): The request message
|
1392
|
+
Returns:
|
1393
|
+
dict: The created managed private endpoint
|
1394
|
+
"""
|
1395
|
+
|
1396
|
+
body = {
|
1397
|
+
"name": name,
|
1398
|
+
"targetPrivateLinkResourceId": target_private_link_resource_id,
|
1399
|
+
"targetSubresourceType": target_subresource_type
|
1400
|
+
}
|
1401
|
+
if request_message:
|
1402
|
+
body["requestMessage"] = request_message
|
1403
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/managedPrivateEndpoints"
|
1404
|
+
|
1405
|
+
response = self.calling_routine(url, operation="POST", body=body,
|
1406
|
+
response_codes=[201, 429], error_message="Error creating managed private endpoint",
|
1407
|
+
return_format="json")
|
1408
|
+
|
1409
|
+
return response
|
1410
|
+
|
1411
|
+
def delete_workspace_managed_private_endpoint(self, workspace_id, managed_private_endpoint_id):
|
1412
|
+
"""Delete a managed private endpoint in a workspace
|
1413
|
+
Args:
|
1414
|
+
workspace_id (str): The ID of the workspace
|
1415
|
+
managed_private_endpoint_id (str): The ID of the managed private endpoint
|
1416
|
+
Returns:
|
1417
|
+
int: The status code of the response
|
1418
|
+
"""
|
1419
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/managedPrivateEndpoints/{managed_private_endpoint_id}"
|
1420
|
+
|
1421
|
+
response = self.calling_routine(url, operation="DELETE", response_codes=[200, 429], return_format="response",
|
1422
|
+
error_message="Error deleting managed private endpoint")
|
1423
|
+
|
1424
|
+
return response.status_code
|
1425
|
+
|
1426
|
+
def get_workspace_managed_private_endpoint(self, workspace_id, managed_private_endpoint_id):
|
1427
|
+
"""Get a managed private endpoint in a workspace
|
825
1428
|
Args:
|
826
|
-
|
1429
|
+
workspace_id (str): The ID of the workspace
|
1430
|
+
managed_private_endpoint_id (str): The ID of the managed private endpoint
|
827
1431
|
Returns:
|
828
|
-
dict: The
|
1432
|
+
dict: The managed private endpoint
|
829
1433
|
"""
|
830
|
-
url = f"https://api.fabric.microsoft.com/v1/
|
1434
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/managedPrivateEndpoints/{managed_private_endpoint_id}"
|
831
1435
|
|
832
|
-
|
833
|
-
error_message="Error getting
|
834
|
-
|
835
|
-
|
836
|
-
return {"no_operation_result": True}
|
837
|
-
return json.loads(response.text)
|
1436
|
+
response_json = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
1437
|
+
error_message="Error getting managed private endpoint", return_format="json")
|
1438
|
+
|
1439
|
+
return response_json
|
838
1440
|
|
839
|
-
def
|
840
|
-
"""
|
1441
|
+
def list_workspace_managed_private_endpoints(self, workspace_id):
|
1442
|
+
"""List managed private endpoints in a workspace
|
841
1443
|
Args:
|
842
|
-
|
1444
|
+
workspace_id (str): The ID of the workspace
|
843
1445
|
Returns:
|
844
|
-
|
845
|
-
"""
|
846
|
-
url = f"https://api.fabric.microsoft.com/v1/
|
1446
|
+
list: The list of managed private endpoints
|
1447
|
+
"""
|
1448
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/managedPrivateEndpoints"
|
847
1449
|
|
848
|
-
response_json = self.calling_routine(url
|
849
|
-
error_message="Error
|
1450
|
+
response_json = self.calling_routine(url, operation="GET", response_codes=[200, 429], paging=True,
|
1451
|
+
error_message="Error listing managed private endpoints", return_format="json")
|
850
1452
|
|
851
1453
|
return response_json
|
852
1454
|
|
1455
|
+
|
853
1456
|
# One Lake Data Access Security
|
854
1457
|
|
855
1458
|
# create and update
|
@@ -961,6 +1564,30 @@ class FabricClientCore(FabricClient):
|
|
961
1564
|
|
962
1565
|
return response.status_code
|
963
1566
|
|
1567
|
+
# GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/shortcuts
|
1568
|
+
|
1569
|
+
def list_shortcuts(self, workspace_id, item_id, parent_path = None):
|
1570
|
+
"""List the shortcuts in the item
|
1571
|
+
Args:
|
1572
|
+
workspace_id (str): The ID of the workspace
|
1573
|
+
item_id (str): The ID of the item
|
1574
|
+
parent_path (str): The starting path from which to retrieve the shortcuts
|
1575
|
+
Returns:
|
1576
|
+
list: The list of shortcuts
|
1577
|
+
"""
|
1578
|
+
from msfabricpysdkcore.onelakeshortcut import OneLakeShortcut
|
1579
|
+
|
1580
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/shortcuts"
|
1581
|
+
if parent_path:
|
1582
|
+
url += f"?parentPath={parent_path}"
|
1583
|
+
|
1584
|
+
shortcuts = self.calling_routine(url, operation="GET", response_codes=[200, 429], error_message="Error listing shortcuts", return_format="value_json", paging=True)
|
1585
|
+
|
1586
|
+
for shortcut in shortcuts:
|
1587
|
+
shortcut['workspaceId'] = workspace_id
|
1588
|
+
shortcut['itemId'] = item_id
|
1589
|
+
return [OneLakeShortcut.from_dict(shortcut, core_client=self) for shortcut in shortcuts]
|
1590
|
+
|
964
1591
|
### Workspaces
|
965
1592
|
|
966
1593
|
def add_workspace_role_assignment(self, workspace_id, role, principal):
|
@@ -1127,6 +1754,8 @@ class FabricClientCore(FabricClient):
|
|
1127
1754
|
if ws.display_name == name:
|
1128
1755
|
return ws
|
1129
1756
|
|
1757
|
+
raise Exception(f"Workspace with name {name} not found")
|
1758
|
+
|
1130
1759
|
def get_workspace_role_assignment(self, workspace_id, workspace_role_assignment_id):
|
1131
1760
|
"""Get a role assignment for a workspace
|
1132
1761
|
Args:
|
@@ -1248,10 +1877,6 @@ class FabricClientCore(FabricClient):
|
|
1248
1877
|
def list_datamarts(self, workspace_id):
|
1249
1878
|
"""List datamarts in a workspace"""
|
1250
1879
|
return self.list_items(workspace_id, type="datamarts")
|
1251
|
-
|
1252
|
-
def list_paginated_reports(self, workspace_id):
|
1253
|
-
"""List paginated reports in a workspace"""
|
1254
|
-
return self.list_items(workspace_id, type="paginatedReports")
|
1255
1880
|
|
1256
1881
|
def list_sql_endpoints(self, workspace_id):
|
1257
1882
|
"""List sql endpoints in a workspace"""
|
@@ -1320,7 +1945,7 @@ class FabricClientCore(FabricClient):
|
|
1320
1945
|
"""
|
1321
1946
|
return self.list_items(workspace_id, type="dataPipelines", with_properties=with_properties)
|
1322
1947
|
|
1323
|
-
def update_data_pipeline(self, workspace_id, data_pipeline_id, display_name = None, description = None, return_item=
|
1948
|
+
def update_data_pipeline(self, workspace_id, data_pipeline_id, display_name = None, description = None, return_item=False):
|
1324
1949
|
"""Update a data pipeline in a workspace
|
1325
1950
|
Args:
|
1326
1951
|
workspace_id (str): The ID of the workspace
|
@@ -1396,7 +2021,7 @@ class FabricClientCore(FabricClient):
|
|
1396
2021
|
"""
|
1397
2022
|
return self.list_items(workspace_id, type="environments", with_properties=with_properties)
|
1398
2023
|
|
1399
|
-
def update_environment(self, workspace_id, environment_id, display_name = None, description = None, return_item=
|
2024
|
+
def update_environment(self, workspace_id, environment_id, display_name = None, description = None, return_item=False):
|
1400
2025
|
"""Update an environment in a workspace
|
1401
2026
|
Args:
|
1402
2027
|
workspace_id (str): The ID of the workspace
|
@@ -1630,7 +2255,7 @@ class FabricClientCore(FabricClient):
|
|
1630
2255
|
"""
|
1631
2256
|
return self.list_items(workspace_id=workspace_id, type="eventhouses", with_properties=with_properties)
|
1632
2257
|
|
1633
|
-
def update_eventhouse(self, workspace_id, eventhouse_id, display_name = None, description = None, return_item=
|
2258
|
+
def update_eventhouse(self, workspace_id, eventhouse_id, display_name = None, description = None, return_item=False):
|
1634
2259
|
"""Update an eventhouse in a workspace
|
1635
2260
|
Args:
|
1636
2261
|
workspace_id (str): The ID of the workspace
|
@@ -1706,7 +2331,7 @@ class FabricClientCore(FabricClient):
|
|
1706
2331
|
"""
|
1707
2332
|
return self.list_items(workspace_id=workspace_id, type="eventstreams", with_properties=with_properties)
|
1708
2333
|
|
1709
|
-
def update_eventstream(self, workspace_id, eventstream_id, display_name = None, description = None, return_item=
|
2334
|
+
def update_eventstream(self, workspace_id, eventstream_id, display_name = None, description = None, return_item=False):
|
1710
2335
|
"""Update an eventstream in a workspace
|
1711
2336
|
Args:
|
1712
2337
|
workspace_id (str): The ID of the workspace
|
@@ -1719,6 +2344,106 @@ class FabricClientCore(FabricClient):
|
|
1719
2344
|
return self.update_item(workspace_id, eventstream_id, display_name = display_name, description = description,
|
1720
2345
|
type= "eventstreams", return_item=return_item)
|
1721
2346
|
|
2347
|
+
# kqlDashboard
|
2348
|
+
def create_kql_dashboard(self, workspace_id, display_name, description = None):
|
2349
|
+
"""Create a kql dashboard in a workspace
|
2350
|
+
Args:
|
2351
|
+
workspace_id (str): The ID of the workspace
|
2352
|
+
display_name (str): The display name of the kql dashboard
|
2353
|
+
description (str): The description of the kql dashboard
|
2354
|
+
Returns:
|
2355
|
+
dict: The created kql dashboard
|
2356
|
+
"""
|
2357
|
+
return self.create_item(workspace_id = workspace_id,
|
2358
|
+
display_name = display_name,
|
2359
|
+
type = "kqlDashboards",
|
2360
|
+
description = description)
|
2361
|
+
|
2362
|
+
def delete_kql_dashboard(self, workspace_id, kql_dashboard_id):
|
2363
|
+
"""Delete a kql dashboard from a workspace
|
2364
|
+
Args:
|
2365
|
+
workspace_id (str): The ID of the workspace
|
2366
|
+
kql_dashboard_id (str): The ID of the kql dashboard
|
2367
|
+
Returns:
|
2368
|
+
int: The status code of the response
|
2369
|
+
"""
|
2370
|
+
return self.delete_item(workspace_id, kql_dashboard_id, type="kqlDashboards")
|
2371
|
+
|
2372
|
+
def get_kql_dashboard(self, workspace_id, kql_dashboard_id = None, kql_dashboard_name = None):
|
2373
|
+
"""Get a kql dashboard from a workspace
|
2374
|
+
Args:
|
2375
|
+
workspace_id (str): The ID of the workspace
|
2376
|
+
kql_dashboard_id (str): The ID of the kql dashboard
|
2377
|
+
kql_dashboard_name (str): The name of the kql dashboard
|
2378
|
+
Returns:
|
2379
|
+
KQLDashboard: The kql dashboard object
|
2380
|
+
"""
|
2381
|
+
|
2382
|
+
from msfabricpysdkcore.otheritems import KQLDashboard
|
2383
|
+
if kql_dashboard_id is None and kql_dashboard_name is not None:
|
2384
|
+
kql_dashboards = self.list_kql_dashboards(workspace_id)
|
2385
|
+
kql_dashboards = [kd for kd in kql_dashboards if kd.display_name == kql_dashboard_name]
|
2386
|
+
if len(kql_dashboards) == 0:
|
2387
|
+
raise Exception(f"Kql dashboard with name {kql_dashboard_name} not found")
|
2388
|
+
kql_dashboard_id = kql_dashboards[0].id
|
2389
|
+
if kql_dashboard_id is None:
|
2390
|
+
raise Exception("kql_dashboard_id or the kql_dashboard_name is required")
|
2391
|
+
|
2392
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/kqlDashboards/{kql_dashboard_id}"
|
2393
|
+
|
2394
|
+
item_dict = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
2395
|
+
error_message="Error getting kql dashboard", return_format="json")
|
2396
|
+
kqldashboard = KQLDashboard.from_dict(item_dict, core_client=self)
|
2397
|
+
kqldashboard.get_definition()
|
2398
|
+
return kqldashboard
|
2399
|
+
|
2400
|
+
def get_kql_dashboard_definition(self, workspace_id, kql_dashboard_id, format=None):
|
2401
|
+
"""Get the definition of a kql dashboard
|
2402
|
+
Args:
|
2403
|
+
workspace_id (str): The ID of the workspace
|
2404
|
+
kql_dashboard_id (str): The ID of the kql dashboard
|
2405
|
+
Returns:
|
2406
|
+
dict: The definition of the kql dashboard
|
2407
|
+
"""
|
2408
|
+
return self.get_item_definition(workspace_id, kql_dashboard_id, type="kqlDashboards", format=format)
|
2409
|
+
|
2410
|
+
|
2411
|
+
def list_kql_dashboards(self, workspace_id, with_properties = False):
|
2412
|
+
"""List kql dashboards in a workspace
|
2413
|
+
Args:
|
2414
|
+
workspace_id (str): The ID of the workspace
|
2415
|
+
with_properties (bool): Whether to get the item object with properties
|
2416
|
+
Returns:
|
2417
|
+
list: The list of kql dashboards
|
2418
|
+
"""
|
2419
|
+
return self.list_items(workspace_id=workspace_id, type="kqlDashboards", with_properties=with_properties)
|
2420
|
+
|
2421
|
+
def update_kql_dashboard(self, workspace_id, kql_dashboard_id, display_name = None, description = None, return_item=False):
|
2422
|
+
"""Update a kql dashboard in a workspace
|
2423
|
+
Args:
|
2424
|
+
workspace_id (str): The ID of the workspace
|
2425
|
+
kql_dashboard_id (str): The ID of the kql dashboard
|
2426
|
+
display_name (str): The display name of the kql dashboard
|
2427
|
+
description (str): The description of the kql dashboard
|
2428
|
+
Returns:
|
2429
|
+
dict: The updated kql dashboard
|
2430
|
+
"""
|
2431
|
+
return self.update_item(workspace_id, kql_dashboard_id, display_name = display_name,
|
2432
|
+
description = description, type= "kqlDashboards", return_item=return_item)
|
2433
|
+
|
2434
|
+
def update_kql_dashboard_definition(self, workspace_id, kql_dashboard_id, definition, update_metadata = None):
|
2435
|
+
"""Update the definition of a kql dashboard
|
2436
|
+
Args:
|
2437
|
+
workspace_id (str): The ID of the workspace
|
2438
|
+
kql_dashboard_id (str): The ID of the kql dashboard
|
2439
|
+
definition (dict): The definition of the kql dashboard
|
2440
|
+
update_metadata (bool): Whether to update the metadata
|
2441
|
+
Returns:
|
2442
|
+
dict: The updated definition of the kql dashboard
|
2443
|
+
"""
|
2444
|
+
return self.update_item_definition(workspace_id, kql_dashboard_id,
|
2445
|
+
type="kqlDashboards", definition=definition, update_metadata=update_metadata)
|
2446
|
+
|
1722
2447
|
# kqlDatabases
|
1723
2448
|
|
1724
2449
|
def create_kql_database(self, workspace_id, creation_payload, display_name, description = None):
|
@@ -1781,7 +2506,7 @@ class FabricClientCore(FabricClient):
|
|
1781
2506
|
list: The list of kql databases"""
|
1782
2507
|
return self.list_items(workspace_id=workspace_id, type="kqlDatabases", with_properties=with_properties)
|
1783
2508
|
|
1784
|
-
def update_kql_database(self, workspace_id, kql_database_id, display_name = None, description = None, return_item=
|
2509
|
+
def update_kql_database(self, workspace_id, kql_database_id, display_name = None, description = None, return_item=False):
|
1785
2510
|
"""Update a kql database in a workspace
|
1786
2511
|
Args:
|
1787
2512
|
workspace_id (str): The ID of the workspace
|
@@ -1796,6 +2521,23 @@ class FabricClientCore(FabricClient):
|
|
1796
2521
|
|
1797
2522
|
# kqlQuerysets
|
1798
2523
|
|
2524
|
+
def create_kql_queryset(self, workspace_id, display_name, description = None, definition = None):
|
2525
|
+
"""Create a kql queryset in a workspace
|
2526
|
+
Args:
|
2527
|
+
workspace_id (str): The ID of the workspace
|
2528
|
+
display_name (str): The display name of the kql queryset
|
2529
|
+
description (str): The description of the kql queryset
|
2530
|
+
definition (dict): The definition of the kql queryset
|
2531
|
+
Returns:
|
2532
|
+
dict: The created kql queryset
|
2533
|
+
"""
|
2534
|
+
return self.create_item(workspace_id = workspace_id,
|
2535
|
+
display_name = display_name,
|
2536
|
+
type = "kqlQuerysets",
|
2537
|
+
description = description,
|
2538
|
+
definition = definition)
|
2539
|
+
|
2540
|
+
|
1799
2541
|
|
1800
2542
|
def delete_kql_queryset(self, workspace_id, kql_queryset_id):
|
1801
2543
|
"""Delete a kql queryset from a workspace
|
@@ -1831,9 +2573,31 @@ class FabricClientCore(FabricClient):
|
|
1831
2573
|
item_dict = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
1832
2574
|
error_message="Error getting kql queryset", return_format="json")
|
1833
2575
|
|
1834
|
-
|
2576
|
+
kql = KQLQueryset.from_dict(item_dict, core_client=self)
|
2577
|
+
kql.get_definition()
|
2578
|
+
return kql
|
2579
|
+
|
2580
|
+
def get_kql_queryset_definition(self, workspace_id, kql_queryset_id, format=None):
|
2581
|
+
"""Get the definition of a kql queryset
|
2582
|
+
Args:
|
2583
|
+
workspace_id (str): The ID of the workspace
|
2584
|
+
kql_queryset_id (str): The ID of the kql queryset
|
2585
|
+
Returns:
|
2586
|
+
dict: The definition of the kql queryset
|
2587
|
+
"""
|
2588
|
+
return self.get_item_definition(workspace_id, kql_queryset_id, type="kqlQuerysets", format=format)
|
1835
2589
|
|
1836
|
-
def
|
2590
|
+
def list_kql_querysets(self, workspace_id, with_properties = False):
|
2591
|
+
"""List kql querysets in a workspace
|
2592
|
+
Args:
|
2593
|
+
workspace_id (str): The ID of the workspace
|
2594
|
+
with_properties (bool): Whether to get the item object with properties
|
2595
|
+
Returns:
|
2596
|
+
list: The list of kql querysets
|
2597
|
+
"""
|
2598
|
+
return self.list_items(workspace_id=workspace_id, type="kqlQuerysets", with_properties=with_properties)
|
2599
|
+
|
2600
|
+
def update_kql_queryset(self, workspace_id, kql_queryset_id, display_name = None, description = None, return_item=False):
|
1837
2601
|
"""Update a kql queryset in a workspace
|
1838
2602
|
Args:
|
1839
2603
|
workspace_id (str): The ID of the workspace
|
@@ -1846,15 +2610,18 @@ class FabricClientCore(FabricClient):
|
|
1846
2610
|
return self.update_item(workspace_id, kql_queryset_id, display_name = display_name,
|
1847
2611
|
description = description, type= "kqlQuerysets", return_item=return_item)
|
1848
2612
|
|
1849
|
-
def
|
1850
|
-
"""
|
2613
|
+
def update_kql_queryset_definition(self, workspace_id, kql_queryset_id, definition, update_metadata = None):
|
2614
|
+
"""Update the definition of a kql queryset
|
1851
2615
|
Args:
|
1852
2616
|
workspace_id (str): The ID of the workspace
|
1853
|
-
|
2617
|
+
kql_queryset_id (str): The ID of the kql queryset
|
2618
|
+
definition (dict): The definition of the kql queryset
|
2619
|
+
update_metadata (bool): Whether to update the metadata
|
1854
2620
|
Returns:
|
1855
|
-
|
2621
|
+
dict: The updated definition of the kql queryset
|
1856
2622
|
"""
|
1857
|
-
return self.
|
2623
|
+
return self.update_item_definition(workspace_id, kql_queryset_id,
|
2624
|
+
type="kqlQuerysets", definition=definition, update_metadata=update_metadata)
|
1858
2625
|
|
1859
2626
|
|
1860
2627
|
# lakehouses
|
@@ -1943,7 +2710,7 @@ class FabricClientCore(FabricClient):
|
|
1943
2710
|
"""
|
1944
2711
|
return self.list_items(workspace_id, type="lakehouses", with_properties = with_properties)
|
1945
2712
|
|
1946
|
-
def update_lakehouse(self, workspace_id, lakehouse_id, display_name = None, description = None, return_item=
|
2713
|
+
def update_lakehouse(self, workspace_id, lakehouse_id, display_name = None, description = None, return_item=False):
|
1947
2714
|
"""Update a lakehouse in a workspace
|
1948
2715
|
Args:
|
1949
2716
|
workspace_id (str): The ID of the workspace
|
@@ -2039,8 +2806,160 @@ class FabricClientCore(FabricClient):
|
|
2039
2806
|
self._logger.info("Table created")
|
2040
2807
|
return response.status_code
|
2041
2808
|
|
2042
|
-
#
|
2809
|
+
# mirrored_database
|
2810
|
+
|
2811
|
+
def create_mirrored_database(self, workspace_id, display_name, description = None, definition = None):
|
2812
|
+
"""Create a mirrored database in a workspace
|
2813
|
+
Args:
|
2814
|
+
workspace_id (str): The ID of the workspace
|
2815
|
+
display_name (str): The display name of the mirrored database
|
2816
|
+
description (str): The description of the mirrored database
|
2817
|
+
Returns:
|
2818
|
+
dict: The created mirrored database
|
2819
|
+
"""
|
2820
|
+
return self.create_item(workspace_id = workspace_id,
|
2821
|
+
display_name = display_name,
|
2822
|
+
type = "mirroredDatabases",
|
2823
|
+
description = description,
|
2824
|
+
definition=definition)
|
2825
|
+
|
2826
|
+
def delete_mirrored_database(self, workspace_id, mirrored_database_id):
|
2827
|
+
"""Delete a mirrored database from a workspace
|
2828
|
+
Args:
|
2829
|
+
workspace_id (str): The ID of the workspace
|
2830
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2831
|
+
Returns:
|
2832
|
+
int: The status code of the response
|
2833
|
+
"""
|
2834
|
+
return self.delete_item(workspace_id, mirrored_database_id, type="mirroredDatabases")
|
2835
|
+
|
2836
|
+
def get_mirrored_database(self, workspace_id, mirrored_database_id = None, mirrored_database_name = None):
|
2837
|
+
"""Get a mirrored database from a workspace
|
2838
|
+
Args:
|
2839
|
+
workspace_id (str): The ID of the workspace
|
2840
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2841
|
+
mirrored_database_name (str): The name of the mirrored database
|
2842
|
+
Returns:
|
2843
|
+
MirroredDatabase: The mirrored database object
|
2844
|
+
"""
|
2845
|
+
from msfabricpysdkcore.otheritems import MirroredDatabase
|
2846
|
+
|
2847
|
+
if mirrored_database_id is None and mirrored_database_name is not None:
|
2848
|
+
mirrored_databases = self.list_mirrored_databases(workspace_id)
|
2849
|
+
mirrored_databases = [md for md in mirrored_databases if md.display_name == mirrored_database_name]
|
2850
|
+
if len(mirrored_databases) == 0:
|
2851
|
+
raise Exception(f"Mirrored database with name {mirrored_database_name} not found")
|
2852
|
+
mirrored_database_id = mirrored_databases[0].id
|
2853
|
+
|
2854
|
+
if mirrored_database_id is None:
|
2855
|
+
raise Exception("mirrored_database_id or the mirrored_database_name is required")
|
2856
|
+
|
2857
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/mirroredDatabases/{mirrored_database_id}"
|
2858
|
+
|
2859
|
+
item_dict = self.calling_routine(url, operation="GET", response_codes=[200, 429],
|
2860
|
+
error_message="Error getting mirrored database", return_format="json")
|
2861
|
+
mirrored_db = MirroredDatabase.from_dict(item_dict, core_client=self)
|
2862
|
+
return mirrored_db
|
2863
|
+
|
2864
|
+
def get_mirrored_database_definition(self, workspace_id, mirrored_database_id):
|
2865
|
+
"""Get the definition of a mirrored database
|
2866
|
+
Args:
|
2867
|
+
workspace_id (str): The ID of the workspace
|
2868
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2869
|
+
Returns:
|
2870
|
+
dict: The definition of the mirrored database
|
2871
|
+
"""
|
2872
|
+
return self.get_item_definition(workspace_id, mirrored_database_id, type="mirroredDatabases")
|
2873
|
+
|
2874
|
+
def list_mirrored_databases(self, workspace_id, with_properties = False):
|
2875
|
+
"""List mirrored databases in a workspace
|
2876
|
+
Args:
|
2877
|
+
workspace_id (str): The ID of the workspace
|
2878
|
+
with_properties (bool): Whether to get the item object with properties
|
2879
|
+
Returns:
|
2880
|
+
list: The list of mirrored databases
|
2881
|
+
"""
|
2882
|
+
return self.list_items(workspace_id=workspace_id, type="mirroredDatabases", with_properties=with_properties)
|
2883
|
+
|
2884
|
+
def update_mirrored_database(self, workspace_id, mirrored_database_id, display_name = None, description = None, return_item=False):
|
2885
|
+
"""Update a mirrored database in a workspace
|
2886
|
+
Args:
|
2887
|
+
workspace_id (str): The ID of the workspace
|
2888
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2889
|
+
display_name (str): The display name of the mirrored database
|
2890
|
+
description (str): The description of the mirrored database
|
2891
|
+
Returns:
|
2892
|
+
dict: The updated mirrored database
|
2893
|
+
"""
|
2894
|
+
return self.update_item(workspace_id, mirrored_database_id, display_name = display_name, description = description,
|
2895
|
+
type="mirroredDatabases", return_item=return_item)
|
2896
|
+
|
2897
|
+
def update_mirrored_database_definition(self, workspace_id, mirrored_database_id, definition):
|
2898
|
+
"""Update the definition of a mirrored database
|
2899
|
+
Args:
|
2900
|
+
workspace_id (str): The ID of the workspace
|
2901
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2902
|
+
definition (dict): The definition of the mirrored database
|
2903
|
+
Returns:
|
2904
|
+
dict: The updated definition of the mirrored database
|
2905
|
+
"""
|
2906
|
+
return self.update_item_definition(workspace_id, mirrored_database_id,
|
2907
|
+
type="mirroredDatabases", definition=definition)
|
2908
|
+
|
2909
|
+
|
2910
|
+
def get_mirroring_status(self, workspace_id, mirrored_database_id):
|
2911
|
+
"""Get the mirroring status of a mirrored database
|
2912
|
+
Args:
|
2913
|
+
workspace_id (str): The ID of the workspace
|
2914
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2915
|
+
Returns:
|
2916
|
+
dict: The mirroring status of the mirrored database
|
2917
|
+
"""
|
2918
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/mirroredDatabases/{mirrored_database_id}/getMirroringStatus"
|
2919
|
+
|
2920
|
+
return self.calling_routine(url, operation="POST", response_codes=[200, 429],
|
2921
|
+
error_message="Error getting mirroring status", return_format="json")
|
2922
|
+
|
2923
|
+
def get_tables_mirroring_status(self, workspace_id, mirrored_database_id):
|
2924
|
+
"""Get the tables mirroring status of a mirrored database
|
2925
|
+
Args:
|
2926
|
+
workspace_id (str): The ID of the workspace
|
2927
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2928
|
+
Returns:
|
2929
|
+
dict: The tables mirroring status of the mirrored database
|
2930
|
+
"""
|
2931
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/mirroredDatabases/{mirrored_database_id}/getTablesMirroringStatus"
|
2932
|
+
|
2933
|
+
return self.calling_routine(url, operation="POST", response_codes=[200, 429],
|
2934
|
+
error_message="Error getting tables mirroring status", return_format="json")
|
2935
|
+
|
2936
|
+
def start_mirroring(self, workspace_id, mirrored_database_id):
|
2937
|
+
"""Start mirroring of a mirrored database
|
2938
|
+
Args:
|
2939
|
+
workspace_id (str): The ID of the workspace
|
2940
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2941
|
+
Returns:
|
2942
|
+
dict: The operation result
|
2943
|
+
"""
|
2944
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/mirroredDatabases/{mirrored_database_id}/startMirroring"
|
2945
|
+
|
2946
|
+
return self.calling_routine(url, operation="POST", response_codes=[200, 429],
|
2947
|
+
error_message="Error starting mirroring", return_format="response")
|
2948
|
+
|
2949
|
+
def stop_mirroring(self, workspace_id, mirrored_database_id):
|
2950
|
+
"""Stop mirroring of a mirrored database
|
2951
|
+
Args:
|
2952
|
+
workspace_id (str): The ID of the workspace
|
2953
|
+
mirrored_database_id (str): The ID of the mirrored database
|
2954
|
+
Returns:
|
2955
|
+
dict: The operation result
|
2956
|
+
"""
|
2957
|
+
url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/mirroredDatabases/{mirrored_database_id}/stopMirroring"
|
2958
|
+
|
2959
|
+
return self.calling_routine(url, operation="POST", response_codes=[200, 429],
|
2960
|
+
error_message="Error stopping mirroring", return_format="response")
|
2043
2961
|
|
2962
|
+
# mlExperiments
|
2044
2963
|
|
2045
2964
|
def create_ml_experiment(self, workspace_id, display_name, description = None):
|
2046
2965
|
"""Create an ml experiment in a workspace
|
@@ -2101,7 +3020,7 @@ class FabricClientCore(FabricClient):
|
|
2101
3020
|
"""
|
2102
3021
|
return self.list_items(workspace_id=workspace_id, type="mlExperiments", with_properties = with_properties)
|
2103
3022
|
|
2104
|
-
def update_ml_experiment(self, workspace_id, ml_experiment_id, display_name = None, description = None, return_item=
|
3023
|
+
def update_ml_experiment(self, workspace_id, ml_experiment_id, display_name = None, description = None, return_item=False):
|
2105
3024
|
"""Update an ml experiment in a workspace
|
2106
3025
|
Args:
|
2107
3026
|
workspace_id (str): The ID of the workspace
|
@@ -2174,7 +3093,7 @@ class FabricClientCore(FabricClient):
|
|
2174
3093
|
"""
|
2175
3094
|
return self.list_items(workspace_id=workspace_id, type="mlModels", with_properties = with_properties)
|
2176
3095
|
|
2177
|
-
def update_ml_model(self, workspace_id, ml_model_id, display_name = None, description = None, return_item=
|
3096
|
+
def update_ml_model(self, workspace_id, ml_model_id, display_name = None, description = None, return_item=False):
|
2178
3097
|
"""Update an ml model in a workspace
|
2179
3098
|
Args:
|
2180
3099
|
workspace_id (str): The ID of the workspace
|
@@ -2260,7 +3179,7 @@ class FabricClientCore(FabricClient):
|
|
2260
3179
|
"""
|
2261
3180
|
return self.list_items(workspace_id = workspace_id, type = "notebooks", with_properties = with_properties)
|
2262
3181
|
|
2263
|
-
def update_notebook(self, workspace_id, notebook_id, display_name = None, description = None, return_item=
|
3182
|
+
def update_notebook(self, workspace_id, notebook_id, display_name = None, description = None, return_item=False):
|
2264
3183
|
"""Update a notebook in a workspace
|
2265
3184
|
Args:
|
2266
3185
|
workspace_id (str): The ID of the workspace
|
@@ -2284,6 +3203,25 @@ class FabricClientCore(FabricClient):
|
|
2284
3203
|
"""
|
2285
3204
|
return self.update_item_definition(workspace_id, notebook_id, definition, type="notebooks")
|
2286
3205
|
|
3206
|
+
# paginatedReports
|
3207
|
+
|
3208
|
+
def list_paginated_reports(self, workspace_id):
|
3209
|
+
"""List paginated reports in a workspace"""
|
3210
|
+
return self.list_items(workspace_id, type="paginatedReports")
|
3211
|
+
|
3212
|
+
def update_paginated_report(self, workspace_id, paginated_report_id, display_name = None, description = None, return_item=False):
|
3213
|
+
"""Update a paginated report in a workspace
|
3214
|
+
Args:
|
3215
|
+
workspace_id (str): The ID of the workspace
|
3216
|
+
paginated_report_id (str): The ID of the paginated report
|
3217
|
+
display_name (str): The display name of the paginated report
|
3218
|
+
description (str): The description of the paginated report
|
3219
|
+
Returns:
|
3220
|
+
dict: The updated paginated report
|
3221
|
+
"""
|
3222
|
+
return self.update_item(workspace_id, paginated_report_id, display_name = display_name, description = description,
|
3223
|
+
type="paginatedReports", return_item=return_item)
|
3224
|
+
|
2287
3225
|
# reports
|
2288
3226
|
|
2289
3227
|
def create_report(self, workspace_id, display_name, definition = None, description = None):
|
@@ -2371,16 +3309,6 @@ class FabricClientCore(FabricClient):
|
|
2371
3309
|
|
2372
3310
|
# semanticModels
|
2373
3311
|
|
2374
|
-
def list_semantic_models(self, workspace_id, with_properties = False):
|
2375
|
-
"""List semantic models in a workspace
|
2376
|
-
Args:
|
2377
|
-
workspace_id (str): The ID of the workspace
|
2378
|
-
with_properties (bool): Whether to get the item object with properties
|
2379
|
-
Returns:
|
2380
|
-
list: The list of semantic models
|
2381
|
-
"""
|
2382
|
-
return self.list_items(workspace_id = workspace_id, type = "semanticModels", with_properties = with_properties)
|
2383
|
-
|
2384
3312
|
def create_semantic_model(self, workspace_id, display_name, definition = None, description = None):
|
2385
3313
|
"""Create a semantic model in a workspace
|
2386
3314
|
Args:
|
@@ -2392,6 +3320,16 @@ class FabricClientCore(FabricClient):
|
|
2392
3320
|
dict: The created semantic model
|
2393
3321
|
"""
|
2394
3322
|
return self.create_item(workspace_id = workspace_id, display_name = display_name, type = "semanticModels", definition = definition, description = description)
|
3323
|
+
|
3324
|
+
def delete_semantic_model(self, workspace_id, semantic_model_id):
|
3325
|
+
"""Delete a semantic model from a workspace
|
3326
|
+
Args:
|
3327
|
+
workspace_id (str): The ID of the workspace
|
3328
|
+
semantic_model_id (str): The ID of the semantic model
|
3329
|
+
Returns:
|
3330
|
+
int: The status code of the response
|
3331
|
+
"""
|
3332
|
+
return self.delete_item(workspace_id, semantic_model_id, type="semanticModels")
|
2395
3333
|
|
2396
3334
|
def get_semantic_model(self, workspace_id, semantic_model_id = None, semantic_model_name = None):
|
2397
3335
|
"""Get a semantic model from a workspace
|
@@ -2421,31 +3359,39 @@ class FabricClientCore(FabricClient):
|
|
2421
3359
|
|
2422
3360
|
return semmodel
|
2423
3361
|
|
2424
|
-
def
|
2425
|
-
"""
|
3362
|
+
def get_semantic_model_definition(self, workspace_id, semantic_model_id, format = None):
|
3363
|
+
"""Get the definition of a semantic model
|
2426
3364
|
Args:
|
2427
3365
|
workspace_id (str): The ID of the workspace
|
2428
3366
|
semantic_model_id (str): The ID of the semantic model
|
3367
|
+
format (str): The format of the definition
|
2429
3368
|
Returns:
|
2430
|
-
|
3369
|
+
dict: The definition of the semantic model
|
2431
3370
|
"""
|
2432
|
-
return self.
|
3371
|
+
return self.get_item_definition(workspace_id, semantic_model_id, type="semanticModels", format=format)
|
2433
3372
|
|
2434
|
-
|
2435
|
-
|
2436
|
-
|
2437
|
-
|
3373
|
+
def list_semantic_models(self, workspace_id, with_properties = False):
|
3374
|
+
"""List semantic models in a workspace
|
3375
|
+
Args:
|
3376
|
+
workspace_id (str): The ID of the workspace
|
3377
|
+
with_properties (bool): Whether to get the item object with properties
|
3378
|
+
Returns:
|
3379
|
+
list: The list of semantic models
|
3380
|
+
"""
|
3381
|
+
return self.list_items(workspace_id = workspace_id, type = "semanticModels", with_properties = with_properties)
|
2438
3382
|
|
2439
|
-
def
|
2440
|
-
"""
|
3383
|
+
def update_semantic_model(self, workspace_id, semantic_model_id, display_name = None, description = None, return_item=False):
|
3384
|
+
"""Update a semantic model in a workspace
|
2441
3385
|
Args:
|
2442
3386
|
workspace_id (str): The ID of the workspace
|
2443
3387
|
semantic_model_id (str): The ID of the semantic model
|
2444
|
-
|
3388
|
+
display_name (str): The display name of the semantic model
|
3389
|
+
description (str): The description of the semantic model
|
2445
3390
|
Returns:
|
2446
|
-
dict: The
|
3391
|
+
dict: The updated semantic model
|
2447
3392
|
"""
|
2448
|
-
return self.
|
3393
|
+
return self.update_item(workspace_id, semantic_model_id, display_name = display_name, description = description,
|
3394
|
+
type="semanticModels", return_item=return_item)
|
2449
3395
|
|
2450
3396
|
def update_semantic_model_definition(self, workspace_id, semantic_model_id, definition):
|
2451
3397
|
"""Update the definition of a semantic model
|
@@ -2457,6 +3403,7 @@ class FabricClientCore(FabricClient):
|
|
2457
3403
|
dict: The updated semantic model
|
2458
3404
|
"""
|
2459
3405
|
return self.update_item_definition(workspace_id, semantic_model_id, definition, type="semanticModels", wait_for_completion=False)
|
3406
|
+
|
2460
3407
|
# spark workspace custom pools
|
2461
3408
|
|
2462
3409
|
def create_workspace_custom_pool(self, workspace_id, name, node_family, node_size, auto_scale, dynamic_executor_allocation):
|
@@ -2540,7 +3487,7 @@ class FabricClientCore(FabricClient):
|
|
2540
3487
|
return sppools
|
2541
3488
|
|
2542
3489
|
def update_workspace_custom_pool(self, workspace_id, pool_id, name = None, node_family = None, node_size = None, auto_scale = None, dynamic_executor_allocation = None,
|
2543
|
-
return_item =
|
3490
|
+
return_item = False):
|
2544
3491
|
"""Update a workspace custom pool
|
2545
3492
|
Args:
|
2546
3493
|
workspace_id (str): The ID of the workspace
|
@@ -2574,14 +3521,6 @@ class FabricClientCore(FabricClient):
|
|
2574
3521
|
response_json = self.calling_routine(url, operation="PATCH", body=body, response_codes=[200, 429],
|
2575
3522
|
error_message="Error updating workspace custom pool", return_format="json")
|
2576
3523
|
|
2577
|
-
if return_item == "Default":
|
2578
|
-
warn(
|
2579
|
-
message="Warning: Updating an item currently will make invoke an additional API call to get the item "
|
2580
|
-
"object. This default behaviour will change in newer versions of the SDK. To keep this "
|
2581
|
-
"behaviour, set return_item=True in the function call.",
|
2582
|
-
category=FutureWarning,
|
2583
|
-
stacklevel=2
|
2584
|
-
)
|
2585
3524
|
if return_item:
|
2586
3525
|
return self.get_workspace_custom_pool(workspace_id, pool_id)
|
2587
3526
|
return response_json
|
@@ -2695,7 +3634,7 @@ class FabricClientCore(FabricClient):
|
|
2695
3634
|
"""
|
2696
3635
|
return self.list_items(workspace_id = workspace_id, type = "sparkJobDefinitions", with_properties = with_properties)
|
2697
3636
|
|
2698
|
-
def update_spark_job_definition(self, workspace_id, spark_job_definition_id, display_name = None, description = None, return_item=
|
3637
|
+
def update_spark_job_definition(self, workspace_id, spark_job_definition_id, display_name = None, description = None, return_item=False):
|
2699
3638
|
"""Update a spark job definition in a workspace
|
2700
3639
|
Args:
|
2701
3640
|
workspace_id (str): The ID of the workspace
|
@@ -2718,7 +3657,7 @@ class FabricClientCore(FabricClient):
|
|
2718
3657
|
dict: The definition of the spark job definition
|
2719
3658
|
"""
|
2720
3659
|
return self.get_item_definition(workspace_id, spark_job_definition_id, type="sparkJobDefinitions", format=format)
|
2721
|
-
|
3660
|
+
|
2722
3661
|
def update_spark_job_definition_definition(self, workspace_id, spark_job_definition_id, definition):
|
2723
3662
|
"""Update the definition of a spark job definition
|
2724
3663
|
Args:
|
@@ -2811,7 +3750,7 @@ class FabricClientCore(FabricClient):
|
|
2811
3750
|
"""
|
2812
3751
|
return self.list_items(workspace_id = workspace_id, type = "warehouses", with_properties = with_properties)
|
2813
3752
|
|
2814
|
-
def update_warehouse(self, workspace_id, warehouse_id, display_name = None, description = None, return_item=
|
3753
|
+
def update_warehouse(self, workspace_id, warehouse_id, display_name = None, description = None, return_item=False):
|
2815
3754
|
"""Update a warehouse in a workspace
|
2816
3755
|
Args:
|
2817
3756
|
workspace_id (str): The ID of the workspace
|