Modules/AzureDevOpsDsc.Common/LocalizedData/002.LocalizedDataAzSerializationPatten.ps1

<#
.SYNOPSIS
    Contains localized data patterns for Azure DevOps serialization.
 
.DESCRIPTION
    This data section defines regular expression patterns used for matching various Azure DevOps entities such as Git repositories, group permissions, and project permissions.
 
.NOTES
 
.DATA
    GitRepository
        Pattern to match Git repository ACL tokens, excluding branch level ACLs.
        Example: repoV2/ProjectId/RepoId
        Excludes: repoV2/ProjectId/RepoId/refs/heads/BranchName
 
    GroupPermission
        Pattern to match group permissions.
        Example: 78a5065f-3043-426f-9cc5-785748b18f9d\\242ea4ca-e150-4499-a491-00f4ce1f480e
 
    ProjectPermission
        Pattern to match project permissions.
        Example: $PROJECT:vstfs:///Classification/TeamProject/78a5065f-3043-426f-9cc5-785748b18f9d
#>

data LocalizedDataAzSerializationPatten
{
    @{
        # Git Repository ACL Token Patterns. Exclude the refs token since these are branch level ACLs.
        # Example: repoV2/ProjectId/RepoId
        # Not: repoV2/ProjectId/RepoId/refs/heads/BranchName
        GitRepository = '^repoV2\/{0}\/(?!.*\/refs).*'
        # Group Permissions
        # Example: 78a5065f-3043-426f-9cc5-785748b18f9d\\242ea4ca-e150-4499-a491-00f4ce1f480e
        GroupPermission = '^{0}\\\\{1}$'
        # Project Permissions
        # Example: $PROJECT:vstfs:///Classification/TeamProject/78a5065f-3043-426f-9cc5-785748b18f9d
        ProjectPermission = '^\$PROJECT:vstfs:\/{{3}}Classification\/TeamProject\/{0}$'
        # Build/Pipeline Permissions (ProjectId or ProjectId/PipelineId)
        # Example: 78a5065f-3043-426f-9cc5-785748b18f9d or 78a5065f.../123
        BuildPermission = '^{0}(\/[0-9]+)?$'
        # Library/VariableGroup Permissions
        # Example: Library/Project/ProjectId or Library/Project/ProjectId/VariableGroup/42
        LibraryPermission = '^Library\/Project\/{0}(\/VariableGroup\/[0-9]+)?$'
        # ServiceEndpoints Permissions
        # Example: endpoints/Project/ProjectId or endpoints/Project/ProjectId/endpoint/EndpointId
        ServiceEndpointPermission = '^endpoints\/Project\/{0}(\/endpoint\/[A-Za-z0-9-]+)?$'
        # AgentPool Permissions (PoolId integer)
        # Example: 7
        AgentPoolPermission = '^{0}$'
        # DistributedTask/Environment Permissions
        # Example: Environments/ProjectId or Environments/ProjectId/42
        EnvironmentPermission = '^Environments\/{0}(\/[0-9]+)?$'
        # Packaging/ArtifactFeed Permissions
        # Example: FeedId or Project/FeedId
        PackagingPermission = '^({0}\/)?[A-Za-z0-9-]+$'
        # Generic fallback – exact token match
        GenericPermission = '^{0}$'
    }

}