Model/TeamsPolicyModel.ps1

#
# Fly SDK API
# No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
# Version: 1.0
# Contact: support@avepoint.com
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER BackupObjects
No description available.
.PARAMETER EnableMigrateGuestUsers
No description available.
.PARAMETER EnableMigrateExternalUsers
No description available.
.PARAMETER IsPostMessage
No description available.
.PARAMETER IsCovertToHtml
No description available.
.PARAMETER ConversationTimeEarlierThan
No description available.
.PARAMETER ConversationTimeLaterThan
No description available.
.PARAMETER MessageTimeZoneId
No description available.
.PARAMETER IsBackupMeetingRecords
No description available.
.PARAMETER IsBackupOnlyTeamsAssociatedContent
No description available.
.PARAMETER IsBackupFilePermissions
No description available.
.PARAMETER IsBackupDirectSitePermissions
No description available.
.PARAMETER IsBackupWholeStructureAndData
No description available.
.PARAMETER IsBackupMailbox
No description available.
.PARAMETER AdvancedExchangePolicyId
No description available.
.PARAMETER AdvancedSharePointPolicyId
No description available.
.PARAMETER FolderConflictResolution
* `Skip` = 0 * `Overwrite` = 1 * `Merge` = 2 * `OverwriteByLastModifiedTime` = 3 * `Append` = 4
.PARAMETER FileConflictResolution
* `Skip` = 0 * `Overwrite` = 1 * `Merge` = 2 * `OverwriteByLastModifiedTime` = 3 * `Append` = 4
.PARAMETER ItemConflictResolution
* `Skip` = 0 * `Overwrite` = 1 * `Merge` = 2 * `OverwriteByLastModifiedTime` = 3 * `Append` = 4
.PARAMETER IsReplaceEmailAddress
No description available.
.PARAMETER IsReplaceMeetingLink
No description available.
.PARAMETER IsSyncTeamGroupPrivacyChanges
No description available.
.PARAMETER IsRemoveSourceFromFiles
No description available.
.PARAMETER EmailSensitivityLabel
* `KeepExisting` = 0 * `DoNotCopy` = 1 * `ApplySame` = 2 * `ConfigureCustom` = 3
.PARAMETER TeamsSensitivityLabel
* `KeepExisting` = 0 * `DoNotCopy` = 1 * `ApplySame` = 2 * `ConfigureCustom` = 3
.PARAMETER IsDisableAutoComplete
No description available.
.PARAMETER UserMappingProfileId
No description available.
.PARAMETER EmailLabelMappingProfileId
No description available.
.PARAMETER TeamsLabelMappingProfileId
No description available.
.PARAMETER UserMappingRules
No description available.
.PARAMETER UrlMappingProfileId
No description available.
.PARAMETER MigrationModuleType
* `Exchange` = 0 * `Teams` = 1 * `SharePoint` = 2 * `OneDrive` = 3 * `M365Group` = 4 * `TeamChat` = 5 * `HostedExchange` = 6 * `PowerPlatform` = 7 * `Gmail` = 8 * `GoogleDrive` = 9 * `ActiveDirectory` = 10 * `Entra` = 11 * `DeviceToActiveDirectory` = 14 * `SPOToGDrive` = 21 * `ODriveToGDrive` = 22 * `GDriveToGDrive` = 23 * `ExchangeToGmail` = 24 * `TeamsToGoogleChat` = 25 * `TeamChatToGoogleDM` = 26 * `M365GroupToGoogleGroup` = 27 * `TeamChatToGoogleChat` = 28
.PARAMETER IsDefault
No description available.
.PARAMETER Notification
No description available.
.PARAMETER CustomizeFeatures
No description available.
.PARAMETER Name
The name of the object
.PARAMETER Description
The description of the object
.PARAMETER CreateTime
The creation time of the object
.PARAMETER CreateBy
The user who create this object
.PARAMETER LastModifyTime
The last modified time of the object
.PARAMETER LastModifyBy
The user who last modified the object
.PARAMETER Id
The GUID of the object
.OUTPUTS
 
TeamsPolicyModel<PSCustomObject>
#>


function Initialize-FlyTeamsPolicyModel {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${BackupObjects},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${EnableMigrateGuestUsers},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${EnableMigrateExternalUsers},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsPostMessage},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsCovertToHtml},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${ConversationTimeEarlierThan},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${ConversationTimeLaterThan},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${MessageTimeZoneId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupMeetingRecords},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupOnlyTeamsAssociatedContent},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupFilePermissions},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupDirectSitePermissions},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupWholeStructureAndData},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupMailbox},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AdvancedExchangePolicyId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${AdvancedSharePointPolicyId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${FolderConflictResolution},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${FileConflictResolution},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ItemConflictResolution},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsReplaceEmailAddress},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsReplaceMeetingLink},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsSyncTeamGroupPrivacyChanges},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsRemoveSourceFromFiles},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${EmailSensitivityLabel},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${TeamsSensitivityLabel},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsDisableAutoComplete},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${UserMappingProfileId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${EmailLabelMappingProfileId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${TeamsLabelMappingProfileId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${UserMappingRules},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${UrlMappingProfileId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${MigrationModuleType},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsDefault},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Notification},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${CustomizeFeatures},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Name},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Description},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${CreateTime},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${CreateBy},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${LastModifyTime},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${LastModifyBy},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Id}
    )

    Process {
        'Creating PSCustomObject: Fly.Client => FlyTeamsPolicyModel' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "backupObjects" = ${BackupObjects}
            "enableMigrateGuestUsers" = ${EnableMigrateGuestUsers}
            "enableMigrateExternalUsers" = ${EnableMigrateExternalUsers}
            "isPostMessage" = ${IsPostMessage}
            "isCovertToHtml" = ${IsCovertToHtml}
            "conversationTimeEarlierThan" = ${ConversationTimeEarlierThan}
            "conversationTimeLaterThan" = ${ConversationTimeLaterThan}
            "messageTimeZoneId" = ${MessageTimeZoneId}
            "isBackupMeetingRecords" = ${IsBackupMeetingRecords}
            "isBackupOnlyTeamsAssociatedContent" = ${IsBackupOnlyTeamsAssociatedContent}
            "isBackupFilePermissions" = ${IsBackupFilePermissions}
            "isBackupDirectSitePermissions" = ${IsBackupDirectSitePermissions}
            "isBackupWholeStructureAndData" = ${IsBackupWholeStructureAndData}
            "isBackupMailbox" = ${IsBackupMailbox}
            "advancedExchangePolicyId" = ${AdvancedExchangePolicyId}
            "advancedSharePointPolicyId" = ${AdvancedSharePointPolicyId}
            "folderConflictResolution" = ${FolderConflictResolution}
            "fileConflictResolution" = ${FileConflictResolution}
            "itemConflictResolution" = ${ItemConflictResolution}
            "isReplaceEmailAddress" = ${IsReplaceEmailAddress}
            "isReplaceMeetingLink" = ${IsReplaceMeetingLink}
            "isSyncTeamGroupPrivacyChanges" = ${IsSyncTeamGroupPrivacyChanges}
            "isRemoveSourceFromFiles" = ${IsRemoveSourceFromFiles}
            "emailSensitivityLabel" = ${EmailSensitivityLabel}
            "teamsSensitivityLabel" = ${TeamsSensitivityLabel}
            "isDisableAutoComplete" = ${IsDisableAutoComplete}
            "userMappingProfileId" = ${UserMappingProfileId}
            "emailLabelMappingProfileId" = ${EmailLabelMappingProfileId}
            "teamsLabelMappingProfileId" = ${TeamsLabelMappingProfileId}
            "userMappingRules" = ${UserMappingRules}
            "urlMappingProfileId" = ${UrlMappingProfileId}
            "migrationModuleType" = ${MigrationModuleType}
            "isDefault" = ${IsDefault}
            "notification" = ${Notification}
            "customizeFeatures" = ${CustomizeFeatures}
            "name" = ${Name}
            "description" = ${Description}
            "createTime" = ${CreateTime}
            "createBy" = ${CreateBy}
            "lastModifyTime" = ${LastModifyTime}
            "lastModifyBy" = ${LastModifyBy}
            "id" = ${Id}
        }

        return $PSO
    }
}

<#
.SYNOPSIS
 
Convert from JSON to TeamsPolicyModel<PSCustomObject>
 
.DESCRIPTION
 
Convert from JSON to TeamsPolicyModel<PSCustomObject>
 
.PARAMETER Json
 
Json object
 
.OUTPUTS
 
TeamsPolicyModel<PSCustomObject>
#>

function ConvertFrom-FlyJsonToTeamsPolicyModel {
    Param(
        [AllowEmptyString()]
        [string]$Json
    )

    Process {
        'Converting JSON to PSCustomObject: Fly.Client => FlyTeamsPolicyModel' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in FlyTeamsPolicyModel
        $AllProperties = ("backupObjects", "enableMigrateGuestUsers", "enableMigrateExternalUsers", "isPostMessage", "isCovertToHtml", "conversationTimeEarlierThan", "conversationTimeLaterThan", "messageTimeZoneId", "isBackupMeetingRecords", "isBackupOnlyTeamsAssociatedContent", "isBackupFilePermissions", "isBackupDirectSitePermissions", "isBackupWholeStructureAndData", "isBackupMailbox", "advancedExchangePolicyId", "advancedSharePointPolicyId", "folderConflictResolution", "fileConflictResolution", "itemConflictResolution", "isReplaceEmailAddress", "isReplaceMeetingLink", "isSyncTeamGroupPrivacyChanges", "isRemoveSourceFromFiles", "emailSensitivityLabel", "teamsSensitivityLabel", "isDisableAutoComplete", "userMappingProfileId", "emailLabelMappingProfileId", "teamsLabelMappingProfileId", "userMappingRules", "urlMappingProfileId", "migrationModuleType", "isDefault", "notification", "customizeFeatures", "name", "description", "createTime", "createBy", "lastModifyTime", "lastModifyBy", "id")
        foreach ($name in $JsonParameters.PsObject.Properties.Name) {
            if (!($AllProperties.Contains($name))) {
                throw "Error! JSON key '$name' not found in the properties: $($AllProperties)"
            }
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "backupObjects"))) { #optional property not found
            $BackupObjects = $null
        } else {
            $BackupObjects = $JsonParameters.PSobject.Properties["backupObjects"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "enableMigrateGuestUsers"))) { #optional property not found
            $EnableMigrateGuestUsers = $null
        } else {
            $EnableMigrateGuestUsers = $JsonParameters.PSobject.Properties["enableMigrateGuestUsers"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "enableMigrateExternalUsers"))) { #optional property not found
            $EnableMigrateExternalUsers = $null
        } else {
            $EnableMigrateExternalUsers = $JsonParameters.PSobject.Properties["enableMigrateExternalUsers"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isPostMessage"))) { #optional property not found
            $IsPostMessage = $null
        } else {
            $IsPostMessage = $JsonParameters.PSobject.Properties["isPostMessage"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isCovertToHtml"))) { #optional property not found
            $IsCovertToHtml = $null
        } else {
            $IsCovertToHtml = $JsonParameters.PSobject.Properties["isCovertToHtml"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "conversationTimeEarlierThan"))) { #optional property not found
            $ConversationTimeEarlierThan = $null
        } else {
            $ConversationTimeEarlierThan = $JsonParameters.PSobject.Properties["conversationTimeEarlierThan"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "conversationTimeLaterThan"))) { #optional property not found
            $ConversationTimeLaterThan = $null
        } else {
            $ConversationTimeLaterThan = $JsonParameters.PSobject.Properties["conversationTimeLaterThan"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "messageTimeZoneId"))) { #optional property not found
            $MessageTimeZoneId = $null
        } else {
            $MessageTimeZoneId = $JsonParameters.PSobject.Properties["messageTimeZoneId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isBackupMeetingRecords"))) { #optional property not found
            $IsBackupMeetingRecords = $null
        } else {
            $IsBackupMeetingRecords = $JsonParameters.PSobject.Properties["isBackupMeetingRecords"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isBackupOnlyTeamsAssociatedContent"))) { #optional property not found
            $IsBackupOnlyTeamsAssociatedContent = $null
        } else {
            $IsBackupOnlyTeamsAssociatedContent = $JsonParameters.PSobject.Properties["isBackupOnlyTeamsAssociatedContent"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isBackupFilePermissions"))) { #optional property not found
            $IsBackupFilePermissions = $null
        } else {
            $IsBackupFilePermissions = $JsonParameters.PSobject.Properties["isBackupFilePermissions"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isBackupDirectSitePermissions"))) { #optional property not found
            $IsBackupDirectSitePermissions = $null
        } else {
            $IsBackupDirectSitePermissions = $JsonParameters.PSobject.Properties["isBackupDirectSitePermissions"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isBackupWholeStructureAndData"))) { #optional property not found
            $IsBackupWholeStructureAndData = $null
        } else {
            $IsBackupWholeStructureAndData = $JsonParameters.PSobject.Properties["isBackupWholeStructureAndData"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isBackupMailbox"))) { #optional property not found
            $IsBackupMailbox = $null
        } else {
            $IsBackupMailbox = $JsonParameters.PSobject.Properties["isBackupMailbox"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "advancedExchangePolicyId"))) { #optional property not found
            $AdvancedExchangePolicyId = $null
        } else {
            $AdvancedExchangePolicyId = $JsonParameters.PSobject.Properties["advancedExchangePolicyId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "advancedSharePointPolicyId"))) { #optional property not found
            $AdvancedSharePointPolicyId = $null
        } else {
            $AdvancedSharePointPolicyId = $JsonParameters.PSobject.Properties["advancedSharePointPolicyId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "folderConflictResolution"))) { #optional property not found
            $FolderConflictResolution = $null
        } else {
            $FolderConflictResolution = $JsonParameters.PSobject.Properties["folderConflictResolution"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "fileConflictResolution"))) { #optional property not found
            $FileConflictResolution = $null
        } else {
            $FileConflictResolution = $JsonParameters.PSobject.Properties["fileConflictResolution"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "itemConflictResolution"))) { #optional property not found
            $ItemConflictResolution = $null
        } else {
            $ItemConflictResolution = $JsonParameters.PSobject.Properties["itemConflictResolution"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isReplaceEmailAddress"))) { #optional property not found
            $IsReplaceEmailAddress = $null
        } else {
            $IsReplaceEmailAddress = $JsonParameters.PSobject.Properties["isReplaceEmailAddress"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isReplaceMeetingLink"))) { #optional property not found
            $IsReplaceMeetingLink = $null
        } else {
            $IsReplaceMeetingLink = $JsonParameters.PSobject.Properties["isReplaceMeetingLink"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isSyncTeamGroupPrivacyChanges"))) { #optional property not found
            $IsSyncTeamGroupPrivacyChanges = $null
        } else {
            $IsSyncTeamGroupPrivacyChanges = $JsonParameters.PSobject.Properties["isSyncTeamGroupPrivacyChanges"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isRemoveSourceFromFiles"))) { #optional property not found
            $IsRemoveSourceFromFiles = $null
        } else {
            $IsRemoveSourceFromFiles = $JsonParameters.PSobject.Properties["isRemoveSourceFromFiles"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "emailSensitivityLabel"))) { #optional property not found
            $EmailSensitivityLabel = $null
        } else {
            $EmailSensitivityLabel = $JsonParameters.PSobject.Properties["emailSensitivityLabel"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "teamsSensitivityLabel"))) { #optional property not found
            $TeamsSensitivityLabel = $null
        } else {
            $TeamsSensitivityLabel = $JsonParameters.PSobject.Properties["teamsSensitivityLabel"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isDisableAutoComplete"))) { #optional property not found
            $IsDisableAutoComplete = $null
        } else {
            $IsDisableAutoComplete = $JsonParameters.PSobject.Properties["isDisableAutoComplete"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "userMappingProfileId"))) { #optional property not found
            $UserMappingProfileId = $null
        } else {
            $UserMappingProfileId = $JsonParameters.PSobject.Properties["userMappingProfileId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "emailLabelMappingProfileId"))) { #optional property not found
            $EmailLabelMappingProfileId = $null
        } else {
            $EmailLabelMappingProfileId = $JsonParameters.PSobject.Properties["emailLabelMappingProfileId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "teamsLabelMappingProfileId"))) { #optional property not found
            $TeamsLabelMappingProfileId = $null
        } else {
            $TeamsLabelMappingProfileId = $JsonParameters.PSobject.Properties["teamsLabelMappingProfileId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "userMappingRules"))) { #optional property not found
            $UserMappingRules = $null
        } else {
            $UserMappingRules = $JsonParameters.PSobject.Properties["userMappingRules"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "urlMappingProfileId"))) { #optional property not found
            $UrlMappingProfileId = $null
        } else {
            $UrlMappingProfileId = $JsonParameters.PSobject.Properties["urlMappingProfileId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "migrationModuleType"))) { #optional property not found
            $MigrationModuleType = $null
        } else {
            $MigrationModuleType = $JsonParameters.PSobject.Properties["migrationModuleType"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isDefault"))) { #optional property not found
            $IsDefault = $null
        } else {
            $IsDefault = $JsonParameters.PSobject.Properties["isDefault"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "notification"))) { #optional property not found
            $Notification = $null
        } else {
            $Notification = $JsonParameters.PSobject.Properties["notification"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "customizeFeatures"))) { #optional property not found
            $CustomizeFeatures = $null
        } else {
            $CustomizeFeatures = $JsonParameters.PSobject.Properties["customizeFeatures"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "name"))) { #optional property not found
            $Name = $null
        } else {
            $Name = $JsonParameters.PSobject.Properties["name"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "description"))) { #optional property not found
            $Description = $null
        } else {
            $Description = $JsonParameters.PSobject.Properties["description"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "createTime"))) { #optional property not found
            $CreateTime = $null
        } else {
            $CreateTime = $JsonParameters.PSobject.Properties["createTime"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "createBy"))) { #optional property not found
            $CreateBy = $null
        } else {
            $CreateBy = $JsonParameters.PSobject.Properties["createBy"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "lastModifyTime"))) { #optional property not found
            $LastModifyTime = $null
        } else {
            $LastModifyTime = $JsonParameters.PSobject.Properties["lastModifyTime"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "lastModifyBy"))) { #optional property not found
            $LastModifyBy = $null
        } else {
            $LastModifyBy = $JsonParameters.PSobject.Properties["lastModifyBy"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "id"))) { #optional property not found
            $Id = $null
        } else {
            $Id = $JsonParameters.PSobject.Properties["id"].value
        }

        $PSO = [PSCustomObject]@{
            "backupObjects" = ${BackupObjects}
            "enableMigrateGuestUsers" = ${EnableMigrateGuestUsers}
            "enableMigrateExternalUsers" = ${EnableMigrateExternalUsers}
            "isPostMessage" = ${IsPostMessage}
            "isCovertToHtml" = ${IsCovertToHtml}
            "conversationTimeEarlierThan" = ${ConversationTimeEarlierThan}
            "conversationTimeLaterThan" = ${ConversationTimeLaterThan}
            "messageTimeZoneId" = ${MessageTimeZoneId}
            "isBackupMeetingRecords" = ${IsBackupMeetingRecords}
            "isBackupOnlyTeamsAssociatedContent" = ${IsBackupOnlyTeamsAssociatedContent}
            "isBackupFilePermissions" = ${IsBackupFilePermissions}
            "isBackupDirectSitePermissions" = ${IsBackupDirectSitePermissions}
            "isBackupWholeStructureAndData" = ${IsBackupWholeStructureAndData}
            "isBackupMailbox" = ${IsBackupMailbox}
            "advancedExchangePolicyId" = ${AdvancedExchangePolicyId}
            "advancedSharePointPolicyId" = ${AdvancedSharePointPolicyId}
            "folderConflictResolution" = ${FolderConflictResolution}
            "fileConflictResolution" = ${FileConflictResolution}
            "itemConflictResolution" = ${ItemConflictResolution}
            "isReplaceEmailAddress" = ${IsReplaceEmailAddress}
            "isReplaceMeetingLink" = ${IsReplaceMeetingLink}
            "isSyncTeamGroupPrivacyChanges" = ${IsSyncTeamGroupPrivacyChanges}
            "isRemoveSourceFromFiles" = ${IsRemoveSourceFromFiles}
            "emailSensitivityLabel" = ${EmailSensitivityLabel}
            "teamsSensitivityLabel" = ${TeamsSensitivityLabel}
            "isDisableAutoComplete" = ${IsDisableAutoComplete}
            "userMappingProfileId" = ${UserMappingProfileId}
            "emailLabelMappingProfileId" = ${EmailLabelMappingProfileId}
            "teamsLabelMappingProfileId" = ${TeamsLabelMappingProfileId}
            "userMappingRules" = ${UserMappingRules}
            "urlMappingProfileId" = ${UrlMappingProfileId}
            "migrationModuleType" = ${MigrationModuleType}
            "isDefault" = ${IsDefault}
            "notification" = ${Notification}
            "customizeFeatures" = ${CustomizeFeatures}
            "name" = ${Name}
            "description" = ${Description}
            "createTime" = ${CreateTime}
            "createBy" = ${CreateBy}
            "lastModifyTime" = ${LastModifyTime}
            "lastModifyBy" = ${LastModifyBy}
            "id" = ${Id}
        }

        return $PSO
    }

}