Skip to content

Commit 2fe4ced

Browse files
authored
Added plenty of new functions in the module
Merge from MicrosoftFabricMgmt #2
2 parents a59b941 + 2b6b616 commit 2fe4ced

File tree

199 files changed

+2516
-5678
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

199 files changed

+2516
-5678
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*.user
66
*.userosscache
77
*.sln.docstates
8+
~*.*
89

910
# Build results
1011
Output/

FabricTools/FabricTools.psd1

Lines changed: 175 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
# Assemblies that must be loaded prior to importing this module
6161
#RequiredAssemblies = @('Microsoft.Azure.PowerShell.Authentication')
6262

63-
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
63+
# Script files () that are run in the caller's environment prior to importing this module.
6464
# ScriptsToProcess = @()
6565

6666
# Type files (.ps1xml) to be loaded when importing this module
@@ -74,72 +74,209 @@
7474

7575
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
7676
FunctionsToExport = @(
77+
"Add-FabricWorkspaceIdentity",
78+
"Add-FabricWorkspaceRoleAssignment",
79+
"Assign-FabricDomainWorkspaceByCapacity",
80+
"Assign-FabricDomainWorkspaceById",
81+
"Assign-FabricDomainWorkspaceByPrincipal",
82+
"Assign-FabricDomainWorkspaceRoleAssignment",
83+
"Assign-FabricWorkspaceCapacity",
84+
"Confirm-FabricAuthToken",
85+
"Connect-FabricAccount",
86+
"Convert-FromBase64",
87+
"Convert-ToBase64",
7788
"Export-FabricItem",
7889
"Get-AllFabricCapacities",
7990
"Get-AllFabricDatasetRefreshes",
80-
"Get-FabricAPIclusterURI",
91+
"Get-FabricAPIClusterURI",
8192
"Get-FabricAuthToken",
8293
"Get-FabricCapacity",
8394
"Get-FabricCapacityRefreshables",
95+
"Get-FabricCapacitySkus",
8496
"Get-FabricCapacityState",
8597
"Get-FabricCapacityTenantOverrides",
98+
"Get-FabricCapacityTenantSettingOverrides",
8699
"Get-FabricCapacityWorkload",
100+
"Get-FabricConnection",
101+
"Get-FabricCopyJob",
102+
"Get-FabricCopyJobDefinition",
103+
"Get-FabricDashboard",
104+
"Get-FabricDatamart",
105+
"Get-FabricDataPipeline",
87106
"Get-FabricDatasetRefreshes",
107+
"Get-FabricDebugInfo",
108+
"Get-FabricDomain",
109+
"Get-FabricDomainTenantSettingOverrides",
110+
"Get-FabricDomainWorkspace",
111+
"Get-FabricEnvironment",
112+
"Get-FabricEnvironmentLibrary",
113+
"Get-FabricEnvironmentSparkCompute",
114+
"Get-FabricEnvironmentStagingLibrary",
115+
"Get-FabricEnvironmentStagingSparkCompute",
116+
"Get-FabricEventhouse",
117+
"Get-FabricEventhouseDefinition",
118+
"Get-FabricEventstream",
119+
"Get-FabricEventstreamDefinition",
120+
"Get-FabricExternalDataShares",
88121
"Get-FabricItem",
122+
"Get-FabricKQLDashboard",
123+
"Get-FabricKQLDashboardDefinition",
124+
"Get-FabricKQLDatabase",
125+
"Get-FabricKQLDatabaseDefinition",
126+
"Get-FabricKQLQueryset",
127+
"Get-FabricKQLQuerysetDefinition",
128+
"Get-FabricLakehouse",
129+
"Get-FabricLakehouseTable",
130+
"Get-FabricLongRunningOperation",
131+
"Get-FabricLongRunningOperationResult",
132+
"Get-FabricMirroredDatabase",
133+
"Get-FabricMirroredDatabaseDefinition",
134+
"Get-FabricMirroredDatabaseStatus",
135+
"Get-FabricMirroredDatabaseTableStatus",
136+
"Get-FabricMirroredWarehouse",
137+
"Get-FabricMLExperiment",
138+
"Get-FabricMLModel",
139+
"Get-FabricNotebook",
140+
"Get-FabricNotebookDefinition",
141+
"Get-FabricPaginatedReport",
142+
"Get-FabricReflex",
143+
"Get-FabricReflexDefinition",
144+
"Get-FabricReport",
145+
"Get-FabricReportDefinition",
146+
"Get-FabricSemanticModel",
147+
"Get-FabricSemanticModelDefinition",
148+
"Get-FabricSparkCustomPool",
149+
"Get-FabricSparkJobDefinition",
150+
"Get-FabricSparkJobDefinitionDefinition",
151+
"Get-FabricSparkSettings",
152+
"Get-FabricSQLDatabase",
153+
"Get-FabricSQLEndpoint",
154+
"Get-FabricTenantSetting",
89155
"Get-FabricTenantSettings",
90-
"Get-FabricUsagemetricsQuery",
156+
"Get-FabricUsageMetricsQuery",
157+
"Get-FabricUserListAccessEntities",
158+
"Get-FabricWarehouse",
91159
"Get-FabricWorkspace",
92160
"Get-FabricWorkspaceDatasetRefreshes",
161+
"Get-FabricWorkspaceRoleAssignment",
162+
"Get-FabricWorkspaceTenantSettingOverrides",
93163
"Get-FabricWorkspaceUsageMetricsData",
94164
"Get-FabricWorkspaceUsers",
95165
"Get-SHA256",
96166
"Import-FabricItem",
97167
"Invoke-FabricAPIRequest",
168+
"Invoke-FabricAPIRequest",
98169
"Invoke-FabricDatasetRefresh",
170+
"Invoke-FabricKQLCommand",
171+
"Load-FabricLakehouseTable",
172+
"New-FabricCopyJob",
173+
"New-FabricDataPipeline",
174+
"New-FabricDomain",
175+
"New-FabricEnvironment",
176+
"New-FabricEventhouse",
177+
"New-FabricEventstream",
178+
"New-FabricKQLDashboard",
179+
"New-FabricKQLDatabase",
180+
"New-FabricKQLQueryset",
181+
"New-FabricLakehouse",
182+
"New-FabricMirroredDatabase",
183+
"New-FabricMLExperiment",
184+
"New-FabricMLModel",
185+
"New-FabricNotebook",
186+
"New-FabricNotebookNEW",
187+
"New-FabricReflex",
188+
"New-FabricReport",
189+
"New-FabricSemanticModel",
190+
"New-FabricSparkCustomPool",
191+
"New-FabricSparkJobDefinition",
192+
"New-FabricSQLDatabase",
193+
"New-FabricWarehouse",
99194
"New-FabricWorkspace",
100195
"New-FabricWorkspaceUsageMetricsReport",
196+
"Publish-FabricEnvironment",
101197
"Register-FabricWorkspaceToCapacity",
198+
"Remove-FabricCopyJob",
199+
"Remove-FabricDataPipeline",
200+
"Remove-FabricDomain",
201+
"Remove-FabricEnvironment",
202+
"Remove-FabricEnvironmentStagingLibrary",
203+
"Remove-FabricEventhouse",
204+
"Remove-FabricEventstream",
102205
"Remove-FabricItem",
206+
"Remove-FabricKQLDashboard",
207+
"Remove-FabricKQLDatabase",
208+
"Remove-FabricKQLQueryset",
209+
"Remove-FabricLakehouse",
210+
"Remove-FabricMirroredDatabase",
211+
"Remove-FabricMLExperiment",
212+
"Remove-FabricMLModel",
213+
"Remove-FabricNotebook",
214+
"Remove-FabricReflex",
215+
"Remove-FabricReport",
216+
"Remove-FabricSemanticModel",
217+
"Remove-FabricSparkCustomPool",
218+
"Remove-FabricSparkJobDefinition",
219+
"Remove-FabricSQLDatabase",
220+
"Remove-FabricWarehouse",
103221
"Remove-FabricWorkspace",
222+
"Remove-FabricWorkspaceIdentity",
223+
"Remove-FabricWorkspaceRoleAssignment",
104224
"Resume-FabricCapacity",
225+
"Revoke-FabricCapacityTenantSettingOverrides",
226+
"Revoke-FabricExternalDataShares",
227+
"Set-FabricApiHeaders",
105228
"Set-FabricAuthToken",
229+
"Start-FabricLakehouseTableMaintenance",
230+
"Start-FabricMirroredDatabaseMirroring",
231+
"Start-FabricSparkJobDefinitionOnDemand",
232+
"Stop-FabricEnvironmentPublish",
233+
"Stop-FabricMirroredDatabaseMirroring",
106234
"Suspend-FabricCapacity",
235+
"Test-FabricApiResponse",
236+
"Unassign-FabricDomainWorkspace",
237+
"Unassign-FabricDomainWorkspaceRoleAssignment",
238+
"Unassign-FabricWorkspaceCapacity",
107239
"Unregister-FabricWorkspaceToCapacity",
108-
109-
'Connect-FabricAccount',
110-
'Get-FabricEventhouse',
111-
'Get-FabricEventstream',
112-
'Get-FabricKQLDashboard',
113-
'Get-FabricKQLDatabase',
114-
'Get-FabricKQLQueryset',
115-
'Get-FabricWorkspace2',
116-
'Invoke-FabricKQLCommand',
117-
'New-FabricEventhouse',
118-
'New-FabricEventstream',
119-
'New-FabricKQLDashboard',
120-
'New-FabricKQLDatabase',
121-
'New-FabricLakehouse',
122-
'New-FabricWorkspace2',
123-
'Remove-FabricEventhouse',
124-
'Remove-FabricEventstream',
125-
'Remove-FabricKQLDatabase',
126-
'Remove-FabricKQLQueryset',
127-
'Set-FabricEventhouse',
128-
'Set-FabricEventstream',
129-
'Set-FabricKQLDatabase',
130-
'Set-FabricKQLQueryset',
131-
'Add-FabricWorkspaceRoleAssignment',
132-
'Get-FabricWorkspaceRoleAssignment',
133-
'Get-FabricKQLDashboardDefinition',
134-
'Get-FabricDebugInfo',
135-
136-
'Get-FabricSQLDatabase',
137-
'Remove-FabricSQLDatabase',
138-
'Get-FabricCapacitySkus',
139-
'Confirm-FabricAuthToken',
140-
'Get-FabricConnection',
141-
'New-FabricSQLDatabase',
142-
'Test-FabricApiResponse'
240+
"Update-FabricCapacityTenantSettingOverrides",
241+
"Update-FabricCopyJob",
242+
"Update-FabricCopyJobDefinition",
243+
"Update-FabricDataPipeline",
244+
"Update-FabricDomain",
245+
"Update-FabricEnvironment",
246+
"Update-FabricEnvironmentStagingSparkCompute",
247+
"Update-FabricEventhouse",
248+
"Update-FabricEventhouseDefinition",
249+
"Update-FabricEventstream",
250+
"Update-FabricEventstreamDefinition",
251+
"Update-FabricKQLDashboard",
252+
"Update-FabricKQLDashboardDefinition",
253+
"Update-FabricKQLDatabase",
254+
"Update-FabricKQLDatabaseDefinition",
255+
"Update-FabricKQLQueryset",
256+
"Update-FabricKQLQuerysetDefinition",
257+
"Update-FabricLakehouse",
258+
"Update-FabricMirroredDatabase",
259+
"Update-FabricMirroredDatabaseDefinition",
260+
"Update-FabricMLExperiment",
261+
"Update-FabricMLModel",
262+
"Update-FabricNotebook",
263+
"Update-FabricNotebookDefinition",
264+
"Update-FabricPaginatedReport",
265+
"Update-FabricReflex",
266+
"Update-FabricReflexDefinition",
267+
"Update-FabricReport",
268+
"Update-FabricReportDefinition",
269+
"Update-FabricSemanticModel",
270+
"Update-FabricSemanticModelDefinition",
271+
"Update-FabricSparkCustomPool",
272+
"Update-FabricSparkJobDefinition",
273+
"Update-FabricSparkJobDefinitionDefinition",
274+
"Update-FabricSparkSettings",
275+
"Update-FabricTenantSetting",
276+
"Update-FabricWarehouse",
277+
"Update-FabricWorkspace",
278+
"Update-FabricWorkspaceRoleAssignment",
279+
"Upload-FabricEnvironmentStagingLibrary"
143280
)
144281

145282
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
Lines changed: 77 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,92 @@
1+
12
<#
23
.SYNOPSIS
3-
Retrieves the fabric capacity information.
4+
Retrieves capacity details from a specified Microsoft Fabric workspace.
45
56
.DESCRIPTION
6-
This function makes a GET request to the Fabric API to retrieve the tenant settings.
7+
This function retrieves capacity details from a specified workspace using either the provided capacityId or capacityName.
8+
It handles token validation, constructs the API URL, makes the API request, and processes the response.
9+
10+
.PARAMETER capacityId
11+
The unique identifier of the capacity to retrieve. This parameter is optional.
712
8-
.PARAMETER capacity
9-
Specifies the capacity to retrieve information for. If not provided, all capacities will be retrieved.
13+
.PARAMETER capacityName
14+
The name of the capacity to retrieve. This parameter is optional.
1015
1116
.EXAMPLE
12-
Get-FabricCapacity -capacity "exampleCapacity"
13-
Retrieves the fabric capacity information for the specified capacity.
17+
Get-FabricCapacity -capacityId "capacity-12345"
18+
This example retrieves the capacity details for the capacity with ID "capacity-12345".
1419
15-
Get-FabricCapacity
16-
Retrieves the fabric capacity information for all capacities.
20+
.EXAMPLE
21+
Get-FabricCapacity -capacityName "MyCapacity"
22+
This example retrieves the capacity details for the capacity named "MyCapacity".
1723
18-
#>
24+
.NOTES
25+
- Requires `$FabricConfig` global configuration, including `BaseUrl` and `FabricHeaders`.
26+
- Calls `Test-TokenExpired` to ensure token validity before making the API request.
1927
20-
function Get-FabricCapacity {
21-
# Define aliases for the function for flexibility.
22-
[Alias("Get-FabCapacity")]
28+
Author: Tiago Balabuch
29+
#>
30+
function Get-FabricCapacity {
31+
[CmdletBinding()]
32+
param (
33+
[Parameter(Mandatory = $false)]
34+
[ValidateNotNullOrEmpty()]
35+
[string]$capacityId,
2336

24-
Param(
25-
[Parameter(Mandatory=$false)]
26-
[string]$capacity
37+
[Parameter(Mandatory = $false)]
38+
[ValidateNotNullOrEmpty()]
39+
[string]$capacityName
2740
)
41+
try {
42+
# Handle ambiguous input
43+
if ($capacityId -and $capacityName) {
44+
Write-Message -Message "Both 'capacityId' and 'capacityName' were provided. Please specify only one." -Level Error
45+
return $null
46+
}
2847

29-
Confirm-FabricAuthToken | Out-Null
48+
# Ensure token validity
49+
Write-Message -Message "Validating token..." -Level Debug
50+
Test-TokenExpired
51+
Write-Message -Message "Token validation completed." -Level Debug
52+
53+
# Construct the API endpoint URL
54+
$apiEndpointURI = "{0}/capacities" -f $FabricConfig.BaseUrl
55+
56+
# Invoke the Fabric API to retrieve capacity details
57+
$capacities = Invoke-FabricAPIRequest `
58+
-BaseURI $apiEndpointURI `
59+
-Headers $FabricConfig.FabricHeaders `
60+
-Method Get
3061

31-
if ($capacity) {
32-
$result = Invoke-FabricAPIRequest -uri "capacities/$capacity" -Method GET
33-
} else {
34-
$result = Invoke-FabricAPIRequest -uri "capacities" -Method GET
62+
63+
# Filter results based on provided parameters
64+
$response = if ($capacityId) {
65+
$capacities | Where-Object { $_.Id -eq $capacityId }
66+
}
67+
elseif ($capacityName) {
68+
$capacities | Where-Object { $_.DisplayName -eq $capacityName }
69+
}
70+
else {
71+
# No filter, return all capacities
72+
Write-Message -Message "No filter specified. Returning all capacities." -Level Debug
73+
return $capacities
74+
}
75+
76+
# Handle results
77+
if ($response) {
78+
Write-Message -Message "Capacity found matching the specified criteria." -Level Debug
79+
return $response
80+
}
81+
else {
82+
Write-Message -Message "No capacity found matching the specified criteria." -Level Warning
83+
return $null
84+
}
3585
}
36-
37-
return $result.value
38-
39-
}
86+
catch {
87+
# Capture and log error details
88+
$errorDetails = $_.Exception.Message
89+
Write-Message -Message "Failed to retrieve capacity. Error: $errorDetails" -Level Error
90+
return $null
91+
}
92+
}

0 commit comments

Comments
 (0)