Public/Api/ServiceEndpoints/Endpoints/Get-AzDoServiceConnection.ps1
function Get-AzDoServiceConnection { <# .SYNOPSIS Gets information about service connection in an Azure DevOps project. .DESCRIPTION Gets information about specific service connection if the parameter $ServiceConnectionName is filled in. Otherwise it will list all the service connections. .EXAMPLE $getAzDoServiceConnectionSplat = @{ CollectionUri = "https://dev.azure.com/contoso" ProjectName = "Project 1" } Get-AzDoServiceConnection @getAzDoServiceConnectionSplat This example will list all the service connections contained in 'Project 1'. .EXAMPLE $getAzDoServiceConnectionSplat = @{ CollectionUri = "https://dev.azure.com/contoso" ProjectName = "Project 1" ServiceConnectionName = 'ServiceConnection1', 'ServiceConnection2' } Get-AzDoServiceConnection @getAzDoServiceConnectionSplat This example will fetch information about the service connections 'ServiceConnection1', 'ServiceConnection2' in the project 'Project 1'. .EXAMPLE $getAzDoServiceConnectionSplat = @{ CollectionUri = "https://dev.azure.com/contoso" ProjectName = "Project 1" } 'ServiceConnection1', 'ServiceConnection2' | Get-AzDoServiceConnection @getAzDoServiceConnectionSplat This example will fetch information about the service connections 'ServiceConnection1', 'ServiceConnection2' in the project 'Project 1'. .EXAMPLE [PSCustomObject]@{ CollectionUri = "https://dev.azure.com/contoso" ProjectName = "Project 1" ServiceConnectionName = "Service Connection 1", "Service Connection 2" } | Get-AzDoServiceConnection This example will fetch information about the service connections 'ServiceConnection1', 'ServiceConnection2' in the project 'Project 1'. .EXAMPLE [PSCustomObject]@{ CollectionUri = "https://dev.azure.com/contoso" ProjectName = "Project 1" ServiceConnectionName = "Service Connection 1", "Service Connection 2" } | Get-AzDoServiceConnection This example will fetch information about the service connections 'ServiceConnection1', 'ServiceConnection2' in the project 'Project 1'. .EXAMPLE @( [PSCustomObject]@{ CollectionUri = "https://dev.azure.com/contoso" ProjectName = "Project 1" ServiceConnectionName = "Service Connection 1" }, [PSCustomObject]@{ CollectionUri = "https://dev.azure.com/contoso" ProjectName = "Project 1" ServiceConnectionName = "Service Connection 2" } ) | Get-AzDoServiceConnection This example will fetch information about the service connections 'ServiceConnection1', 'ServiceConnection2' in the project 'Project 1'. .OUTPUTS PSCustomObject(s) with serviceconnections(s). .NOTES #> [CmdletBinding(SupportsShouldProcess)] param ( # Collection Uri of the organization [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [ValidateScript({ Validate-CollectionUri -CollectionUri $_ })] [string] $CollectionUri, # Project where the Service Connection is used [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [string] $ProjectName, # Name of the Service Connection to get information about [Parameter(ValueFromPipelineByPropertyName, ValueFromPipeline)] [string[]] $ServiceConnectionName ) begin { $result = @() Write-Verbose "Starting function: Get-AzDoServiceConnection" } process { $result = @() $params = @{ uri = "$CollectionUri/$ProjectName/_apis/serviceendpoint/endpoints" version = "7.2-preview.4" method = 'GET' } if ($PSCmdlet.ShouldProcess($CollectionUri, "Get Service Connections from: $($PSStyle.Bold)$ProjectName$($PSStyle.Reset)")) { $result += (Invoke-AzDoRestMethod @params).value | Where-Object { -not $ServiceConnectionName -or $_.Name -in $ServiceConnectionName } if ($result) { $result | ForEach-Object { [PSCustomObject]@{ CollectionUri = $CollectionUri ProjectName = $ProjectName ServiceConnectionName = $_.name ServiceConnectionId = $_.id ServiceConnectionType = $_.type ServiceConnectionUrl = $_.url ServiceConnectionDescription = $_.description ServiceConnectionCreatedBy = $_.createdBy.displayName ServiceConnectionAuthorization = $_.authorization ServiceConnectionData = $_.data ServiceConnectionIsShared = $_.isShared ServiceConnectionOwner = $_.owner ServiceConnectionServiceEndpointProjectReferences = $_.serviceEndpointProjectReferences } } } } else { Write-Verbose "Calling Invoke-AzDoRestMethod with $($params| ConvertTo-Json -Depth 10)" } } } |