Public/generated/Get-KriticalUtcmEXORetentionPolicyTag.ps1

# Kritical.PS.UTCM | Microsoft Graph UTCM REST API toolkit
# (c) 2026 Kritical Pty Ltd | https://kritical.net
# Kritical brand banner is rendered at module load via Write-KriticalUtcmBanner.

function Get-KriticalUtcmEXORetentionPolicyTag {
<#
.SYNOPSIS
    Kritical.UTCM shim for M365DSC resource EXORetentionPolicyTag.

.DESCRIPTION

    Search-replace safe: callers that today invoke
        Get-M365DSCEXORetentionPolicyTag -Credential $cred -TenantId $tid
    can rename to
        Get-KriticalUtcmEXORetentionPolicyTag -Credential $cred -TenantId $tid
    with ZERO other edits. Parameter shape matches the M365DSC .schema.mof
    exactly. By default -PreferM365DscBehavior is true.

    Actual Graph dispatch is delegated to Invoke-KriticalUtcmM365DscSchemaBridge.
    Bridge maps resource → Graph endpoint per per-resource wave; where mapping
    is not yet shipped, bridge returns an object with Verdict='UNMAPPED'.

.NOTES
    Workload: Exchange
    Param count: 16
#>

[CmdletBinding()]
param(
        # The Identity parameter specifies the name of the tag.
[Parameter(Mandatory)] [string]$Identity,
        # The Description parameter specifies a comment for the tag.
[string]$Comment,
        # The AgeLimitForRetention parameter specifies the age at which retention is enforced on an item. The age limit corresponds to the number of days from the date the item was delivered, or the date an item was created if it wasn't delivered. If this parameter isn't present and the RetentionEnabled parameter is set to $true, an error is returned.
[int]$AgeLimitForRetention,
        # The MessageClass parameter specifies the message type to which the tag applies. If not specified, the default value is set to *.
[string]$MessageClass,
        # The MustDisplayCommentEnabled parameter specifies whether the comment can be hidden. The default value is $true.
[bool]$MustDisplayCommentEnabled,
        # The RetentionAction parameter specifies the action for the retention policy.
[string]$RetentionAction,
        # The RetentionEnabled parameter specifies whether the tag is enabled. When set to $false, the tag is disabled, and no retention action is taken on messages that have the tag applied.
[bool]$RetentionEnabled,
        # The Type parameter specifies the type of retention tag being created.
[string]$Type,
        # Present ensures the instance exists, absent ensures it is removed.
[ValidateSet('Absent','Present')] [string]$Ensure,
        # Credentials of the workload's Admin
[string]$Credential,
        # Id of the Azure Active Directory application to authenticate with.
[string]$ApplicationId,
        # Id of the Azure Active Directory tenant used for authentication.
[string]$TenantId,
        # Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.
[string]$CertificateThumbprint,
        # Username can be made up to anything but password will be used for CertificatePassword
[string]$CertificatePassword,
        # Path to certificate used in service principal usually a PFX file.
[string]$CertificatePath,
        # Managed ID being used for authentication.
[bool]$ManagedIdentity
)
    Invoke-KriticalUtcmM365DscSchemaBridge -ResourceName 'EXORetentionPolicyTag' -Workload 'Exchange' -Verb 'Get' -CallerParams $PSBoundParameters
}