From 28e0a9e654356c383e08fbb775cac64722cd5d69 Mon Sep 17 00:00:00 2001 From: v-uansari <143997438+v-uansari@users.noreply.github.com> Date: Wed, 10 Jan 2024 05:56:06 +0530 Subject: [PATCH] New-AzureADMSApplication GA1.0 and Beta (#273) * New-AzureADMSApplication GA1.0 * New-AzureADMSApplication Beta * New-AzureADMSApplication refactor: expand additional properties --- .../New-AzureADMSApplication.ps1 | 159 ++++++++++++++++++ .../New-AzureADMSApplication.ps1 | 148 ++++++++++++++++ 2 files changed, 307 insertions(+) create mode 100644 module/AzureAD/customizations/New-AzureADMSApplication.ps1 create mode 100644 module/AzureADPreview/customizations/New-AzureADMSApplication.ps1 diff --git a/module/AzureAD/customizations/New-AzureADMSApplication.ps1 b/module/AzureAD/customizations/New-AzureADMSApplication.ps1 new file mode 100644 index 000000000..8fec9ba4e --- /dev/null +++ b/module/AzureAD/customizations/New-AzureADMSApplication.ps1 @@ -0,0 +1,159 @@ +# ------------------------------------------------------------------------------ +# Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License in the project root for license information. +# ------------------------------------------------------------------------------ +@{ + SourceName = "New-AzureADMSApplication" + TargetName = "New-MgApplication" + Parameters = @( + @{ + SourceName = "AddIns" + TargetName = "AddIns" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "Api" + TargetName = "Api" + ConversionType = "ScriptBlock" + SpecialMapping = @' + + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + } + @{ + SourceName = "AppRoles" + TargetName = "AppRoles" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $a = @() + $input = $TmpValue + foreach($v in $input) + { + $Temp = $v | ConvertTo-Json + $hash = @{} + + (ConvertFrom-Json $Temp).psobject.properties | Foreach { if($null -ne $_.Value){ $hash[$_.Name] = $_.Value }} + $a += $hash + } + + $Value = $a +'@ + }, + @{ + SourceName = "InformationalUrl" + TargetName = "Info" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "KeyCredentials" + TargetName = "KeyCredentials" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $a = @() + $input = $TmpValue + foreach($v in $input) + { + $hash = @{ + CustomKeyIdentifier= $v.CustomKeyIdentifier + EndDateTime = $v.EndDateTime + Key= $v.Key + StartDateTime= $v.StartDateTime + Type= $v.Type + Usage= $v.Usage + } + + $a += $hash + } + + $Value = $a +'@ + }, + @{ + SourceName = "OptionalClaims" + TargetName = "OptionalClaims" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "ParentalControlSettings" + TargetName = "ParentalControlSettings" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "PasswordCredentials" + TargetName = "PasswordCredentials" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $a = @() + $input = $TmpValue + foreach($v in $input) + { + $Temp = $v | ConvertTo-Json + $hash = @{} + + (ConvertFrom-Json $Temp).psobject.properties | Foreach { if($null -ne $_.Value){ $hash[$_.Name] = $_.Value }} + $a += $hash + } + + $Value = $a +'@ + }, + @{ + SourceName = "PublicClient" + TargetName = "PublicClient" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "RequiredResourceAccess" + TargetName = "RequiredResourceAccess" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Value = $TmpValue | ConvertTo-Json +'@ + }, + @{ + SourceName = "Web" + TargetName = "Web" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + } + ) + outputs = @( + @{ + SourceName = "AdditionalProperties" + TargetName = "AdditionalProperties" + ConversionType = "FlatObject" + SpecialMapping = $null + } + ) + CustomScript = $null +} \ No newline at end of file diff --git a/module/AzureADPreview/customizations/New-AzureADMSApplication.ps1 b/module/AzureADPreview/customizations/New-AzureADMSApplication.ps1 new file mode 100644 index 000000000..82c71c2e2 --- /dev/null +++ b/module/AzureADPreview/customizations/New-AzureADMSApplication.ps1 @@ -0,0 +1,148 @@ +# ------------------------------------------------------------------------------ +# Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License in the project root for license information. +# ------------------------------------------------------------------------------ +@{ + SourceName = "New-AzureADMSApplication" + TargetName = "New-MgBetaApplication" + Parameters = @( + @{ + SourceName = "Api" + TargetName = "Api" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + } + @{ + SourceName = "AppRoles" + TargetName = "AppRoles" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $a = @() + $input = $TmpValue + foreach($v in $input) + { + $Temp = $v | ConvertTo-Json + $hash = @{} + + (ConvertFrom-Json $Temp).psobject.properties | Foreach { if($null -ne $_.Value){ $hash[$_.Name] = $_.Value }} + $a += $hash + } + + $Value = $a +'@ + }, + @{ + SourceName = "InformationalUrl" + TargetName = "Info" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "KeyCredentials" + TargetName = "KeyCredentials" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $a = @() + $input = $TmpValue + foreach($v in $input) + { + $hash = @{ + CustomKeyIdentifier= $v.CustomKeyIdentifier + EndDateTime = $v.EndDateTime + Key= $v.Key + StartDateTime= $v.StartDateTime + Type= $v.Type + Usage= $v.Usage + } + + $a += $hash + } + + $Value = $a +'@ + }, + @{ + SourceName = "OptionalClaims" + TargetName = "OptionalClaims" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "ParentalControlSettings" + TargetName = "ParentalControlSettings" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "PasswordCredentials" + TargetName = "PasswordCredentials" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $a = @() + $input = $TmpValue + foreach($v in $input) + { + $Temp = $v | ConvertTo-Json + $hash = @{} + + (ConvertFrom-Json $Temp).psobject.properties | Foreach { if($null -ne $_.Value){ $hash[$_.Name] = $_.Value }} + $a += $hash + } + + $Value = $a +'@ + }, + @{ + SourceName = "PublicClient" + TargetName = "PublicClient" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + }, + @{ + SourceName = "RequiredResourceAccess" + TargetName = "RequiredResourceAccess" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Value = $TmpValue | ConvertTo-Json +'@ + }, + @{ + SourceName = "Web" + TargetName = "Web" + ConversionType = "ScriptBlock" + SpecialMapping = @' + $Temp = $TmpValue | ConvertTo-Json + + $Value = $Temp +'@ + } + ) + outputs = @( + @{ + SourceName = "AdditionalProperties" + TargetName = "AdditionalProperties" + ConversionType = "FlatObject" + SpecialMapping = $null + } + ) + CustomScript = $null +} \ No newline at end of file