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

.DESCRIPTION

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

[CmdletBinding()]
param(
        # The Name parameter specifies the unique name of the organization relationship. The maximum length is 64 characters.
[Parameter(Mandatory)] [string]$Name,
        # The ArchiveAccessEnabled parameter specifies whether the organization relationship has been configured to provide remote archive access.
[bool]$ArchiveAccessEnabled,
        # The DeliveryReportEnabled parameter specifies whether Delivery Reports should be shared over the organization relationship.
[bool]$DeliveryReportEnabled,
        # The Enabled parameter specifies whether to enable the organization relationship.
[bool]$Enabled,
        # The FreeBusyAccessEnabled parameter specifies whether the organization relationship should be used to retrieve free/busy information from the external organization.
[bool]$FreeBusyAccessEnabled,
        # The FreeBusyAccessLevel parameter specifies the maximum amount of detail returned to the requesting organization. Valid values are: None, AvailabilityOnly or LimitedDetails
[ValidateSet('None','AvailabilityOnly','LimitedDetails')] [string]$FreeBusyAccessLevel,
        # The FreeBusyAccessScope parameter specifies a mail-enabled security group in the internal organization that contains users whose free/busy information is accessible by an external organization. You can use any value that uniquely identifies the group.
[string]$FreeBusyAccessScope,
        # The MailboxMoveEnabled parameter specifies whether the organization relationship enables moving mailboxes to or from the external organization.
[bool]$MailboxMoveEnabled,
        # The MailboxMoveCapability parameter is used in cross-tenant mailbox migrations.
[ValidateSet('Inbound','Outbound','RemoteInbound','RemoteOutbound','None')] [string]$MailboxMoveCapability,
        # The MailTipsAccessEnabled parameter specifies whether MailTips for users in this organization are returned over this organization relationship.
[bool]$MailTipsAccessEnabled,
        # The MailTipsAccessLevel parameter specifies the level of MailTips data externally shared over this organization relationship. This parameter can have the following values: All, Limited, None
[ValidateSet('None','All','Limited')] [string]$MailTipsAccessLevel,
        # The MailTipsAccessScope parameter specifies a mail-enabled security group in the internal organization that contains users whose free/busy information is accessible by an external organization. You can use any value that uniquely identifies the group.
[string]$MailTipsAccessScope,
        # The OAuthApplicationId is used in cross-tenant mailbox migrations to specify the application ID of the mailbox migration app that you consented to.
[string]$OauthApplicationId,
        # The OrganizationContact parameter specifies the email address that can be used to contact the external organization (for example, administrator@fourthcoffee.com).
[string]$OrganizationContact,
        # The PhotosEnabled parameter specifies whether photos for users in the internal organization are returned over the organization relationship.
[bool]$PhotosEnabled,
        # The TargetApplicationUri parameter specifies the target Uniform Resource Identifier (URI) of the external organization. The TargetApplicationUri parameter is specified by Exchange when requesting a delegated token to retrieve free and busy information, for example, mail.contoso.com.
[string]$TargetApplicationUri,
        # The TargetAutodiscoverEpr parameter specifies the Autodiscover URL of Exchange Web Services for the external organization. Exchange uses Autodiscover to automatically detect the correct Exchangeserver endpoint to use for external requests.
[string]$TargetAutodiscoverEpr,
        # The TargetOwaURL parameter specifies the Outlook on the web (formerly Outlook Web App) URL of the external organization that's defined in the organization relationship. It is used for Outlook on the web redirection in a cross-premise Exchange scenario. Configuring this attribute enables users in the organization to use their current Outlook on the web URL to access Outlook on the web in the external organization.
[string]$TargetOwaURL,
        # The TargetSharingEpr parameter specifies the URL of the target Exchange Web Services for the external organization.
[string]$TargetSharingEpr,
        # Specify if the OrganizationRelationship should exist or not.
[ValidateSet('Present','Absent')] [string]$Ensure,
        # Credentials of the Exchange Global 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 'EXOOrganizationRelationship' -Workload 'Exchange' -Verb 'Get' -CallerParams $PSBoundParameters
}