Functions/Public/component-registry/Get-vRAApplianceServiceStatus.ps1
function Get-vRAApplianceServiceStatus { <# .SYNOPSIS Get information about vRA services .DESCRIPTION Get information about vRA services. These are the same services that you will see via the service tab .PARAMETER Name The name of the service to query .PARAMETER Limit The number of entries returned per page from the API. This has a default value of 100. .INPUTS System.String .OUTPUTS System.Management.Automation.PSObject .EXAMPLE Get-vRAApplianceServiceStatus .EXAMPLE Get-vRAApplianceServiceStatus -Limit 9999 .EXAMPLE Get-vRAApplianceServiceStatus -Name iaas-service #> [CmdletBinding()][OutputType('System.Management.Automation.PSObject')] Param ( [parameter(Mandatory=$false,ValueFromPipeline=$false)] [ValidateNotNullOrEmpty()] [String[]]$Name, [parameter(Mandatory=$false,ValueFromPipeline=$false)] [ValidateNotNullOrEmpty()] [String]$Limit = "100" ) try { # --- Build base URI with limit $URI = "/component-registry/services/status/current?limit=$($Limit)" # --- If the name parameter is passed returned detailed information about the service if ($PSBoundParameters.ContainsKey("Name")){ foreach ($ServiceName in $Name) { $Filter = "name%20eq%20'$($ServiceName)'" Write-Verbose -Message "Preparing GET to $($URI)&`$filter=$($Filter)" $Response = Invoke-vRARestMethod -Method GET -URI "$($URI)&`$filter=$($Filter)" Write-Verbose -Message "SUCCESS" if ($Response.content.Length -eq 0) { throw "Could not find service" } [pscustomobject]@{ Id = $Response.content.serviceId Name = $Response.content.serviceName TypeId = $Response.content.serviceTypeId NotAvailable = $Response.content.notAvailable LastUpdated = $Response.content.lastUpdated EndpointUrl = $Response.content.statusEndPointUrl Initialized = $Response.content.serviceStatus.initialized SolutionUser = $Response.content.serviceStatus.solutionUser StartedTime = $Response.content.serviceStatus.startedTime Status = $Response.content.serviceStatus.serviceInitializationStatus ErrorMessage = $Response.content.serviceStatus.errorMessage IdentityCertificateInfo = $Response.content.serviceStatus.identityCertificateInfo ServiceRegistrationId = $Response.content.serviceStatus.serviceRegistrationId SSLCertificateInfo = $Response.content.serviceStatus.sslCertificateInfo DefaultServiceEndpointType = $Response.content.serviceStatus.defaultServiceEndpointType } } } else { Write-Verbose -Message "Preparing GET to $($URI)" $Response = Invoke-vRARestMethod -Method GET -URI $URI Write-Verbose -Message "SUCCESS" Write-Verbose -Message "Response contains $($Response.content.Length) records" foreach ($Service in $Response.content) { [pscustomobject]@{ Id = $Service.serviceId Name = $Service.serviceName TypeId = $Service.serviceTypeId NotAvailable = $Service.notAvailable LastUpdated = $Service.lastUpdated EndpointUrl = $Response.content.statusEndPointUrl Initialized = $Service.serviceStatus.initialized SolutionUser = $Service.serviceStatus.solutionUser StartedTime = $Service.serviceStatus.startedTime Status = $Service.serviceStatus.serviceInitializationStatus ErrorMessage = $Service.serviceStatus.errorMessage IdentityCertificateInfo = $Service.serviceStatus.identityCertificateInfo ServiceRegistrationId = $Service.serviceStatus.serviceRegistrationId SSLCertificateInfo = $Service.serviceStatus.sslCertificateInfo DefaultServiceEndpointType = $Service.serviceStatus.defaultServiceEndpointType } } } } catch [Exception]{ throw } } |