Model/User.ps1

#
# SMServer V6
# Syncplify.me Server! REST API
# Version: 1.0.0
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS

No summary available.

.DESCRIPTION

No description available.

.PARAMETER Id
This is the user's USERNAME or [GROUPNAME] if between square brackets

.PARAMETER Email
No description available.

.PARAMETER Type
No description available.

.PARAMETER AuthTypes
What authentication types are accepted for this user

.PARAMETER AuthMultiOnSsh
When connection is SSH-2, require the user to authenticate multiple times using ALL of the AuthTypes here above in order

.PARAMETER LdapServerId
ID of the LDAP server to be used for authentication (applicable only if this is an LDAP user/group)

.PARAMETER LdapQuery
No description available.

.PARAMETER Password
No description available.

.PARAMETER SshPubKeys
A list of SSH public keys this user is allowed to authenticate with

.PARAMETER Subsystems
No description available.

.PARAMETER Picture
No description available.

.PARAMETER Description
Free-text description or annotation

.PARAMETER Home
No description available.

.PARAMETER VirtualFolders
A map of virtual folders for this user, the key is the mount point

.PARAMETER PermissionOverride
A map of permission override rules for real or virtual folders, the key is the mount point

.PARAMETER SpeedLimits
List of various speed limits to be appied to dofferent client IPs and networks

.PARAMETER EventHandlers
List of global (server-wide) event handlers

.PARAMETER Status
No description available.

.PARAMETER AutoEnable
Is this account to be automatically disabled at a certaind date?

.PARAMETER AutoEnableDate
If the above is TRUE, this is the exact timestamp when the account must be enabled

.PARAMETER AutoDisable
Is this account to be automatically disabled at a certaind date?

.PARAMETER AutoDisableDate
If the above is TRUE, this is the exact timestamp when the account must be disabled

.PARAMETER AllowList
List of allowed sources (IPs and Networks) this user can log in from

.OUTPUTS

User<PSCustomObject>
#>


function New-SS6User {
    [CmdletBinding()]
    Param (
        [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Id},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Email},
        [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Type},
        [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${AuthTypes},
        [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${AuthMultiOnSsh},
        [Parameter(Position = 5, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${LdapServerId},
        [Parameter(Position = 6, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${LdapQuery},
        [Parameter(Position = 7, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Password},
        [Parameter(Position = 8, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${SshPubKeys},
        [Parameter(Position = 9, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Subsystems},
        [Parameter(Position = 10, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Picture},
        [Parameter(Position = 11, ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Description},
        [Parameter(Position = 12, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Home},
        [Parameter(Position = 13, ValueFromPipelineByPropertyName = $true)]
        [Hashtable]
        ${VirtualFolders},
        [Parameter(Position = 14, ValueFromPipelineByPropertyName = $true)]
        [Hashtable]
        ${PermissionOverride},
        [Parameter(Position = 15, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${SpeedLimits},
        [Parameter(Position = 16, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${EventHandlers},
        [Parameter(Position = 17, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${Status},
        [Parameter(Position = 18, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${AutoEnable},
        [Parameter(Position = 19, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${AutoEnableDate},
        [Parameter(Position = 20, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${AutoDisable},
        [Parameter(Position = 21, ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${AutoDisableDate},
        [Parameter(Position = 22, ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${AllowList}
    )

    Process {
        'Creating object: SS6AdminModule => SS6User' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $PSO = [PSCustomObject]@{
            "id" = ${Id}
            "email" = ${Email}
            "type" = ${Type}
            "authTypes" = ${AuthTypes}
            "authMultiOnSsh" = ${AuthMultiOnSsh}
            "ldapServerId" = ${LdapServerId}
            "ldapQuery" = ${LdapQuery}
            "password" = ${Password}
            "sshPubKeys" = ${SshPubKeys}
            "subsystems" = ${Subsystems}
            "picture" = ${Picture}
            "description" = ${Description}
            "home" = ${Home}
            "virtualFolders" = ${VirtualFolders}
            "permissionOverride" = ${PermissionOverride}
            "speedLimits" = ${SpeedLimits}
            "eventHandlers" = ${EventHandlers}
            "status" = ${Status}
            "autoEnable" = ${AutoEnable}
            "autoEnableDate" = ${AutoEnableDate}
            "autoDisable" = ${AutoDisable}
            "autoDisableDate" = ${AutoDisableDate}
            "allowList" = ${AllowList}
        }

        return $PSO
    }
}