Model/SharePointPolicyModel.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 IsBackupSubsites
No description available.
.PARAMETER IsBackupSiteCollectionAndSiteFeatures
No description available.
.PARAMETER IsBackupSiteAndListContentTypes
No description available.
.PARAMETER IsBackupSiteCollectionAndSiteSettings
No description available.
.PARAMETER IsBackupNavigation
No description available.
.PARAMETER IsBackupSiteAndListColumns
No description available.
.PARAMETER IsBackupManagedMetadataService
No description available.
.PARAMETER IsBackupApp
No description available.
.PARAMETER IsBackupListsAndLibraries
No description available.
.PARAMETER IsBackupSettings
No description available.
.PARAMETER IsBackupPublicViews
No description available.
.PARAMETER IsBackupPowerApp
No description available.
.PARAMETER IsBackupFoldersFilesItemsAndListAttachments
No description available.
.PARAMETER IsBackupWebPartsAndPages
No description available.
.PARAMETER IsBackupClassicWebPartsAndPages
No description available.
.PARAMETER IsBackupSite
No description available.
.PARAMETER IsBackupList
No description available.
.PARAMETER IsBackupContent
No description available.
.PARAMETER IsBackupSharedLinks
No description available.
.PARAMETER IsMapSPGroupToADGroup
No description available.
.PARAMETER EnableShared
No description available.
.PARAMETER IsBackupWorkflowDefinition
No description available.
.PARAMETER IsBackupUserAlerts
No description available.
.PARAMETER IsEnableFilterPolicy
No description available.
.PARAMETER FilterPolicyId
No description available.
.PARAMETER ContainerConflictResolution
* `Skip` = 0 * `Overwrite` = 1 * `Merge` = 2 * `OverwriteByLastModifiedTime` = 3 * `Append` = 4
.PARAMETER ContentConflictResolution
* `Skip` = 0 * `Overwrite` = 1 * `Merge` = 2 * `OverwriteByLastModifiedTime` = 3 * `Append` = 4
.PARAMETER EnableSyncDeletion
No description available.
.PARAMETER ManageLabelsOfFiles
* `KeepExisting` = 0 * `DoNotCopy` = 1 * `ApplySame` = 2 * `ConfigureCustom` = 3
.PARAMETER LabelMappingIdOfFile
No description available.
.PARAMETER ManageLabelsOfSites
* `KeepExisting` = 0 * `DoNotCopy` = 1 * `ApplySame` = 2 * `ConfigureCustom` = 3
.PARAMETER LabelMappingIdOfSite
No description available.
.PARAMETER IsRemoveSourceFromFiles
No description available.
.PARAMETER DefaultReplacementUser
No description available.
.PARAMETER UserMappingProfileId
No description available.
.PARAMETER UserMappingRules
No description available.
.PARAMETER UserMappingDefaultUser
No description available.
.PARAMETER ColumnMappingId
No description available.
.PARAMETER ContentTypeMappingId
No description available.
.PARAMETER TemplateMappingId
No description available.
.PARAMETER UrlMappingId
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
 
SharePointPolicyModel<PSCustomObject>
#>


function Initialize-FlySharePointPolicyModel {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupSubsites},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupSiteCollectionAndSiteFeatures},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupSiteAndListContentTypes},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupSiteCollectionAndSiteSettings},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupNavigation},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupSiteAndListColumns},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupManagedMetadataService},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupApp},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupListsAndLibraries},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupSettings},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupPublicViews},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupPowerApp},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupFoldersFilesItemsAndListAttachments},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupWebPartsAndPages},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupClassicWebPartsAndPages},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupSite},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupList},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupContent},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupSharedLinks},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsMapSPGroupToADGroup},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${EnableShared},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupWorkflowDefinition},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsBackupUserAlerts},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsEnableFilterPolicy},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${FilterPolicyId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ContainerConflictResolution},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ContentConflictResolution},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${EnableSyncDeletion},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ManageLabelsOfFiles},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${LabelMappingIdOfFile},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ManageLabelsOfSites},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${LabelMappingIdOfSite},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsRemoveSourceFromFiles},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${DefaultReplacementUser},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${UserMappingProfileId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${UserMappingRules},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${UserMappingDefaultUser},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ColumnMappingId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${ContentTypeMappingId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${TemplateMappingId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${UrlMappingId},
        [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 => FlySharePointPolicyModel' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "isBackupSubsites" = ${IsBackupSubsites}
            "isBackupSiteCollectionAndSiteFeatures" = ${IsBackupSiteCollectionAndSiteFeatures}
            "isBackupSiteAndListContentTypes" = ${IsBackupSiteAndListContentTypes}
            "isBackupSiteCollectionAndSiteSettings" = ${IsBackupSiteCollectionAndSiteSettings}
            "isBackupNavigation" = ${IsBackupNavigation}
            "isBackupSiteAndListColumns" = ${IsBackupSiteAndListColumns}
            "isBackupManagedMetadataService" = ${IsBackupManagedMetadataService}
            "isBackupApp" = ${IsBackupApp}
            "isBackupListsAndLibraries" = ${IsBackupListsAndLibraries}
            "isBackupSettings" = ${IsBackupSettings}
            "isBackupPublicViews" = ${IsBackupPublicViews}
            "isBackupPowerApp" = ${IsBackupPowerApp}
            "isBackupFoldersFilesItemsAndListAttachments" = ${IsBackupFoldersFilesItemsAndListAttachments}
            "isBackupWebPartsAndPages" = ${IsBackupWebPartsAndPages}
            "isBackupClassicWebPartsAndPages" = ${IsBackupClassicWebPartsAndPages}
            "isBackupSite" = ${IsBackupSite}
            "isBackupList" = ${IsBackupList}
            "isBackupContent" = ${IsBackupContent}
            "isBackupSharedLinks" = ${IsBackupSharedLinks}
            "isMapSPGroupToADGroup" = ${IsMapSPGroupToADGroup}
            "enableShared" = ${EnableShared}
            "isBackupWorkflowDefinition" = ${IsBackupWorkflowDefinition}
            "isBackupUserAlerts" = ${IsBackupUserAlerts}
            "isEnableFilterPolicy" = ${IsEnableFilterPolicy}
            "filterPolicyId" = ${FilterPolicyId}
            "containerConflictResolution" = ${ContainerConflictResolution}
            "contentConflictResolution" = ${ContentConflictResolution}
            "enableSyncDeletion" = ${EnableSyncDeletion}
            "manageLabelsOfFiles" = ${ManageLabelsOfFiles}
            "labelMappingIdOfFile" = ${LabelMappingIdOfFile}
            "manageLabelsOfSites" = ${ManageLabelsOfSites}
            "labelMappingIdOfSite" = ${LabelMappingIdOfSite}
            "isRemoveSourceFromFiles" = ${IsRemoveSourceFromFiles}
            "defaultReplacementUser" = ${DefaultReplacementUser}
            "userMappingProfileId" = ${UserMappingProfileId}
            "userMappingRules" = ${UserMappingRules}
            "userMappingDefaultUser" = ${UserMappingDefaultUser}
            "columnMappingId" = ${ColumnMappingId}
            "contentTypeMappingId" = ${ContentTypeMappingId}
            "templateMappingId" = ${TemplateMappingId}
            "urlMappingId" = ${UrlMappingId}
            "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 SharePointPolicyModel<PSCustomObject>
 
.DESCRIPTION
 
Convert from JSON to SharePointPolicyModel<PSCustomObject>
 
.PARAMETER Json
 
Json object
 
.OUTPUTS
 
SharePointPolicyModel<PSCustomObject>
#>

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

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

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in FlySharePointPolicyModel
        $AllProperties = ("isBackupSubsites", "isBackupSiteCollectionAndSiteFeatures", "isBackupSiteAndListContentTypes", "isBackupSiteCollectionAndSiteSettings", "isBackupNavigation", "isBackupSiteAndListColumns", "isBackupManagedMetadataService", "isBackupApp", "isBackupListsAndLibraries", "isBackupSettings", "isBackupPublicViews", "isBackupPowerApp", "isBackupFoldersFilesItemsAndListAttachments", "isBackupWebPartsAndPages", "isBackupClassicWebPartsAndPages", "isBackupSite", "isBackupList", "isBackupContent", "isBackupSharedLinks", "isMapSPGroupToADGroup", "enableShared", "isBackupWorkflowDefinition", "isBackupUserAlerts", "isEnableFilterPolicy", "filterPolicyId", "containerConflictResolution", "contentConflictResolution", "enableSyncDeletion", "manageLabelsOfFiles", "labelMappingIdOfFile", "manageLabelsOfSites", "labelMappingIdOfSite", "isRemoveSourceFromFiles", "defaultReplacementUser", "userMappingProfileId", "userMappingRules", "userMappingDefaultUser", "columnMappingId", "contentTypeMappingId", "templateMappingId", "urlMappingId", "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 "isBackupSubsites"))) { #optional property not found
            $IsBackupSubsites = $null
        } else {
            $IsBackupSubsites = $JsonParameters.PSobject.Properties["isBackupSubsites"].value
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "labelMappingIdOfSite"))) { #optional property not found
            $LabelMappingIdOfSite = $null
        } else {
            $LabelMappingIdOfSite = $JsonParameters.PSobject.Properties["labelMappingIdOfSite"].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 "defaultReplacementUser"))) { #optional property not found
            $DefaultReplacementUser = $null
        } else {
            $DefaultReplacementUser = $JsonParameters.PSobject.Properties["defaultReplacementUser"].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 "userMappingRules"))) { #optional property not found
            $UserMappingRules = $null
        } else {
            $UserMappingRules = $JsonParameters.PSobject.Properties["userMappingRules"].value
        }

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

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

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

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

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "urlMappingId"))) { #optional property not found
            $UrlMappingId = $null
        } else {
            $UrlMappingId = $JsonParameters.PSobject.Properties["urlMappingId"].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]@{
            "isBackupSubsites" = ${IsBackupSubsites}
            "isBackupSiteCollectionAndSiteFeatures" = ${IsBackupSiteCollectionAndSiteFeatures}
            "isBackupSiteAndListContentTypes" = ${IsBackupSiteAndListContentTypes}
            "isBackupSiteCollectionAndSiteSettings" = ${IsBackupSiteCollectionAndSiteSettings}
            "isBackupNavigation" = ${IsBackupNavigation}
            "isBackupSiteAndListColumns" = ${IsBackupSiteAndListColumns}
            "isBackupManagedMetadataService" = ${IsBackupManagedMetadataService}
            "isBackupApp" = ${IsBackupApp}
            "isBackupListsAndLibraries" = ${IsBackupListsAndLibraries}
            "isBackupSettings" = ${IsBackupSettings}
            "isBackupPublicViews" = ${IsBackupPublicViews}
            "isBackupPowerApp" = ${IsBackupPowerApp}
            "isBackupFoldersFilesItemsAndListAttachments" = ${IsBackupFoldersFilesItemsAndListAttachments}
            "isBackupWebPartsAndPages" = ${IsBackupWebPartsAndPages}
            "isBackupClassicWebPartsAndPages" = ${IsBackupClassicWebPartsAndPages}
            "isBackupSite" = ${IsBackupSite}
            "isBackupList" = ${IsBackupList}
            "isBackupContent" = ${IsBackupContent}
            "isBackupSharedLinks" = ${IsBackupSharedLinks}
            "isMapSPGroupToADGroup" = ${IsMapSPGroupToADGroup}
            "enableShared" = ${EnableShared}
            "isBackupWorkflowDefinition" = ${IsBackupWorkflowDefinition}
            "isBackupUserAlerts" = ${IsBackupUserAlerts}
            "isEnableFilterPolicy" = ${IsEnableFilterPolicy}
            "filterPolicyId" = ${FilterPolicyId}
            "containerConflictResolution" = ${ContainerConflictResolution}
            "contentConflictResolution" = ${ContentConflictResolution}
            "enableSyncDeletion" = ${EnableSyncDeletion}
            "manageLabelsOfFiles" = ${ManageLabelsOfFiles}
            "labelMappingIdOfFile" = ${LabelMappingIdOfFile}
            "manageLabelsOfSites" = ${ManageLabelsOfSites}
            "labelMappingIdOfSite" = ${LabelMappingIdOfSite}
            "isRemoveSourceFromFiles" = ${IsRemoveSourceFromFiles}
            "defaultReplacementUser" = ${DefaultReplacementUser}
            "userMappingProfileId" = ${UserMappingProfileId}
            "userMappingRules" = ${UserMappingRules}
            "userMappingDefaultUser" = ${UserMappingDefaultUser}
            "columnMappingId" = ${ColumnMappingId}
            "contentTypeMappingId" = ${ContentTypeMappingId}
            "templateMappingId" = ${TemplateMappingId}
            "urlMappingId" = ${UrlMappingId}
            "migrationModuleType" = ${MigrationModuleType}
            "isDefault" = ${IsDefault}
            "notification" = ${Notification}
            "customizeFeatures" = ${CustomizeFeatures}
            "name" = ${Name}
            "description" = ${Description}
            "createTime" = ${CreateTime}
            "createBy" = ${CreateBy}
            "lastModifyTime" = ${LastModifyTime}
            "lastModifyBy" = ${LastModifyBy}
            "id" = ${Id}
        }

        return $PSO
    }

}