Public/Graph/Update-KritTcmMgServicePrincipal.ps1

<#
.SYNOPSIS
    Krit.TCM wrapper over Microsoft365DSC helper Update-MgServicePrincipal
    (category: Graph, module: M365DSCGraphShim).

.DESCRIPTION
    Auto-scaffolded wave .1514 by New-KritTcmFromM365DscHelpers.ps1.
    Thin delegating passthrough — logic stays in Microsoft365DSC upstream;
    Krit.TCM provides the friendly namespace + citation registration
    for HARD RULE 20 discipline.

    Install-Module Microsoft365DSC -Scope CurrentUser BEFORE calling.

.NOTES
    Wave .1514. Underlying cmdlet: Update-MgServicePrincipal
    Category: Graph
    Module: M365DSCGraphShim
    Params: 68
#>

function Update-KritTcmMgServicePrincipal {
    [CmdletBinding()]
    param(
        [String] $ServicePrincipalId,
        [Object] $InputObject,
        [Object] $BodyParameter,
        [String] $ResponseHeadersVariable,
        [SwitchParameter] $AccountEnabled,
        [Object] $AddIns,
        [Hashtable] $AdditionalProperties,
        [String[]] $AlternativeNames,
        [String] $AppDescription,
        [String] $AppDisplayName,
        [String] $AppId,
        [Object] $AppManagementPolicies,
        [String] $AppOwnerOrganizationId,
        [Object] $AppRoleAssignedTo,
        [SwitchParameter] $AppRoleAssignmentRequired,
        [Object] $AppRoleAssignments,
        [Object] $AppRoles,
        [String] $ApplicationTemplateId,
        [Object] $ClaimsMappingPolicies,
        [String] $CreatedByAppId,
        [Object] $CreatedObjects,
        [Hashtable] $CustomSecurityAttributes,
        [Object] $DelegatedPermissionClassifications,
        [DateTime] $DeletedDateTime,
        [String] $Description,
        [String] $DisabledByMicrosoftStatus,
        [String] $DisplayName,
        [Object] $Endpoints,
        [Object] $FederatedIdentityCredentials,
        [Object] $HomeRealmDiscoveryPolicies,
        [String] $Homepage,
        [String] $Id,
        [Object] $Info,
        [SwitchParameter] $IsDisabled,
        [Object] $KeyCredentials,
        [String] $LoginUrl,
        [String] $LogoutUrl,
        [Object] $MemberOf,
        [String] $Notes,
        [String[]] $NotificationEmailAddresses,
        [Object] $Oauth2PermissionGrants,
        [Object] $Oauth2PermissionScopes,
        [Object] $OwnedObjects,
        [Object] $Owners,
        [Object] $PasswordCredentials,
        [String] $PreferredSingleSignOnMode,
        [String] $PreferredTokenSigningKeyThumbprint,
        [Object] $RemoteDesktopSecurityConfiguration,
        [String[]] $ReplyUrls,
        [Object] $ResourceSpecificApplicationPermissions,
        [Object] $SamlSingleSignOnSettings,
        [String[]] $ServicePrincipalNames,
        [String] $ServicePrincipalType,
        [String] $SignInAudience,
        [Object] $Synchronization,
        [String[]] $Tags,
        [String] $TokenEncryptionKeyId,
        [Object] $TokenIssuancePolicies,
        [Object] $TokenLifetimePolicies,
        [Object] $TransitiveMemberOf,
        [Object] $VerifiedPublisher,
        [SwitchParameter] $Break,
        [IDictionary] $Headers,
        [Object[]] $HttpPipelineAppend,
        [Object[]] $HttpPipelinePrepend,
        [Uri] $Proxy,
        [PSCredential] $ProxyCredential,
        [SwitchParameter] $ProxyUseDefaultCredentials
    )

    if (-not (Get-Command -Name 'Update-MgServicePrincipal' -ErrorAction SilentlyContinue)) {
        throw '[KritTcm] Update-MgServicePrincipal not available — Install-Module Microsoft365DSC -Scope CurrentUser then re-run'
    }
    try {
        & 'Update-MgServicePrincipal' @PSBoundParameters
    } catch {
        Write-Error ('[KritTcm/Update-KritTcmMgServicePrincipal] ' + 'Update-MgServicePrincipal' + ' failed: ' + $_.Exception.Message)
        throw
    }
}