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

.DESCRIPTION

    Search-replace safe: callers that today invoke
        Get-M365DSCTeamsFederationConfiguration -Credential $cred -TenantId $tid
    can rename to
        Get-KriticalUtcmTeamsFederationConfiguration -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: 17
#>

[CmdletBinding()]
param(
        # Only valid value is 'Yes'.
[Parameter(Mandatory)] [ValidateSet('Yes')] [string]$IsSingleInstance,
        # When set to True users will be potentially allowed to communicate with users from other domains.
[bool]$AllowFederatedUsers,
        # If the BlockedDomains parameter is used, then BlockAllSubdomains can be used to activate all subdomains blocking. If the BlockedDomains parameter is ignored, then BlockAllSubdomains is also ignored. Just like for BlockedDomains, users will be disallowed from communicating with users from blocked domains. But all subdomains for domains in this list will also be blocked.
[bool]$BlockAllSubdomains,
        # Allows federation with people using Teams with an account that's not managed by an organization.
[bool]$AllowTeamsConsumer,
        # Allows people using Teams with an account that's not managed by an organization, to discover and start communication with users in your organization.
[bool]$AllowTeamsConsumerInbound,
        # When set to 'Enabled', security operations team will be able to add domains to the blocklist on security portal. When set to 'Disabled', security operations team will not have permissions to update the domains blocklist.
[ValidateSet('Disabled','Enabled')] [string]$DomainBlockingForMDOAdminsInTeams,
        # When set to Blocked, all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to Blocked, users from the trial-only tenant will also be removed from existing chats.
[ValidateSet('Allowed','Blocked')] [string]$ExternalAccessWithTrialTenants,
        # When set to True, messages sent from discovered partners are considered unverified. That means that those messages will be delivered only if they were sent from a person who is on the recipient's Contacts list.
[bool]$TreatDiscoveredPartnersAsUnverified,
        # When set to True, indicates that the users homed on Skype for Business Online use the same SIP domain as users homed on the on-premises version of Skype for Business Server.
[bool]$SharedSipAddressSpace,
        # When set to True, Teamsconsumer have access only to external user profiles
[bool]$RestrictTeamsConsumerToExternalUserProfiles,
        # 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 'TeamsFederationConfiguration' -Workload 'Teams' -Verb 'Get' -CallerParams $PSBoundParameters
}