Src/Private/Diagram/Get-AbrObjectRepoInfo.ps1
|
function Get-AbrObjectRepoInfo { <# .SYNOPSIS Retrieves information about Veeam Backup & Replication object repositories. .DESCRIPTION The Get-AbrObjectRepoInfo function queries and returns detailed information about object repositories configured in Veeam Backup & Replication. This includes details such as repository name, type, capacity, and other relevant properties. .PARAMETER RepoName The name of the repository to retrieve information for. If not specified, information for all repositories will be returned. .EXAMPLE Get-AbrObjectRepoInfo -RepoName "MyRepository" Retrieves information about the repository named "MyRepository". .EXAMPLE Get-AbrObjectRepoInfo Retrieves information about all configured object repositories. .NOTES Author: Jonathan Colon Date: 2024-12-30 Version: 1.0 #> param () try { Write-Verbose "Collecting Object Repository information from $($VBRServer)." $ObjectRepositories = Get-VBRObjectStorageRepository if ($ObjectRepositories) { $ObjectRepositoriesInfo = $ObjectRepositories | ForEach-Object { $inobj = [ordered] @{ 'Type' = $_.Type 'Folder' = if ($_.AmazonS3Folder) { $_.AmazonS3Folder } elseif ($_.AzureBlobFolder) { $_.AzureBlobFolder } else { 'Unknown' } 'Gateway' = if (-not $_.UseGatewayServer) { switch ($_.ConnectionType) { 'Gateway' { switch (($_.GatewayServer | Measure-Object).Count) { 0 { 'Disable' } 1 { $_.GatewayServer.Name.Split('.')[0] } default { 'Automatic' } } } 'Direct' { 'Direct' } default { 'Unknown' } } } else { switch (($_.GatewayServer | Measure-Object).Count) { 0 { 'Disable' } 1 { $_.GatewayServer.Name.Split('.')[0] } default { 'Automatic' } } } } $IconType = Get-AbrIconType -String $_.Type [PSCustomObject] @{ Name = $_.Name AditionalInfo = $inobj IconType = $IconType } } return $ObjectRepositoriesInfo } } catch { Write-Verbose -Message $_.Exception.Message } } |