Model/TeamChatPolicyCreationModel.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 IsMigrateAllChats
No description available.
.PARAMETER MigrateChatLaterThan
No description available.
.PARAMETER IsMigrateChatFiles
No description available.
.PARAMETER ChatFileConflictResolution
* `Skip` = 0 * `Overwrite` = 1 * `Merge` = 2 * `OverwriteByLastModifiedTime` = 3 * `Append` = 4
.PARAMETER ManageLabelCondition
* `KeepExisting` = 0 * `DoNotCopy` = 1 * `ApplySame` = 2 * `ConfigureCustom` = 3
.PARAMETER FileLabelMappingProfileId
No description available.
.PARAMETER IsProvideDestinationDomain
No description available.
.PARAMETER IsArchiveMessageAsHtml
No description available.
.PARAMETER IsConversationHtmlInChat
No description available.
.PARAMETER IsMigrateExternalUsers
No description available.
.PARAMETER IsSyncPinnedMessage
No description available.
.PARAMETER MessageTimeZoneId
No description available.
.PARAMETER UrlMappingProfileId
No description available.
.PARAMETER IsMigrateWithoutOneDrive
No description available.
.PARAMETER DestinationDomain
No description available.
.PARAMETER UserMappingProfileId
No description available.
.PARAMETER UserMappingRules
No description available.
.PARAMETER IsMigrateChatTabs
No description available.
.PARAMETER Name
No description available.
.PARAMETER Description
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 Notification
No description available.
.PARAMETER IsDefault
No description available.
.PARAMETER CustomizeFeatures
No description available.
.OUTPUTS
 
TeamChatPolicyCreationModel<PSCustomObject>
#>


function Initialize-FlyTeamChatPolicyCreationModel {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsMigrateAllChats},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Int64]]
        ${MigrateChatLaterThan},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsMigrateChatFiles},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ChatFileConflictResolution},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ManageLabelCondition},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${FileLabelMappingProfileId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsProvideDestinationDomain},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsArchiveMessageAsHtml},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsConversationHtmlInChat},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsMigrateExternalUsers},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsSyncPinnedMessage},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${MessageTimeZoneId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${UrlMappingProfileId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsMigrateWithoutOneDrive},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${DestinationDomain},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${UserMappingProfileId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${UserMappingRules},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsMigrateChatTabs},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Name},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Description},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${MigrationModuleType},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Notification},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${IsDefault},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String[]]
        ${CustomizeFeatures}
    )

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


        $PSO = [PSCustomObject]@{
            "isMigrateAllChats" = ${IsMigrateAllChats}
            "migrateChatLaterThan" = ${MigrateChatLaterThan}
            "isMigrateChatFiles" = ${IsMigrateChatFiles}
            "chatFileConflictResolution" = ${ChatFileConflictResolution}
            "manageLabelCondition" = ${ManageLabelCondition}
            "fileLabelMappingProfileId" = ${FileLabelMappingProfileId}
            "isProvideDestinationDomain" = ${IsProvideDestinationDomain}
            "isArchiveMessageAsHtml" = ${IsArchiveMessageAsHtml}
            "isConversationHtmlInChat" = ${IsConversationHtmlInChat}
            "isMigrateExternalUsers" = ${IsMigrateExternalUsers}
            "isSyncPinnedMessage" = ${IsSyncPinnedMessage}
            "messageTimeZoneId" = ${MessageTimeZoneId}
            "urlMappingProfileId" = ${UrlMappingProfileId}
            "isMigrateWithoutOneDrive" = ${IsMigrateWithoutOneDrive}
            "destinationDomain" = ${DestinationDomain}
            "userMappingProfileId" = ${UserMappingProfileId}
            "userMappingRules" = ${UserMappingRules}
            "isMigrateChatTabs" = ${IsMigrateChatTabs}
            "name" = ${Name}
            "description" = ${Description}
            "migrationModuleType" = ${MigrationModuleType}
            "notification" = ${Notification}
            "isDefault" = ${IsDefault}
            "customizeFeatures" = ${CustomizeFeatures}
        }

        return $PSO
    }
}

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

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

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

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in FlyTeamChatPolicyCreationModel
        $AllProperties = ("isMigrateAllChats", "migrateChatLaterThan", "isMigrateChatFiles", "chatFileConflictResolution", "manageLabelCondition", "fileLabelMappingProfileId", "isProvideDestinationDomain", "isArchiveMessageAsHtml", "isConversationHtmlInChat", "isMigrateExternalUsers", "isSyncPinnedMessage", "messageTimeZoneId", "urlMappingProfileId", "isMigrateWithoutOneDrive", "destinationDomain", "userMappingProfileId", "userMappingRules", "isMigrateChatTabs", "name", "description", "migrationModuleType", "notification", "isDefault", "customizeFeatures")
        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 "isMigrateAllChats"))) { #optional property not found
            $IsMigrateAllChats = $null
        } else {
            $IsMigrateAllChats = $JsonParameters.PSobject.Properties["isMigrateAllChats"].value
        }

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

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

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

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

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

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

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

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

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

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "isSyncPinnedMessage"))) { #optional property not found
            $IsSyncPinnedMessage = $null
        } else {
            $IsSyncPinnedMessage = $JsonParameters.PSobject.Properties["isSyncPinnedMessage"].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 "urlMappingProfileId"))) { #optional property not found
            $UrlMappingProfileId = $null
        } else {
            $UrlMappingProfileId = $JsonParameters.PSobject.Properties["urlMappingProfileId"].value
        }

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

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "destinationDomain"))) { #optional property not found
            $DestinationDomain = $null
        } else {
            $DestinationDomain = $JsonParameters.PSobject.Properties["destinationDomain"].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 "isMigrateChatTabs"))) { #optional property not found
            $IsMigrateChatTabs = $null
        } else {
            $IsMigrateChatTabs = $JsonParameters.PSobject.Properties["isMigrateChatTabs"].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 "migrationModuleType"))) { #optional property not found
            $MigrationModuleType = $null
        } else {
            $MigrationModuleType = $JsonParameters.PSobject.Properties["migrationModuleType"].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 "isDefault"))) { #optional property not found
            $IsDefault = $null
        } else {
            $IsDefault = $JsonParameters.PSobject.Properties["isDefault"].value
        }

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

        $PSO = [PSCustomObject]@{
            "isMigrateAllChats" = ${IsMigrateAllChats}
            "migrateChatLaterThan" = ${MigrateChatLaterThan}
            "isMigrateChatFiles" = ${IsMigrateChatFiles}
            "chatFileConflictResolution" = ${ChatFileConflictResolution}
            "manageLabelCondition" = ${ManageLabelCondition}
            "fileLabelMappingProfileId" = ${FileLabelMappingProfileId}
            "isProvideDestinationDomain" = ${IsProvideDestinationDomain}
            "isArchiveMessageAsHtml" = ${IsArchiveMessageAsHtml}
            "isConversationHtmlInChat" = ${IsConversationHtmlInChat}
            "isMigrateExternalUsers" = ${IsMigrateExternalUsers}
            "isSyncPinnedMessage" = ${IsSyncPinnedMessage}
            "messageTimeZoneId" = ${MessageTimeZoneId}
            "urlMappingProfileId" = ${UrlMappingProfileId}
            "isMigrateWithoutOneDrive" = ${IsMigrateWithoutOneDrive}
            "destinationDomain" = ${DestinationDomain}
            "userMappingProfileId" = ${UserMappingProfileId}
            "userMappingRules" = ${UserMappingRules}
            "isMigrateChatTabs" = ${IsMigrateChatTabs}
            "name" = ${Name}
            "description" = ${Description}
            "migrationModuleType" = ${MigrationModuleType}
            "notification" = ${Notification}
            "isDefault" = ${IsDefault}
            "customizeFeatures" = ${CustomizeFeatures}
        }

        return $PSO
    }

}