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

.DESCRIPTION

    Search-replace safe: callers that today invoke
        Get-M365DSCPPPowerAppsEnvironment -Credential $cred -TenantId $tid
    can rename to
        Get-KriticalUtcmPPPowerAppsEnvironment -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: PowerPlatform
    Param count: 16
#>

[CmdletBinding()]
param(
        # Display name for the PowerApps environment
[Parameter(Mandatory)] [string]$DisplayName,
        # Location of the PowerApps environment.
[Parameter(Mandatory)] [ValidateSet('canada','unitedstates','europe','asia','australia','india','japan','unitedkingdom','unitedstatesfirstrelease','southamerica','france','usgov','unitedarabemirates','germany','switzerland','norway','korea','southafrica')] [string]$Location,
        # Type of environment.
[string]$EnvironmentType,
        # SKU associated with the environment.
[Parameter(Mandatory)] [ValidateSet('Production','Standard','Trial','Sandbox','SubscriptionBasedTrial','Teams','Developer','Basic','Default')] [string]$EnvironmentSKU,
        # The switch to provision a Dataverse database when creating the environment. If set, LanguageName and CurrencyName are mandatory to pass as arguments.
[bool]$ProvisionDatabase,
        # The default languages for the database, use Get-AdminPowerAppCdsDatabaseLanguages to get the support values.
[ValidateSet('1033','1025','1069','1026','1027','3076','2052','1028','1050','1029','1030','1043','1061','1035','1036','1110','1031','1032','1037','1081','1038','1040','1041','1087','1042','1062','1063','1044','1045','1046','2070','1048','1049','2074','1051','1060','3082','1053','1054','1055','1058','1066','3098','1086','1057')] [string]$LanguageName,
        # The default currency for the database, use Get-AdminPowerAppCdsDatabaseCurrencies to get the supported values.
[ValidateSet('KZT','ZAR','ETB','AED','BHD','DZD','EGP','IQD','JOD','KWD','LBP','LYD','MAD','OMR','QAR','SAR','SYP','TND','YER','CLP','INR','AZN','RUB','BYN','BGN','NGN','BDT','CNY','EUR','BAM','USD','CZK','GBP','DKK','CHF','MVR','BTN','XCD','AUD','BZD','CAD','HKD','IDR','JMD','MYR','NZD','PHP','SGD','TTD','XDR','ARS','BOB','COP','CRC','CUP','DOP','GTQ','HNL','MXN','NIO','PAB','PEN','PYG','UYU','VES','IRR','XOF','CDF','XAF','HTG','ILS','HUF','AMD','ISK','JPY','GEL','KHR','KRW','KGS','LAK','MKD','MNT','BND','MMK','NOK','NPR','PKR','PLN','AFN','BRL','MDL','RON','RWF','SEK','LKR','SOS','ALL','RSD','KES','TJS','THB','ERN','TMT','BWP','TRY','UAH','UZS','VND','MOP','TWD')] [string]$CurrencyName,
        # Only accepted value is 'Present'.
[ValidateSet('Present','Absent')] [string]$Ensure,
        # Credentials of the Power Platform 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,
        # Secret of the Azure Active Directory tenant used for authentication.
[string]$ApplicationSecret,
        # 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 'PPPowerAppsEnvironment' -Workload 'PowerPlatform' -Verb 'Get' -CallerParams $PSBoundParameters
}