Public/generated/Get-KriticalUtcmTeamsMeetingConfiguration.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-KriticalUtcmTeamsMeetingConfiguration {
<#
.SYNOPSIS
    Kritical.UTCM shim for M365DSC resource TeamsMeetingConfiguration.

.DESCRIPTION

    Search-replace safe: callers that today invoke
        Get-M365DSCTeamsMeetingConfiguration -Credential $cred -TenantId $tid
    can rename to
        Get-KriticalUtcmTeamsMeetingConfiguration -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: Teams
    Param count: 24
#>

[CmdletBinding()]
param(
        # Only valid value is 'Yes'.
[Parameter(Mandatory)] [ValidateSet('Yes')] [string]$IsSingleInstance,
        # URL to a logo image. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries.
[string]$LogoURL,
        # URL to a website containing legal information and meeting disclaimers. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries.
[string]$LegalURL,
        # URL to a website where users can obtain assistance on joining the meeting.This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries.
[string]$HelpURL,
        # Text to be used on custom meeting invitations.
[string]$CustomFooterText,
        # Determines whether anonymous users are blocked from joining meetings in the tenant. Set this to TRUE to block anonymous users from joining. Set this to FALSE to allow anonymous users to join meetings.
[bool]$DisableAnonymousJoin,
        # Determines if anonymous users can interact with apps in meetings. Set to TRUE to disable App interaction.
[bool]$DisableAppInteractionForAnonymousUsers,
        # Determines whether Quality of Service Marking for real-time media (audio, video, screen/app sharing) is enabled in the tenant. Set this to TRUE to enable and FALSE to disable.
[bool]$EnableQoS,
        # Determines if anonymous participants receive surveys to provide feedback about their meeting experience. Set to Disabled to disable anonymous meeting participants to receive surveys. Set to Enabled to allow anonymous meeting participants to receive surveys. Possible values: Enabled, Disabled
[ValidateSet('Disabled','Enabled')] [string]$FeedbackSurveyForAnonymousUsers,
        # When set to True, users within the Tenant will have their presenter role capabilities limited. When set to False, the presenter role capabilities will not be impacted and will remain as is.
[bool]$LimitPresenterRolePermissions,
        # Determines the starting port number for client audio. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50000.
[int]$ClientAudioPort,
        # Determines the total number of ports available for client audio. Default value is 20.
[int]$ClientAudioPortRange,
        # Determines the starting port number for client video. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50020.
[int]$ClientVideoPort,
        # Determines the total number of ports available for client video. Default value is 20.
[int]$ClientVideoPortRange,
        # Determines the starting port number for client screen sharing or application sharing. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50040.
[int]$ClientAppSharingPort,
        # Determines whether custom media port and range selections need to be enforced. When set to True, clients will use the specified port range for media traffic. When set to False (the default value) for any available port (from port 1024 through port 65535) will be used to accommodate media traffic.
[bool]$ClientMediaPortRangeEnabled,
        # Determines the total number of ports available for client sharing or application sharing. Default value is 20.
[int]$ClientAppSharingPortRange,
        # Credentials of the Teams Admin
[string]$Credential,
        # Id of the Azure Active Directory application to authenticate with.
[string]$ApplicationId,
        # Name of the Azure Active Directory tenant used for authentication. Format contoso.onmicrosoft.com
[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 'TeamsMeetingConfiguration' -Workload 'Teams' -Verb 'Get' -CallerParams $PSBoundParameters
}