Public/Get-iPilotTeamsDomain.ps1
Function Get-iPilotTeamsDomain { <# .Synopsis Displays a list of available iPilot domains. .Description Returns available iPilot domains based on supplied credentials. .Parameter ApiVersion Version of the NuWave iPilot to use. Defaults to version 1. .Parameter Credential iPilot credential .Example # Get avilable iPilot domains Get-iPilotTeamsDomain -Credential $Credential #> Param ( [System.String] $ApiUrl = "https://api.nuwave.com", [System.String] $ApiVersion = "v1", [System.String] $ApiKey, [System.Int16] $NumberOfRecords = 100, [System.Management.Automation.PSCredential] $Credential, [Switch] $RefreshToken, [Switch] $Verbose, [Switch] $Debug ) Begin { } Process { # Verbose Switch if($PSBoundParameters.containskey("Verbose")) { $PreviousVerbosePreference = $VerbosePreference $VerbosePreference = "continue" } # Debug Switch if($PSBoundParameters.containskey("Debug")) { $PreviousDebugPreference = $DebugPreference $DebugPreference = "continue" } # Force refresh OAuth Token if ($RefreshToken.IsPresent) { $global:iPilotOAuthToken = $null $global:iPilotDomain = $null } Initialize-iPilotSession -ApiUrl $ApiUrl -ApiVersion $ApiVersion # Build iPilot API Request $GetiPilotDomainRequestUri = "$ApiUrl/$ApiVersion/msteams?limit=$NumberOfRecords&page=1" # Splat Invoke-RestMethod parameters Write-Verbose "Request Uri: $GetiPilotDomainRequestUri" Write-Verbose "Request Method: Get" $GetiPilotAvailableNumberInvokeParams = @{ Uri = $GetiPilotDomainRequestUri Method = "Get" ContentType = "application/json" Headers = @{ "X-Access-Token" = $global:iPilotOAuthToken.access_token "x-api-key" = $global:iPilotApiKey } } # Execute the REST API Try { $GetiPilotDomainResponse = Invoke-RestMethod @GetiPilotAvailableNumberInvokeParams if ($GetiPilotDomainResponse.domains.count -gt 1) { # Get domain selection from grid view $global:iPilotDomain = $GetiPilotDomainResponse.domains | Out-GridView -Title "Select the domain:" -PassThru } else { $global:iPilotDomain = $GetiPilotDomainResponse.domains } Write-Output "iPilot Domain: $global:iPilotDomain" } Catch { Write-Error "No iPilot Domain(s) available.`n URL: $($GetiPilotDomainRequestUri).`n Error: $($_)" } # Verbose Switch if($PSBoundParameters.containskey("Verbose")) { $VerbosePreference = $PreviousVerbosePreference } # Debug Switch if($PSBoundParameters.containskey("Debug")) { $DebugPreference = $PreviousDebugPreference } } } |