Private/New-URIString.ps1
function New-URIString($server, $endpoint, $id) { <# .SYNOPSIS Builds a valid URI .DESCRIPTION Builds a valid URI based off of the constructs defined in the Get-RubrikAPIData resources for the cmdlet. Inserts any object IDs into the URI if {id} is specified within the constructs. .PARAMETER server The Rubrik cluster IP or FQDN .PARAMETER endpoint The endpoint path .PARAMETER id An id value to be planted into the path or optionally at the end of the URI to retrieve a single object #> # Validation of id param if ($id -match '^@\{') { Write-Error -Message "Please validate ID input, please only input the ID parameter the object: '$id'" -ErrorAction Stop } elseif ($id.Length -gt 200) { Write-Error -Message "Please validate ID input, invalid ID provided: '$id'" -ErrorAction Stop } Write-Verbose -Message 'Build the URI' # If we find {id} in the path, replace it with the $id value if ($endpoint.Contains('{id}')) { $uri = ('https://' + $server + $endpoint) -replace '{id}', $id } # Otherwise, only add the $id value at the end if it exists (for single object retrieval) else { $uri = 'https://' + $server + $endpoint if ($id) { $uri += "/$id" } } Write-Verbose -Message "URI = $uri" return $uri } |