Public/func_Invoke-WebSiteAdminVfsApi.ps1
|
Function Invoke-WebSiteAdminVfsApi { [CmdletBinding()] Param( [Parameter(ValueFromPipeline = $true, Mandatory = $true, Position = 0, HelpMessage = "CDF Configuration hashtable")] [hashtable]$CdfConfig, [Parameter(Mandatory = $true, Position = 1, HelpMessage = "Web site vfs path")] [string]$Uri, [Parameter(Mandatory = $false, HelpMessage = "HTTP Method for Uri")] [string]$Method = 'GET', [Parameter(Mandatory = $false, HelpMessage = "Azure Mgmt API Version")] [string]$ApiVersion = '2018-11-01', [Parameter(Mandatory = $false, HelpMessage = "Azure Mgmt API Version")] [string]$ETag, [Parameter(Mandatory = $false, HelpMessage = "Body of request when applicable")] [object]$Body ) $subscriptionId = $CdfConfig.Platform.Env.subscriptionId $serviceRG = $CdfConfig.Domain.ResourceNames.domainResourceGroupName $serviceName = $CdfConfig.Service.ResourceNames.logicAppName $webAppUri = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$serviceRG/providers/Microsoft.Web/sites/$serviceName" $vfsPath = "/hostruntime/admin/vfs" $apiUrl = $webAppUri + $vfsPath + $Uri + "?api-version=" + $ApiVersion Write-Verbose "Invoke-AzRestMethod -Method $Method -Uri $apiUrl" if ($Body) { return Invoke-AzRestMethod -Method $Method -Uri $apiUrl -Payload $Body } else { return Invoke-AzRestMethod -Method $Method -Uri $apiUrl } # if ($Body) { # $Headers = @{ # 'If-Match' = '*' # } # return Invoke-AzRestMethod ` # -SubscriptionId $CdfConfig.Platform.Env.subscriptionId ` # -ResourceGroupName $CdfConfig.Domain.ResourceNames.domainResourceGroupName ` # -ResourceProviderName 'Microsoft.Web' ` # -ResourceType 'sites' ` # -Name $CdfConfig.Service.ResourceNames.logicAppName ` # -ApiVersion $ApiVersion ` # -Method $Method ` # -Uri "$vfsPath$Uri" ` # -Payload $Body ` # -Headers $Headers # } # else { # $result = Invoke-AzRestMethod ` # -SubscriptionId $CdfConfig.Platform.Env.subscriptionId ` # -ResourceGroupName $CdfConfig.Domain.ResourceNames.domainResourceGroupName ` # -ResourceProviderName 'Microsoft.Web' ` # -ResourceType 'sites' ` # -Name $CdfConfig.Service.ResourceNames.logicAppName ` # -ApiVersion $ApiVersion ` # -Method $Method ` # -Uri "$vfsPath$Uri" # Write-Verbose $result # return $result # } } |