PureFBModule.psm1
<#
=========================================================================== Created by: aj@purestorage.com Organization: Pure Storage, Inc. Filename: PureFBModule.psd1 Copyright: (c) 2021 Pure Storage, Inc. Module Name: PureFBModule Description: PowerShell Script Module (.psm1) ------------------------------------------------------------------------- Disclaimer The sample script and documentation are provided AS IS and are not supported by the author or the author’s employer, unless otherwise agreed in writing. You bear all risk relating to the use or performance of the sample script and documentation. The author and the author’s employer disclaim all express or implied warranties (including, without limitation, any warranties of merchantability, title, infringement or fitness for a particular purpose). In no event shall the author, the author’s employer or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever arising out of the use or performance of the sample script and documentation (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss), even if such person has been advised of the possibility of such damages. =========================================================================== Cmdlets: Get-Pfb Add-Pfb Update-Pfb Delete-Pfb Functions with Internal in the name are not Exported e..g Get-InternalPfbJSON Default variables for FlashBlade, APITOKEN, APIVers and SkipCertificateCheck are read from the file controlled by the $JSON_FILE variable below. If you want to override these, you can specify -FlashBlade and -APIToken when running a cmdlet. APIVers is defaulted below, but can also be over-ridden if you comment that variable out. To Do: FIX Get-NOPfbLogs Update Help and add more examples. Testing, more testing. Supports all versions to 1.12 Author: aj@purestorage.com ---------------------------------------------------------------------------- #> #Requires -Version 6.0 $AUTH_TOKEN = $null; $DEBUG = 0; $APIVers = 1.8; $JSON_FILE = 'FlashBlade.JSON'; # .ExternalHelp PureFBModule-help.xml function Get-PfbDateSinceEpoc() { [CmdletBinding()] Param( [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $MyDate = $null ); $Epocseconds = get-date (get-date -Date $MyDate).ToUniversalTime() -UFormat %s; $Epocmilliseconds = [timespan]::FromSeconds($Epocseconds).TotalMilliseconds; return @($Epocmilliseconds) } function Get-InternalPfbJson() { $json = Get-Content -Raw ($JSON_FILE) | out-string | ConvertFrom-Json; #$json = Get-Content -Raw FlashBlade.JSON | out-string | ConvertFrom-Json; $json | ForEach-Object { $FlashBlade = $_.FlashBlade $ApiToken = $_.APIToken $ApiVers = $_.APIvers $SkipCertificateCheck = $_.SkipCertificateCheck } if ($DEBUG) { write-host "Get-InternalPfbJson IP = $FlashBlade " } ; return @($FlashBlade,$ApiToken,$ApiVers,$SkipCertificateCheck) } function Get-InternalPfbAuthToken() { if ($DEBUG) { write-host "Get-InternalPfbAuthToken IP = $FlashBlade" } ; if ($DEBUG) { write-host "ApiToken = $ApiToken" } ; $Token = $null; if ( $null -ne $AUTH_TOKEN ) { $Token = $AUTH_TOKEN; } else { $url = "/api/login"; $link = "https://$FlashBlade$url"; $headers = @{"api-token" = "$ApiToken"}; try { $obj = Invoke-RestMethod -SkipCertificateCheck -Method POST -Headers $headers -Uri $link -RHV 'Headers' $Token = $Headers.'x-auth-token'; if ($DEBUG) { Write-Host "TOKEN: $Token" } return $Token; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " If ($_.Exception.Response.StatusCode.value__) { $myMessage = ($_.Exception.Response.StatusCode.value__ ).ToString().Trim(); Write-Output $myMessage; } If ($_.Exception.Message) { $myMessage = ($_.Exception.Message).ToString().Trim(); Write-Output $myMessage; } break; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" $myMessage = ($_.Exception.Message).ToString().Trim(); Write-Output $myMessage; break; } } } function Get-InternalPfbAuthTokenLogout( $Token ) { $url = "/api/logout"; $link = "https://$FlashBlade$url"; $headers = @{"x-auth-token" = "$Token"}; try { $obj = Invoke-RestMethod -SkipCertificateCheck -Method POST -Headers $headers -Uri $link -RHV 'Headers' } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " If ($_.Exception.Response.StatusCode.value__) { $myMessage = ($_.Exception.Response.StatusCode.value__ ).ToString().Trim(); Write-Output $myMessage; } If ($_.Exception.Message) { $myMessage = ($_.Exception.Message).ToString().Trim(); Write-Output $myMessage; } break; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" $myMessage = ($_.Exception.Message).ToString().Trim(); Write-Output $myMessage; break; } } function Get-InternalHTTPError () { If ($_.Exception.Response.StatusCode.value__) { $myMessage = ($_.Exception.Response.StatusCode.value__ ).ToString().Trim(); Write-Output $myMessage; } If ($_.Exception.Message) { $myMessage = ($_.Exception.Message).ToString().Trim(); Write-Output $myMessage; } write-host $_.ErrorDetails.Message break; } function Get-InternalCatchallError () { $myMessage = ($_.Exception.Message).ToString().Trim(); Write-Output $myMessage; break; } function Test-APIVersion ($APIVers, $MinAPIVers) { if ($APIVers -lt $MinAPIVers) { Write-Output "Sorry minimum API Version should be $MinAPIVers - you are using $APIVers" break; } } function Get-PfbAPIVers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$False)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/api_version"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.versions; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbActiveDirectory() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Test ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Test) { $url = "/api/$ApiVers/active-directory/test"; } else { $url = "/api/$ApiVers/active-directory"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbActiveDirectory() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $JoinExistingAccount = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/active-directory"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($JoinExistingAccount) { $uri.Add('join_existing_account', $JoinExistingAccount) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbActiveDirectory() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $IDs = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/active-directory"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($IDs) { $uri.Add('ids', $IDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbActiveDirectory() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $IDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $LocalOnly = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/active-directory"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($IDs) { $uri.Add('ids', $IDs) } if ($LocalOnly) { $uri.Add('local_only', $LocalOnly) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbAlert() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/alerts"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) {$ $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbAlert() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/alerts"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty); if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbAlertWatcher() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Test ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Test) { $url = "/api/$ApiVers/alert-watchers/test"; } else { $url = "/api/$ApiVers/alert-watchers"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbAlertWatcher() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Level = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $body = @{minimum_notification_severity = $Level}; $url = "/api/$ApiVers/alert-watchers"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbAlertWatcher() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Enabled = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/alert-watchers"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $body = @{enabled = $Enabled}; if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbAlertWatcher() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/alert-watchers"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbAPIClients() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/api-clients"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbAPIClients() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/api-clients"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbAPIClients() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $IDs = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/api-clients"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($IDs) { $uri.Add('ids', $IDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbAPIClients() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $IDs = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/api-clients"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($IDs) { $uri.Add('ids', $IDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArray() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Boolean] $Banner, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } If ($Banner) { $url = "/api/login-banner"; } Else { $url = "/api/$ApiVers/arrays" } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbArray() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Name = $null, [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][string] $NTPServers = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/arrays"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) #$body = @{'ntp_servers' = $NTPServers} $body = @{ 'ntp_servers' = @( $NTPServers ) } if ($Name) { $body.Add('name', $Name) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArraySpace() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Resolution, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $StartTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Type ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/arrays/space"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($Resolution) { $uri.Add('resolution' , $Resolution) } if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Type) { $uri.Add('type' , $Type) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArrayPerformance() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Resolution, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $StartTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Protocol = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][bool] $Replication, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Type = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Replication -eq 'true') { $url = "/api/$ApiVers/arrays/performance/replication"; } else { $url = "/api/$ApiVers/arrays/performance"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($Resolution) { $uri.Add('Resolution' , $Resolution) } if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Type) { $uri.Add('type' , $Type) } if ($Protocol) { $uri.Add('protocol' , $Protocol) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArrayClientPerformance() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/arrays/clients/performance"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Names) { $uri.Add('names', $Names) } if ($Sort) {$ $uri.Add('sort' , $Sort) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArrayHttpSpecificPerformance() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Resolution, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $StartTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Type = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/arrays/http-specific-performance"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($Resolution) { $uri.Add('resolution' , $Resolution) } if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Type) { $uri.Add('Type' , $Type) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArrayS3SpecificPerformance() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Resolution, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $StartTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Type = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/arrays/s3-specific-performance"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Resolution) { $uri.Add('resolution' , $Resolution) } if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($Type) {$ Body.Add('Type' , $Type) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArrayConnections() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $token = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/array-connections"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbArrayConnections() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $InputFile, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/array-connections"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbArrayConnections() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $InputFile, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/array-connections"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbArrayConnections() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/array-connections"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArrayConnectionsConnectionKey() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/array-connections/connection-key"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbArrayConnectionsConnectionKey() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/array-connections/connection-key"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArrayConnectionsPath() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/array-connections/path"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbArrayConnectionsPerformanceReplication() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Resolution, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $StartTime , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][bool] $Total_Only , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Type = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/array-connections/performance/replication"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Type) { $uri.Add('type' , $Type) } if ($Total_Only) { $uri.Add('total_only' , $Total_Only) } if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Remote_Ids) { $uri.Add('remote_ids' , $Remote_Ids) } if ($Remote_Names) { $uri.Add('remote_names' , $Remote_Names) } if ($Resolution) { $uri.Add('resolution' , $Resolution) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbAudits() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $token = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/audits"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbBucket() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $TotalOnly ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $url = "/api/$ApiVers/buckets"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($TotalOnly) { $uri.Add('total_only' , $TotalOnly) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbBucket() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Account = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $body = @{ 'account' = @{ 'name'=$Account } } $url = "/api/$ApiVers/buckets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbBucket() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/buckets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('name' , $Names) } if ($Ids) { $uri.Add('ids' , $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbBucket() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/buckets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbBucketPerformance() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $StartTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = 5, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Resolution, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $TotalOnly ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $url = "/api/$ApiVers/buckets/performance"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Resolution) { $uri.Add('resolution' , $Resolution) } if ($TotalOnly) { $uri.Add('total_only' , $TotalOnly) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbBucketReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_Bucket_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_Bucket_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/bucket-replica-links"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Local_Bucket_Ids) { $uri.Add('local_bucket_ids' , $Local_Bucket_Ids) } if ($Local_Bucket_Names) { $uri.Add('local_bucket_names' , $Local_Bucket_Names) } if ($Remote_Ids) { $uri.Add('remote_ids' , $Remote_Ids) } if ($Remote_Names) { $uri.Add('remote_names' , $Remote_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbBucketReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_Bucket_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_Bucket_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Bucket_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Credentials_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Credentials_Names = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/bucket-replica-links"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Local_Bucket_Ids) { $uri.Add('local_bucket_ids' , $Local_Bucket_Ids) } if ($Local_Bucket_Names) { $uri.Add('local_bucket_names' , $Local_Bucket_Names) } if ($Remote_Bucket_Names) { $uri.Add('remote_bucket_names' , $Remote_Bucket_Names) } if ($Remote_Credentials_Ids) { $uri.Add('remote_credentials_ids' , $Remote_Credentials_Ids) } if ($Remote_Credentials_Names) { $uri.Add('remote_credentials_names' , $Remote_Credentials_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbBucketReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_Bucket_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_Bucket_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Bucket_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/bucket-replica-links"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Ids) { $uri.Add('ids', $Ids) } if ($Local_Bucket_Ids) { $uri.Add('local_bucket_ids' , $Local_Bucket_Ids) } if ($Local_Bucket_Names) { $uri.Add('local_bucket_names' , $Local_Bucket_Names) } if ($Remote_Ids) { $uri.Add('remote_ids' , $Remote_Ids) } if ($Remote_Names) { $uri.Add('remote_names' , $Remote_Names) } if ($Remote_Bucket_Names) { $uri.Add('remote_bucket_names' , $Remote_Bucket_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbBucketReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_Bucket_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_Bucket_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Bucket_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/bucket-replica-links"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Ids) { $uri.Add('ids', $Ids) } if ($Local_Bucket_Ids) { $uri.Add('local_bucket_ids' , $Local_Bucket_Ids) } if ($Local_Bucket_Names) { $uri.Add('local_bucket_names' , $Local_Bucket_Names) } if ($Remote_Ids) { $uri.Add('remote_ids' , $Remote_Ids) } if ($Remote_Names) { $uri.Add('remote_names' , $Remote_Names) } if ($Remote_Bucket_Names) { $uri.Add('remote_bucket_names' , $Remote_Bucket_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbBucketS3SpecificPerformance() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $StartTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = 5, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Resolution, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $TotalOnly ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $url = "/api/$ApiVers/buckets/performance"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Resolution) { $uri.Add('resolution' , $Resolution) } if ($TotalOnly) { $uri.Add('total_only' , $TotalOnly) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbCertificate() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificates"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty); if ($Names) { $uri.Add('names', $Names) }; if ($Ids) { $uri.Add('ids', $Ids) }; if ($Filter) { $uri.Add('filter', $Filter) }; if ($Sort) { $uri.Add('sort' , $Sort) }; if ($Start) { $uri.Add('start' , $Start) }; if ($Limit) { $uri.Add('limit' , $Limit) }; if ($Token) { $uri.Add('token' , $Token) }; $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbCertificate() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } #$body = @{ # certificate=$Certificate #} $url = "/api/$ApiVers/certificates"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty); if ($Names) { $uri.Add('names', $Names) }; $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbCertificate() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/certificates"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty); if ($Names) { $uri.Add('names', $Names) }; if ($Ids) { $uri.Add('names', $Ids) }; $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbCertificate() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificates"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty); if ($Names) { $uri.Add('names', $Names) }; if ($Ids) { $uri.Add('names', $Ids) }; $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbCertificatesUse() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificates/uses"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbCertificateGroup() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateIds =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificates/certificate-groups"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($CertificateIds) { $uri.Add('certificate_ids' , $CertificateIds) } if ($CertificateGroupIds) { $uri.Add('certificate_group_ids' , $CertificateGroupIds) } if ($CertificateNames) { $uri.Add('certificate_names' , $Certificate_Names) } if ($CertificateGroupNames) { $uri.Add('certificate_group_names' , $CertificateGroupNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbCertificateGroup() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificates/certificate-groups"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($CertificateIds) { $uri.Add('certificate_ids' , $CertificateIds) } if ($CertificateGroupIds) { $uri.Add('certificate_group_ids' , $CertificateGroupIds) } if ($CertificateNames) { $uri.Add('certificate_names' , $CertificateNames) } if ($CertificateGroupNames) { $uri.Add('certificate_group_names' , $CertificateGroupNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbCertificateGroup() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateIds, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupIds, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateNames, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupNames ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificates/certificate-groups"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($CertificateIds) { $uri.Add('certificate_ids' , $CertificateIds) } if ($CertificateGroupIds) { $uri.Add('certificate_group_ids' , $CertificateGroupIds) } if ($CertificateNames) { $uri.Add('certificate_names' , $CertificateNames) } if ($CertificateGroupNames) { $uri.Add('certificate_group_names' , $CertificateGroupNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbCertificateGroupCertificate() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificate-groups/certificates"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($CertificateIds) { $uri.Add('certificate_ids' , $CertificateIds) } if ($CertificateGroupIds) { $uri.Add('certificate_group_ids' , $CertificateGroupIds) } if ($CertificateNames) { $uri.Add('certificate_names' , $CertificateNames) } if ($CertificateGroupNames) { $uri.Add('certificate_group_names' , $CertificateGroupNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbCertificateGroupCertificate() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificate-groups/certificates"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($CertificateIds) { $uri.Add('certificate_ids' , $CertificateIds) } if ($CertificateGroupIds) { $uri.Add('certificate_group_ids' , $CertificateGroupIds) } if ($CertificateNames) { $uri.Add('certificate_names' , $CertificateNames) } if ($CertificateGroupNames) { $uri.Add('certificate_group_names' , $CertificateGroupNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbCertificateGroupCertificate() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $CertificateGroupNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificate-groups/certificates"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($CertificateIds) { $uri.Add('certificate_ids' , $CertificateIds) } if ($CertificateGroupIds) { $uri.Add('certificate_group_ids' , $CertificateGroupIds) } if ($CertificateNames) { $uri.Add('certificate_names' , $CertificateNames) } if ($CertificateGroupNames) { $uri.Add('certificate_group_names' , $CertificateGroupNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbCertificateGroupsUse() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int32] $Limit , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/certificate-groups/uses"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids){ $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbDirectoryService() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Test, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Test) { $url = "/api/$ApiVers/directory-services/test"; } else { $url = "/api/$ApiVers/directory-services"; } #$url = "/api/$ApiVers/directory-services"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbDirectoryService() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/directory-services"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Limit) {$ $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbDirectoryServiceRole() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/directory-services/roles"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbDirectoryServiceRole() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/directory-services/roles"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $body = ConvertFrom-Json $Attributes -AsHashtable; $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFilesystem() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Destroyed, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-systems"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Destroyed) { $uri.Add('destroyed' , $Destroyed) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbFilesystem() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Overwrite = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Discard = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/file-systems"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Overwrite) { $uri.Add('overwrite', $Overwrite) } if ($Discard) { $uri.Add('discard_non_snapshot_data', $Discard) } # $body = @{ name = $Names }; $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbFilesystem() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $IgnoreUsage, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $DeleteLinkOnEradication, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $DeleteNonSnapshottedData ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/file-systems"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('name' , $Names) } if ($Ids) { $uri.Add('ids' , $Ids) } if ($IgnoreUsage) { $uri.Add('ignore_usage' , $IgnoreUsage) } if ($DeleteLinkOnEradication) { $uri.Add('delete_link_on_eradication' , $DeleteLinkOnEradication) } if ($DeleteNonSnapshottedData) { $uri.Add('delete_non_snapshotted_data' , $DeleteNonSnapshottedData) } #$body = ConvertFrom-Json $Attributes -AsHashtable; $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbFilesystem() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-systems"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('name', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFilesystemPerformance() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][long] $StartTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Protocol = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = 5, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Resolution = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Total_Only ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $url = "/api/$ApiVers/file-systems/performance"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Protocol) { $uri.Add('protocol', $Protocol) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Resolution) { $uri.Add('resolution' , $Resolution) } if ($Total_Only) { $uri.Add('total_only' , $Total_Only) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFilesystemUserPerformance() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $File_System_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $File_System_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = 5, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Total_Only, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int32] $UIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $User_Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $url = "/api/$ApiVers/file-systems/users/performance"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($File_System_Names) { $uri.Add('file_system_names', $File_System_Names) } if ($File_System_Ids) { $uri.Add('file_system_ids', $File_System_Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Names) { $uri.Add('names', $Names) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Total_Only) { $uri.Add('total_only' , $Total_Only) } if ($UIDs) { $uri.Add('uids', $UIDs) } if ($User_Names) { $uri.Add('user_names', $User_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFilesystemPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Lmit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-systems/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($MemberNames) { $uri.Add('member_names' , $MemberNames) } if ($PolicyNames) { $uri.Add('policy_names' , $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids' , $PolicyIDs) } if ($MemberIDs) { $uri.Add('member_ids' , $MemberIDs) } if ($Start) { $uri.Add('start' , $Start) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbFilesystemPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-systems/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names' , $MemberNames) } if ($PolicyNames) { $uri.Add('policy_names' , $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids' , $Policy_ids) } if ($MemberIDs) { $uri.Add('member_ids' , $MemberIDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbFilesystemPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-systems/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names' , $MemberNames) } if ($PolicyNames) { $uri.Add('policy_names' , $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids' , $Policy_ids) } if ($MemberIDs) { $uri.Add('member_ids' , $MemberIDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFileSystemReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_FS_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_FS_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_FS_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_FS_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-replica-links"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Local_FS_Ids) { $uri.Add('local_file_system_ids' , $Local_FS_Ids) } if ($Local_FS_Names) { $uri.Add('local_file_system_names' , $Local_FS_Names) } if ($Remote_FS_Ids) { $uri.Add('remote_file_system_ids' , $remote_FS_Ids) } if ($remote_FS_Names) { $uri.Add('remote_file_system_names' , $remote_FS_Names) } if ($Remote_Ids) { $uri.Add('remote_ids' , $Remote_Ids) } if ($Remote_Names) { $uri.Add('remote_names' , $Remote_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbFileSystemReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_FS_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Local_FS_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_FS_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_FS_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-replica-links"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Local_FS_Ids) { $uri.Add('local_file_system_ids' , $Local_FS_Ids) } if ($Local_FSames) { $uri.Add('local_file_system_names' , $Local_FS_Names) } if ($Remote_FS_Ids) { $uri.Add('remote_file_system_ids' , $Remote_FS_Ids) } if ($Remote_FS_Names) { $uri.Add('remote_file_system_names' , $Remote_FS_Names) } if ($Remote_Ids) { $uri.Add('remote_ids' , $Remote_Ids) } if ($Remote_Credentials_Names) { $uri.Add('remote_names' , $Remote_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFileSystemReplicaLinksPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Member_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Policy_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Policy_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Member_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Member_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-replica-links/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Member_Ids) { $uri.Add('member_ids', $Member_Ids) } if ($Polciy_Ids) { $uri.Add('policy_ids', $Policy_Ids) } if ($Policy_Names) { $uri.Add('policy_names', $Policy_Names) } if ($Remote_Ids) { $uri.Add('remote_ids', $Remote_Ids) } if ($Remote_Names) { $uri.Add('remote_names', $Remote_Names) } if ($Remote_Member_Ids) { $uri.Add('remote_member_ids', $Remote_Member_Ids) } if ($Remote_Member_Names) { $uri.Add('remote_member_names', $Remote_Member_Names) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbFileSystemReplicaLinksPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Member_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Member_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Policy_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Policy_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-replica-links/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Member_Ids) { $uri.Add('member_ids', $Member_Ids) } if ($Member_Namess) { $uri.Add('member_names', $Member_Names) } if ($Polciy_Ids) { $uri.Add('policy_ids', $Policy_Ids) } if ($Policy_Names) { $uri.Add('policy_names', $Policy_Names) } if ($Remote_Ids) { $uri.Add('remote_ids', $Remote_Ids) } if ($Remote_Names) { $uri.Add('remote_names', $Remote_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbFileSystemReplicaLinksPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Member_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Member_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Policy_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Policy_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-replica-links/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Member_Ids) { $uri.Add('member_ids', $Member_Ids) } if ($Member_Names) { $uri.Add('member_names', $Member_Names) } if ($Polciy_Ids) { $uri.Add('policy_ids', $Policy_Ids) } if ($Policy_Names) { $uri.Add('policy_names', $Policy_Names) } if ($Remote_Ids) { $uri.Add('remote_ids', $Remote_Ids) } if ($Remote_Names) { $uri.Add('remote_names', $Remote_Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFilesystemSnapshot() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Lmit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names_or_Sources = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Transfer ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Transfer -eq 'true') { $url = "/api/$ApiVers/file-system-snapshots/transfer"; } else { $url = "/api/$ApiVers/file-system-snapshots"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Names_or_Sources) { $uri.Add('names_or_sources' , $Names_or_Sources) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFilesystemSnapshotPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Lmit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Member_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Member_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Policy_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Policy_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-snapshots/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Member_Ids) { $uri.Add('member_ids', $Member_Ids) } if ($Member_Names) { $uri.Add('member_names', $Member_Names) } if ($Polciy_Ids) { $uri.Add('policy_ids', $Policy_Ids) } if ($Policy_Names) { $uri.Add('policy_names', $Policy_Names) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Names_or_Sources) { $uri.Add('names_or_sources' , $Names_or_Sources) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbFilesystemSnapshot() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Sources = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Suffix = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-snapshots"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty); if ($Sources) { $uri.Add('sources', $Sources) } if ($Suffix) { $body = @{ 'suffix' = $Suffix } ; } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbFilesystemSnapshot() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-snapshots"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('name' , $Names) } if ($Ids) { $uri.Add('ids' , $Ids) } $body = ConvertFrom-Json $Attributes -AsHashtable; $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbFilesystemSnapshot() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Remote_Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Boolean] $Transfer ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Transfer -eq 'true') { $url = "/api/$ApiVers/file-system-snapshots/transfer"; } else { $url = "/api/$ApiVers/file-system-snapshots"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('name', $Names) } if ($Ids) { $uri.Add('ids' , $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbFilesystemSnapshotPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/file-system-snapshots/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($MemberNames) { $uri.Add('member_names' , $MemberNames) } if ($PolicyNames) { $uri.Add('policy_names' , $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids' , $PolicyIds) } if ($MemberIDs) { $uri.Add('member_ids' , $MemberIDs) } if ($Start) { $uri.Add('start' , $Start) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbBlades() { Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/blades"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbHardware() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/hardware"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbHardware() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/hardware"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $body = (ConvertFrom-Json $Attributes -AsHashtable) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbHardwareConnector() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $uri = "/api/$ApiVers/hardware-connectors"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$uri"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbHardwareConnector() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][int32] $LaneSpeed = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][int32] $PortCount = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $uri = "/api/$ApiVers/hardware-connectors"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$uri"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $body = @{ 'lane_speed' = $LaneSpeed } , @{ 'port_count' = $PortCount } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbKeytabs() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int32] $Limit =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Download, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $KeyTabNames =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $KeyTabIds =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/keytabs"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Limit) { $uri.Add('limit', $Limit) } if ($Names) { $uri.Add('names', $Names) } if ($Sort) { $uri.Add('sort', $Sort) } if ($Start) { $uri.Add('start', $Start) } if ($Token) { $uri.Add('token', $Token) } if ($KeyTabIds) { $uri.Add('keytab_ids', $KeyTabIds) } if ($KeyTabNames) { $uri.Add('keytab_names', $KeyTabNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbKeytabs() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/keytabs"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Ids) { $uri.Add('ids', $Ids) } if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-NOPfbKeytabs() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $KeytabFile =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $NamePrefixes =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/keytabs"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($NamePrefixes) { $uri.Add('name_prefixes', $NamePrefixes) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbLifeCycleRules() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int32] $Limit =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $BucketNames =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $BucketIds =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/lifecycle-rules"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Limit) { $uri.Add('limit', $Limit) } if ($Names) { $uri.Add('names', $Names) } if ($Sort) { $uri.Add('sort', $Sort) } if ($Start) { $uri.Add('start', $Start) } if ($Token) { $uri.Add('token', $Token) } if ($BucketIds) { $uri.Add('bucket_ids', $BucketIds) } if ($BucketNames) { $uri.Add('bucket_names', $BucketNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbLifeCycleRules() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/lifecycle-rules"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbLifeCycleRules() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $uri = "/api/$ApiVers/lifecycle-rules"; $body = (ConvertFrom-Json $Attributes -AsHashtable); $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$uri"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbLifeCycleRules() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $BucketNames =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $BucketIds =$null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $uri = "/api/$ApiVers/lifecycle-rules"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$uri"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($BucketIds) { $uri.Add('bucket_ids', $BucketIds) } if ($BucketNames) { $uri.Add('bucket_names', $BucketNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-NOPfbLogs() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FileName =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][Int64] $EndTime = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][Int64] $StartTime = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/logs"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken) ContentType = 'application/octet-stream'} Uri = $request.Uri #Body = (ConvertTo-JSON $body) Body = " " #ContentType = 'application/octet-stream' #OutFile = $FileName } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params -Verbose -PreserveAuthorizationOnRedirect #$Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; #Set-Content -Path $FileName -Value $obj.Content -AsByteStream #return $obj; #return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbDns() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/dns"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbDns() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/dns"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbLag() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/link-aggregation-groups"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbLag() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/link-aggregation-groups"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbLag() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/link-aggregation-groups"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbLag() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/link-aggregation-groups"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbNetworkInterface() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/network-interfaces"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbNetworkInterface() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/network-interfaces"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbNetworkInterface() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/network-interfaces"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $body = @{'address' = $Address} $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbNetworkInterface() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/network-interfaces"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbSmtp() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/smtp"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbSmtp() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/smtp"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbSnmpAgents() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Mib , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Mib -eq 'true') { $url = "/api/$ApiVers/snmp-agents/mib"; } else { $url = "/api/$ApiVers/snmp-agents"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; if ($Mib) { write-host $Items return $Items; } else { return $Items; } } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbSnmpAgents() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/snmp-agents"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbSnmpManagers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Test =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Test -eq 'true') { $url = "/api/$ApiVers/snmp-managers/test"; } else { $url = "/api/$ApiVers/snmp-managers"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Ids) { $uri.Add('ids', $Ids) } if ($Names) { $uri.Add('names' , $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbSnmpManagers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/snmp-managers"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names' , $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbSnmpManagers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/snmp-managers"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Ids) { $uri.Add('ids' , $Ids) } if ($Names) { $uri.Add('names' , $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbSubnet() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/subnets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) {$ Body.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbSubnet() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/subnets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbSubnet() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/subnets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbSubnet() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/subnets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbSyslogServers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Test ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Test) { $url = "/api/$ApiVers/syslog-servers/test"; } Else { $url = "/api/$ApiVers/syslog-servers"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) {$ Body.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbSyslogServersSettings() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Test ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/syslog-servers/settings"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) {$ Body.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbSyslogServers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/syslog-servers"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbSyslogServers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $IDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/syslog-servers"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($IDs) { $uri.Add('ids', $IDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbSyslogServersSettings() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $IDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/syslog-servers/settings"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($IDs) { $uri.Add('ids', $IDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbSyslogServers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $IDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/syslog-servers"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($IDs) { $uri.Add('ids', $IDs) } if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbObjectStoreAccessKey() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Total_Only ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-access-keys"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Total_Only) { $uri.Add('total_only' , $Total_Only) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbObjectStoreAccessKey() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Name = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $body = @{ 'user' = @{ 'name'=$Name } } $url = "/api/$ApiVers/object-store-access-keys"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbObjectStoreAccessKey() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-access-keys"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('name' , $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbObjectStoreAccessKey() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $url = "/api/$ApiVers/object-store-access-keys"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbObjectStoreAccessPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-access-policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbObjectStoreAccessPoliciesUsers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-access-policies/object-store-users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names', $MemberNames) } if ($MemberIds) { $uri.Add('member_ids', $MemberIds) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($PolicyIds) { $uri.Add('policy_ids', $PolicyIds) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbObjectStoreAccessPoliciesUsers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-access-policies/object-store-users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names', $MemberNames) } if ($MemberIds) { $uri.Add('member_ids', $MemberIds) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($PolicyIds) { $uri.Add('policy_ids', $PolicyIds) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbObjectStoreAccessPoliciesUsers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIds = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-access-policies/object-store-users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names', $MemberNames) } if ($MemberIds) { $uri.Add('member_ids', $MemberIds) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($PolicyIds) { $uri.Add('policy_ids', $PolicyIds) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbObjectStoreAccount() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Total_Only ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $url = "/api/$ApiVers/object-store-accounts"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Total_Only) { $uri.Add('total_only' , $Total_Only) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbObjectStoreAccount() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-accounts"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbObjectStoreAccount() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-accounts"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbObjectStoreUser() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Total_Only ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $url = "/api/$ApiVers/object-store-users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Total_Only) { $uri.Add('total_only' , $Total_Only) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbObjectStoreUser() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/object-store-users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbObjectStoreUser() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbObjectStoreVirtualHosts() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $url = "/api/$ApiVers/object-store-virtual-hosts"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Total_Only) { $uri.Add('total_only' , $Total_Only) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbObjectVirtualHosts() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/object-store-virtual-hosts"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbObjectStoreVirtualHosts() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-virtual-hosts"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbObjectStoreRC() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Limit -gt 5) { $Limit = 5; write-host "Limit set to max of 5 due to API policy";} $url = "/api/$ApiVers/object-store-remote-credientials"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbObjectStoreRC() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/object-store-remote-credentials"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbObjectStoreRC() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $IDs = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/object-store-remote-credentials"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($IDs) { $uri.Add('ids', $IDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbObjectStoreRC() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $IDs = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/object-store-remote-credentials"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($IDs) { $uri.Add('ids', $IDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbPolicies() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/policies"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbPoliciesFileSystem() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/policies/file-systems"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names', $MemberNames) } if ($MemberIDs) { $uri.Add('member_ids', $MemberIDs) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids', $PolicyIDs) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbPoliciesFileSystem() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/policies/file-systems"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names', $MemberNames) } if ($MemberIDs) { $uri.Add('member_ids', $MemberIDs) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids', $PolicyIDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbPoliciesFileSystem() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/policies/file-systems"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names', $MemberNames) } if ($MemberIDs) { $uri.Add('member_ids', $MemberIDs) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids', $PolicyIDs) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbPoliciesFileSystemReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $LocalFSIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $LocalFSNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteFSIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteFSNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/policies/file-system-replica-links" $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($LocalFSIDs) { $uri.Add('local_file_system_ids' , $LocalFSIDs) } if ($LocalFSNames) { $uri.Add('local_file_system_names' , $LocalFSNames) } if ($MemberIDs) { $uri.Add('member_ids', $MemberIDs) } if ($PolicyIDs) { $uri.Add('policy_ids', $PolicyIDs) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($RemoteIDs) { $uri.Add('remote_ids', $RemoteIDs) } if ($RemoteNames) { $uri.Add('remote_names', $RemoteNames) } if ($RemoteFSIDs) { $uri.Add('remote_file_system_ids', $RemoteFSIDs) } if ($RemoteFSNames) { $uri.Add('remote_file_system_names', $RemoteFSNames) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbPoliciesFileSystemReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $LocalFSIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $LocalFSNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteFSIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteFSNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/policies/file-system-replica-links"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($LocalFSIDs) { $uri.Add('local_file_system_ids' , $LocalFSIDs) } if ($LocalFSNames) { $uri.Add('local_file_system_names' , $LocalFSNames) } if ($RemoteIDs) { $uri.Add('remote_ids', $RemoteIDs) } if ($RemoteNames) { $uri.Add('remote_names', $RemoteNames) } if ($RemoteFSIDs) { $uri.Add('remote_file_system_ids', $RemoteFSIDs) } if ($RemoteFSNames) { $uri.Add('remote_file_system_names', $RemoteFSNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbPoliciesFileSystemReplicaLinks() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $LocalFSIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $LocalFSNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteFSIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $RemoteFSNames = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/policies/file-system-replica-links"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($LocalFSIDs) { $uri.Add('local_file_system_ids' , $LocalFSIDs) } if ($LocalFSNames) { $uri.Add('local_file_system_names' , $LocalFSNames) } if ($RemoteIDs) { $uri.Add('remote_ids', $RemoteIDs) } if ($RemoteNames) { $uri.Add('remote_names', $RemoteNames) } if ($RemoteFSIDs) { $uri.Add('remote_file_system_ids', $RemoteFSIDs) } if ($RemoteFSNames) { $uri.Add('remote_file_system_names', $RemoteFSNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbPoliciesFileSystemSnapshot() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/policies/file-system-snapshots"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names', $MemberNames) } if ($MemberIDs) { $uri.Add('member_ids', $MemberIDs) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids', $PolicyIDs) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbPoliciesMember() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $MemberIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $PolicyIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/policies/members"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($MemberNames) { $uri.Add('member_names', $MemberNames) } if ($MemberIDs) { $uri.Add('member_ids', $MemberIDs) } if ($PolicyNames) { $uri.Add('policy_names', $PolicyNames) } if ($PolicyIDs) { $uri.Add('policy_ids', $PolicyIDs) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbQuotaGroup() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GroupNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/quotas/groups"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($GIDs) { $uri.Add('gids', $GIDs) } if ($Names) { $uri.Add('names', $Names) } if ($GroupNames) { $uri.Add('group_names', $GroupNames) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbQuotaGroup() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FileSystemName = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GroupName = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Quota = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $body = " { 'quota': $Quota } " ; $url = "/api/$ApiVers/quotas/groups"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemName) { $uri.Add('file_system_names', $FileSystemName) } if ($GIDs) { $uri.Add('gids', $GIDs) } if ($GroupName) { $uri.Add('group_names', $GroupName) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbQuotaGroup() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GroupNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Quota = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $body = " { 'quota': $Quota } " ; $url = "/api/$ApiVers/quotas/groups"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($GIDs) { $uri.Add('gids', $GIDs) } if ($GroupNames) { $uri.Add('group_names', $GroupNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbQuotaGroup() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GroupNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Quota = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/quotas/groups"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($GIDs) { $uri.Add('gids', $GIDs) } if ($GroupNames) { $uri.Add('group_names', $GroupNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbQuotaUser() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UserNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/quotas/users"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($UIDs) { $uri.Add('uids', $UIDs) } if ($Names) { $uri.Add('names', $Names) } if ($UserNames) { $uri.Add('user_names', $UserNames) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbQuotaUser() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UserNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Quota = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $body = " { 'quota': $Quota } " ; $url = "/api/$ApiVers/quotas/users"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($UIDs) { $uri.Add('uids', $UIDs) } if ($UserNames) { $uri.Add('user_names', $UserNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbQuotaUser() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UserNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Quota = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $body = " { 'quota': $Quota } " ; $url = "/api/$ApiVers/quotas/users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($UIDs) { $uri.Add('uids', $UIDs) } if ($UserNames) { $uri.Add('user_names', $UserNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbQuotaUser() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FileSystemName = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UserNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Quota = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/quotas/users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemName) { $uri.Add('file_system_names', $FileSystemName) } if ($UIDs) { $uri.Add('uids', $UIDs) } if ($UserNames) { $uri.Add('user_names', $UserNames) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbRoles() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $IDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/roles"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($IDs) { $uri.Add('ids', $IDs) } if ($Names) { $uri.Add('names', $Names) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbUsageGroup() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GroupNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/usage/groups"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($GIDs) { $uri.Add('gids', $GIDs) } if ($GroupNames) { $uri.Add('group_names', $GroupNames) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbUsageUser() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UserNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/usage/users"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($UIDs) { $uri.Add('uids', $UIDs) } if ($UserNames) { $uri.Add('user_names', $UserNames) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbAdmin() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Expose , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/admins"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Expose) { $uri.Add('expose', $Expose) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbAdmin() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Admin = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $ApiTokenTimout = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $CreateApiToken , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $DeleteApiToken , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][securestring] $OldPassword = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][securestring] $Password = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/admins"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Admins) { $uri.Add('admins', $Admins) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbAdminCache() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Refresh = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/admins/cache"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Expose) { $uri.Add('expose', $Expose) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbAdminCache() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/admins/cache"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbSupport() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $TestType = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][boolean] $Test ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($Test) { $url = "/api/$ApiVers/support/test"; } Else { $url = "/api/$ApiVers/support"; } $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($TestType) { $uri.Add('test_type' , $TestType) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbSupport() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/support"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'Patch' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbTargets() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Refresh = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/targets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Expose) { $uri.Add('expose', $Expose) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Add-PfbTargets() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/targets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'POST' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbTargets() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Attributes = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $InputFile = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } if ($InputFile) { $body = Get-Content -Raw $InputFile | out-string | ConvertFrom-Json -AsHashtable; } else { $body = (ConvertFrom-Json $Attributes -AsHashtable); } $url = "/api/$ApiVers/targets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Remove-PfbTargets() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/targets"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'DELETE' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbUsageGroups() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GroupNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $GIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/usage/groups"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($GIDs) { $uri.Add('gids', $GIDs) } if ($Names) { $uri.Add('names', $Names) } if ($GroupNames) { $uri.Add('group_names', $GroupNames) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbUsageUsers() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Limit = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][string] $FileSystemNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UserNames = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $UIIDs = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int32] $Start = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/usage/users"; $headers = @{}; $headers.Add("x-auth-token", $(Get-InternalPfbAuthToken)); $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($FileSystemNames) { $uri.Add('file_system_names', $FileSystemNames) } if ($GIDs) { $uri.Add('gids', $GIDs) } if ($Names) { $uri.Add('names', $Names) } if ($GroupNames) { $uri.Add('group_names', $GroupNames) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbTargetsPerformanceReplication() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $EndTime, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Filter = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Ids = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Names = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Limit, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][int64] $Resolution, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Sort = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][Int64] $Start , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $StartTime , [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Token = $null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][bool] $Total_Only ) if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] }; $MinAPIVers = 1.9 Test-APIVersion ($ApiVers, $MinAPIVers) if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/target/performance/replication"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Names) { $uri.Add('names', $Names) } if ($Ids) { $uri.Add('ids', $Ids) } if ($Filter) { $uri.Add('filter', $Filter) } if ($Sort) { $uri.Add('sort' , $Sort) } if ($Start) { $uri.Add('start' , $Start) } if ($Limit) { $uri.Add('limit' , $Limit) } if ($Token) { $uri.Add('token' , $Token) } if ($Total_Only) { $uri.Add('total_only' , $Total_Only) } if ($EndTime) { $uri.Add('end_time' , (Get-PfbDateSinceEpoc -MyDate ($EndTime))) } if ($StartTime) { $uri.Add('start_time' , (Get-PfbDateSinceEpoc -MyDate ($StartTime))) } if ($Resolution) { $uri.Add('resolution' , $Resolution) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Get-PfbZTP() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $Name = $null ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/setup/validation"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) if ($Name) { $uri.Add('names', $Name) } $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $params = @{ SkipCertificateCheck = $skipcert Method = 'GET' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { if ($DEBUG) {Write-Host 'Logout'}; $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } function Update-PfbZTP() { [CmdletBinding()] Param( [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $FlashBlade, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $ApiToken, [Parameter(Mandatory=$FALSE)][ValidateNotNullOrEmpty()][string] $SkipCertificateCheck =$null, [Parameter(Mandatory=$TRUE)][ValidateNotNullOrEmpty()][boolean] $Complete ); if (!$FlashBlade) { $myreturn = $(Get-InternalPfbJson); $FlashBlade = $myreturn[0] $ApiToken = $myreturn[1] $ApiVers = $myreturn[2] $SkipCertificateCheck = $myreturn[3] } if ($SkipCertificateCheck -eq 'true') { $PSDefaultParameterValues=@("Invoke-RestMethod:SkipCertificateCheck",$true) if ($DEBUG) {write-host "Skipping the Certificate Check $SkipCertificateCheck"} $skipcert=$True } $url = "/api/$ApiVers/setup/finalization"; $link = "https://$FlashBlade$url"; $uri = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $request = [System.UriBuilder]$link $request.Query = $uri.ToString() $body = @{setup_completed = "True"}; $params = @{ SkipCertificateCheck = $skipcert Method = 'PATCH' Headers = @{ 'x-auth-token' = $(Get-InternalPfbAuthToken)} Uri = $request.Uri Body = (ConvertTo-JSON $body) ContentType = 'application/json' } if ($DEBUG) { write-host $request.Uri }; if ($DEBUG) { write-host @params }; try { $obj = Invoke-RestMethod @params $Items = $obj.items; if ($DEBUG) {Write-Host ("Running function: {0} " -f $MyInvocation.MyCommand)}; if ($DEBUG) {Write-Host '---------------------------------------------------'}; return $Items; } catch [System.Net.Http.HttpRequestException] { $Request = $_.Exception Write-host "Error trying to connect to $FlashBlade " Get-InternalHTTPError; } catch { $Request = $_.Exception Write-host "Catchall Exception caught: $Request" Get-InternalCatchAllError; } Finally { $Token = $(Get-InternalPfbAuthToken); Get-InternalPfbAuthTokenLogout $Token; } } #================================================================================================================== #New-Alias -Name Get-PfbArrayCPR -Value Get-PfbArrayConnectionsPerformanceReplication #New-Alias -Name Get-PfbTargetPR -Value Get-PfbTargetPerformanceReplication Export-ModuleMember -Function Start-Pfb* -Alias * Export-ModuleMember -Function Get-Pfb* -Alias * Export-ModuleMember -Function Add-Pfb* -Alias * Export-ModuleMember -Function Update-Pfb* -Alias * Export-ModuleMember -Function Remove-Pfb* -Alias * |