Modules/AzureDevOpsDsc.Common/Api/Functions/Private/Api/ArtifactFeed/Get-DevOpsArtifactFeedRetentionPolicy.ps1
|
Function Get-DevOpsArtifactFeedRetentionPolicy { <# .SYNOPSIS Retrieves the retention policy (artifact lifecycle) for an Azure Artifacts feed. .DESCRIPTION Returns the feed's retention policy object ('countLimit' and 'daysToKeepRecentlyDownloadedPackages'), or $null if no policy is configured. #> [CmdletBinding()] param( [Parameter(Mandatory)][string]$ApiUri, [Parameter()][string]$ProjectName, [Parameter(Mandatory)][string]$FeedId, [Parameter()][string]$ApiVersion = '7.1-preview.1' ) $baseUri = if ($ProjectName) { '{0}/{1}' -f $ApiUri.TrimEnd('/'), $ProjectName } else { $ApiUri.TrimEnd('/') } $params = @{ Uri = '{0}/_apis/packaging/feeds/{1}/retentionpolicies?api-version={2}' -f $baseUri, $FeedId, $ApiVersion Method = 'GET' } try { return Invoke-AzDevOpsApiRestMethod @params } catch { # A feed with no retention policy returns 404 — treat that as "no policy" rather than an error. Write-Verbose "[Get-DevOpsArtifactFeedRetentionPolicy] No retention policy for feed '$FeedId': $_" return $null } } |