Modules/bConnectV2.Endpoints/Model/Model.ps1

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER DisplayName
Display name of an endpoint
.PARAMETER LogicalGroupId
ID of Logical Group, a client should be managed with
.PARAMETER Comment
Text field for creating comments on the endpoint
.PARAMETER Owner
Owner type of the device
.PARAMETER SerialNumber
Serial number of the device
.PARAMETER AndroidEnterpriseProfileType
Type of android enterprise profile
.PARAMETER RegisteredUser
Registered user of an endpoint
.OUTPUTS
 
AndroidEndpointForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsAndroidEndpointForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${DisplayName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${LogicalGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Comment},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("Company", "Private")]
        [PSCustomObject]
        ${Owner},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${SerialNumber},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("None", "DeviceOwner", "WorkProfile", "DedicatedDevice")]
        [PSCustomObject]
        ${AndroidEnterpriseProfileType},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${RegisteredUser}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsAndroidEndpointForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -eq $DisplayName) {
            throw "invalid value for 'DisplayName', 'DisplayName' cannot be null."
        }

        if ($DisplayName.length -gt 255) {
            throw "invalid value for 'DisplayName', the character length must be smaller than or equal to 255."
        }

        if ($DisplayName.length -lt 1) {
            throw "invalid value for 'DisplayName', the character length must be great than or equal to 1."
        }

        if ($null -ne $LogicalGroupId -and -not ($LogicalGroupId -is [string]))
        {
            throw "invalid type for 'LogicalGroupId', must be string or `$null."
        }

        if ($null -ne $Comment -and -not ($Comment -is [string]))
        {
            throw "invalid type for 'Comment', must be string or `$null."
        }

        if ($null -ne $SerialNumber -and -not ($SerialNumber -is [string]))
        {
            throw "invalid type for 'SerialNumber', must be string or `$null."
        }

        if ($null -ne $SerialNumber -and $SerialNumber.length -gt 200) {
            throw "invalid value for 'SerialNumber', the character length must be smaller than or equal to 200."
        }

        if ($null -ne $RegisteredUser -and -not ($RegisteredUser -is [string]))
        {
            throw "invalid type for 'RegisteredUser', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "displayName" = ${DisplayName}
            "logicalGroupId" = ${LogicalGroupId}
            "comment" = ${Comment}
            "owner" = ${Owner}
            "serialNumber" = ${SerialNumber}
            "androidEnterpriseProfileType" = ${AndroidEnterpriseProfileType}
            "registeredUser" = ${RegisteredUser}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
Enables enrollment for the endpoint with the given enrollment-type.
 
.PARAMETER EnrollmentMailAddress
By specifying an e-mail recipient, you can also have a corresponding e-mail with the enrollment information sent automatically.
.PARAMETER EmailLanguageId
Sets which e-mail template is used for the enrollment message. Default available mail templates are “de-DE” and “en-US”. If the email language is not specified, the English template(“en-US”) will be used.
.PARAMETER ForceMobileDataOnEnrollment
No description available.
.PARAMETER IncludeWifiInQrCode
No description available.
.OUTPUTS
 
AndroidEnrollmentRequest<PSCustomObject>
#>

function Initialize-bCEndpointsAndroidEnrollmentRequest {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EnrollmentMailAddress},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EmailLanguageId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [bool]
        ${ForceMobileDataOnEnrollment} = $false,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [bool]
        ${IncludeWifiInQrCode} = $false
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsAndroidEnrollmentRequest' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -ne $EnrollmentMailAddress -and -not ($EnrollmentMailAddress -is [string]))
        {
            throw "invalid type for 'EnrollmentMailAddress', must be string or `$null."
        }

        if ($null -ne $EmailLanguageId -and -not ($EmailLanguageId -is [string]))
        {
            throw "invalid type for 'EmailLanguageId', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "enrollmentMailAddress" = ${EnrollmentMailAddress}
            "emailLanguageId" = ${EmailLanguageId}
            "forceMobileDataOnEnrollment" = ${ForceMobileDataOnEnrollment}
            "includeWifiInQrCode" = ${IncludeWifiInQrCode}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
Properties to create a mapping of an Entra ID endpoint to a baramundi mobile endpoint
 
.PARAMETER EntraIdDeviceId
The Entra ID endpoint ID
.PARAMETER EntraIdTenantId
The Entra ID tenant ID
.PARAMETER EntraIdUserId
The Entra ID user ID
.OUTPUTS
 
EntraIdEndpointDataForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsEntraIdEndpointDataForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${EntraIdDeviceId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${EntraIdTenantId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${EntraIdUserId}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsEntraIdEndpointDataForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "entraIdDeviceId" = ${EntraIdDeviceId}
            "entraIdTenantId" = ${EntraIdTenantId}
            "entraIdUserId" = ${EntraIdUserId}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER DisplayName
Display name of an endpoint
.PARAMETER LogicalGroupId
ID of Logical Group, a client should be managed with
.PARAMETER Comment
Text field for creating comments on the endpoint
.PARAMETER Owner
Owner type of the device
.PARAMETER SerialNumber
Serial number of the device
.PARAMETER RegisteredUser
Registered user of an endpoint
.PARAMETER AppleManagementMode
The type of iOS management
.PARAMETER ManagedAppleId
The managed Apple Account of the VPP user
.OUTPUTS
 
IosEndpointForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsIosEndpointForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${DisplayName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${LogicalGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Comment},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("Company", "Private")]
        [PSCustomObject]
        ${Owner},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${SerialNumber},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${RegisteredUser},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("DeviceEnrollment", "UserEnrollment")]
        [PSCustomObject]
        ${AppleManagementMode},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${ManagedAppleId}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsIosEndpointForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -eq $DisplayName) {
            throw "invalid value for 'DisplayName', 'DisplayName' cannot be null."
        }

        if ($DisplayName.length -gt 255) {
            throw "invalid value for 'DisplayName', the character length must be smaller than or equal to 255."
        }

        if ($DisplayName.length -lt 1) {
            throw "invalid value for 'DisplayName', the character length must be great than or equal to 1."
        }

        if ($null -ne $LogicalGroupId -and -not ($LogicalGroupId -is [string]))
        {
            throw "invalid type for 'LogicalGroupId', must be string or `$null."
        }

        if ($null -ne $Comment -and -not ($Comment -is [string]))
        {
            throw "invalid type for 'Comment', must be string or `$null."
        }

        if ($null -ne $SerialNumber -and -not ($SerialNumber -is [string]))
        {
            throw "invalid type for 'SerialNumber', must be string or `$null."
        }

        if ($null -ne $SerialNumber -and $SerialNumber.length -gt 200) {
            throw "invalid value for 'SerialNumber', the character length must be smaller than or equal to 200."
        }

        if ($null -ne $RegisteredUser -and -not ($RegisteredUser -is [string]))
        {
            throw "invalid type for 'RegisteredUser', must be string or `$null."
        }

        if ($null -ne $RegisteredUser -and $RegisteredUser.length -gt 255) {
            throw "invalid value for 'RegisteredUser', the character length must be smaller than or equal to 255."
        }

        if ($null -ne $ManagedAppleId -and -not ($ManagedAppleId -is [string]))
        {
            throw "invalid type for 'ManagedAppleId', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "displayName" = ${DisplayName}
            "logicalGroupId" = ${LogicalGroupId}
            "comment" = ${Comment}
            "owner" = ${Owner}
            "serialNumber" = ${SerialNumber}
            "registeredUser" = ${RegisteredUser}
            "appleManagementMode" = ${AppleManagementMode}
            "managedAppleId" = ${ManagedAppleId}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER EnrollmentMailAddress
By specifying an e-mail recipient, you can also have a corresponding e-mail with the enrollment information sent automatically.
.PARAMETER EmailLanguageId
Sets which e-mail template is used for the enrollment message. Default available mail templates are “de-DE” and “en-US”. If the email language is not specified, the English template(“en-US”) will be used.
.OUTPUTS
 
IosEnrollmentRequest<PSCustomObject>
#>

function Initialize-bCEndpointsIosEnrollmentRequest {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EnrollmentMailAddress},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EmailLanguageId}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsIosEnrollmentRequest' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -ne $EnrollmentMailAddress -and -not ($EnrollmentMailAddress -is [string]))
        {
            throw "invalid type for 'EnrollmentMailAddress', must be string or `$null."
        }

        if ($null -ne $EmailLanguageId -and -not ($EmailLanguageId -is [string]))
        {
            throw "invalid type for 'EmailLanguageId', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "enrollmentMailAddress" = ${EnrollmentMailAddress}
            "emailLanguageId" = ${EmailLanguageId}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER DisplayName
Display name of an endpoint
.PARAMETER LogicalGroupId
ID of Logical Group, a client should be managed with
.PARAMETER Comment
Text field for creating comments on the endpoint
.PARAMETER HostName
Hostname of the endpoint
.PARAMETER PrimaryIP
Primary IP address of the endpoint
.PARAMETER PrimaryMAC
Primary MAC address of the endpoint. Supported format: IEEE MAC-48, IEEE EUI-48 and misc. vendor formats (MMMM:MMMM:MMMM, MMMM-MMMM-MMMM, MMMM.MMMM.MMMM). Each «M» stands for one hexadecimal digit
.PARAMETER RegisteredUser
Registered user of the endpoint
.PARAMETER ManagementMode
Management mode
.PARAMETER SshConfiguration
SSH configuration of the endpoint
.OUTPUTS
 
LinuxEndpointForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsLinuxEndpointForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${DisplayName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${LogicalGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Comment},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${HostName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${PrimaryIP},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${PrimaryMAC},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${RegisteredUser},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("SSH", "ManagementAgent")]
        [PSCustomObject]
        ${ManagementMode},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${SshConfiguration}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsLinuxEndpointForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -eq $DisplayName) {
            throw "invalid value for 'DisplayName', 'DisplayName' cannot be null."
        }

        if ($DisplayName.length -gt 255) {
            throw "invalid value for 'DisplayName', the character length must be smaller than or equal to 255."
        }

        if ($DisplayName.length -lt 1) {
            throw "invalid value for 'DisplayName', the character length must be great than or equal to 1."
        }

        if ($null -ne $LogicalGroupId -and -not ($LogicalGroupId -is [string]))
        {
            throw "invalid type for 'LogicalGroupId', must be string or `$null."
        }

        if ($null -ne $Comment -and -not ($Comment -is [string]))
        {
            throw "invalid type for 'Comment', must be string or `$null."
        }

        if ($null -eq $HostName) {
            throw "invalid value for 'HostName', 'HostName' cannot be null."
        }

        if ($HostName.length -lt 1) {
            throw "invalid value for 'HostName', the character length must be great than or equal to 1."
        }

        if ($null -ne $PrimaryIP -and -not ($PrimaryIP -is [string]))
        {
            throw "invalid type for 'PrimaryIP', must be string or `$null."
        }

        if ($null -ne $PrimaryMAC -and -not ($PrimaryMAC -is [string]))
        {
            throw "invalid type for 'PrimaryMAC', must be string or `$null."
        }

        if ($null -ne $RegisteredUser -and -not ($RegisteredUser -is [string]))
        {
            throw "invalid type for 'RegisteredUser', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "displayName" = ${DisplayName}
            "logicalGroupId" = ${LogicalGroupId}
            "comment" = ${Comment}
            "hostName" = ${HostName}
            "primaryIP" = ${PrimaryIP}
            "primaryMAC" = ${PrimaryMAC}
            "registeredUser" = ${RegisteredUser}
            "managementMode" = ${ManagementMode}
            "sshConfiguration" = ${SshConfiguration}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Name
The name of the logical group
.PARAMETER ParentId
The id of the parent logical group
.PARAMETER Comment
Freely editable text field
.PARAMETER Dip
UNC paths or URLs (with bBT) to Distributed Installation Points (DIP), separated by a semicolon (;)
.PARAMETER DefaultDomain
Default domain of the Windows devices in this logical group
.OUTPUTS
 
LogicalGroupForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsLogicalGroupForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${Name},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${ParentId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Comment},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Dip},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${DefaultDomain}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsLogicalGroupForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -eq $Name) {
            throw "invalid value for 'Name', 'Name' cannot be null."
        }

        if ($Name.length -gt 255) {
            throw "invalid value for 'Name', the character length must be smaller than or equal to 255."
        }

        if ($Name.length -lt 1) {
            throw "invalid value for 'Name', the character length must be great than or equal to 1."
        }

        if ($null -ne $ParentId -and -not ($ParentId -is [string]))
        {
            throw "invalid type for 'ParentId', must be string or `$null."
        }

        if ($null -ne $Comment -and -not ($Comment -is [string]))
        {
            throw "invalid type for 'Comment', must be string or `$null."
        }

        if ($null -ne $Dip -and -not ($Dip -is [string]))
        {
            throw "invalid type for 'Dip', must be string or `$null."
        }

        if ($null -ne $Dip -and $Dip.length -gt 255) {
            throw "invalid value for 'Dip', the character length must be smaller than or equal to 255."
        }

        if ($null -ne $DefaultDomain -and -not ($DefaultDomain -is [string]))
        {
            throw "invalid type for 'DefaultDomain', must be string or `$null."
        }

        if ($null -ne $DefaultDomain -and $DefaultDomain.length -gt 80) {
            throw "invalid value for 'DefaultDomain', the character length must be smaller than or equal to 80."
        }


        $PSO = [PSCustomObject]@{
            "name" = ${Name}
            "parentId" = ${ParentId}
            "comment" = ${Comment}
            "dip" = ${Dip}
            "defaultDomain" = ${DefaultDomain}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
A macOS endpoint with describing fields
 
.PARAMETER DisplayName
Display name of an endpoint
.PARAMETER LogicalGroupId
ID of Logical Group, a client should be managed with
.PARAMETER Comment
Text field for creating comments on the endpoint
.PARAMETER Owner
Owner type of the device
.PARAMETER SerialNumber
Serial number of the device
.PARAMETER HostName
Host name of an endpoint
.PARAMETER RegisteredUser
Registered user of an endpoint
.OUTPUTS
 
MacEndpointForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsMacEndpointForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${DisplayName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${LogicalGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Comment},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("Company", "Private")]
        [PSCustomObject]
        ${Owner},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${SerialNumber},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${HostName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${RegisteredUser}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsMacEndpointForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -eq $DisplayName) {
            throw "invalid value for 'DisplayName', 'DisplayName' cannot be null."
        }

        if ($DisplayName.length -gt 255) {
            throw "invalid value for 'DisplayName', the character length must be smaller than or equal to 255."
        }

        if ($DisplayName.length -lt 1) {
            throw "invalid value for 'DisplayName', the character length must be great than or equal to 1."
        }

        if ($null -ne $LogicalGroupId -and -not ($LogicalGroupId -is [string]))
        {
            throw "invalid type for 'LogicalGroupId', must be string or `$null."
        }

        if ($null -ne $Comment -and -not ($Comment -is [string]))
        {
            throw "invalid type for 'Comment', must be string or `$null."
        }

        if ($null -ne $SerialNumber -and -not ($SerialNumber -is [string]))
        {
            throw "invalid type for 'SerialNumber', must be string or `$null."
        }

        if ($null -ne $SerialNumber -and $SerialNumber.length -gt 200) {
            throw "invalid value for 'SerialNumber', the character length must be smaller than or equal to 200."
        }

        if ($null -ne $HostName -and -not ($HostName -is [string]))
        {
            throw "invalid type for 'HostName', must be string or `$null."
        }

        if ($null -ne $HostName -and $HostName.length -gt 80) {
            throw "invalid value for 'HostName', the character length must be smaller than or equal to 80."
        }

        if ($null -ne $RegisteredUser -and -not ($RegisteredUser -is [string]))
        {
            throw "invalid type for 'RegisteredUser', must be string or `$null."
        }

        if ($null -ne $RegisteredUser -and $RegisteredUser.length -gt 255) {
            throw "invalid value for 'RegisteredUser', the character length must be smaller than or equal to 255."
        }


        $PSO = [PSCustomObject]@{
            "displayName" = ${DisplayName}
            "logicalGroupId" = ${LogicalGroupId}
            "comment" = ${Comment}
            "owner" = ${Owner}
            "serialNumber" = ${SerialNumber}
            "hostName" = ${HostName}
            "registeredUser" = ${RegisteredUser}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
Enables enrollment for the endpoint with the given enrollment-type.
 
.PARAMETER EnrollmentMailAddress
By specifying an e-mail recipient, you can also have a corresponding e-mail with the enrollment information sent automatically.
.PARAMETER EmailLanguageId
Sets which e-mail template is used for the enrollment message. Default available mail templates are “de-DE” and “en-US”. If the email language is not specified, the English template(“en-US”) will be used.
.PARAMETER EnrollmentType
No description available.
.OUTPUTS
 
MacEnrollmentRequest<PSCustomObject>
#>

function Initialize-bCEndpointsMacEnrollmentRequest {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EnrollmentMailAddress},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EmailLanguageId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("Unenrolled", "SSH", "SSHAndNative", "Native")]
        [PSCustomObject]
        ${EnrollmentType}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsMacEnrollmentRequest' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -ne $EnrollmentMailAddress -and -not ($EnrollmentMailAddress -is [string]))
        {
            throw "invalid type for 'EnrollmentMailAddress', must be string or `$null."
        }

        if ($null -ne $EmailLanguageId -and -not ($EmailLanguageId -is [string]))
        {
            throw "invalid type for 'EmailLanguageId', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "enrollmentMailAddress" = ${EnrollmentMailAddress}
            "emailLanguageId" = ${EmailLanguageId}
            "enrollmentType" = ${EnrollmentType}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER MaintenanceWindowDefinitionType
Maintenance window type **Note:** The following values are deprecated and should no longer be used. - Unrestricted -> Use 'Anytime' instead
.PARAMETER Intervals
Maintenance intervals. Interval is optional for the 'unrestricted', 'anytime', and 'never' types, but at least one interval is required for all other types
.OUTPUTS
 
MaintenanceWindowForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsMaintenanceWindowForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("Everyday", "WorkdayWeekend", "IndividualWeekday", "Unrestricted", "Anytime", "Never")]
        [PSCustomObject]
        ${MaintenanceWindowDefinitionType},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${Intervals}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsMaintenanceWindowForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "maintenanceWindowDefinitionType" = ${MaintenanceWindowDefinitionType}
            "intervals" = ${Intervals}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
An network endpoint with describing fields
 
.PARAMETER DisplayName
Display name of an endpoint
.PARAMETER LogicalGroupId
ID of Logical Group, a client should be managed with
.PARAMETER Comment
Text field for creating comments on the endpoint
.PARAMETER HostName
The host name of an endpoint
.PARAMETER PrimaryMAC
The primary MAC-address of an endpoint. Supported format: IEEE MAC-48, IEEE EUI-48 and misc. vendor formats (MMMM:MMMM:MMMM, MMMM-MMMM-MMMM, MMMM.MMMM.MMMM). Each «M» stands for one hexadecimal digit
.PARAMETER PrimaryIP
Primary IP-address of an endpoint
.PARAMETER WebInterfaceUrl
The web interface URL
.PARAMETER SerialNumber
The serial number of an endpoint
.PARAMETER RegisteredUser
The registered user of an endpoint
.PARAMETER SshConfiguration
Ssh configuration for the current endpoint
.PARAMETER SnmpPort
The port used for SNMP communication
.PARAMETER SnmpConfiguration
The SNMP configuration.
.OUTPUTS
 
NetworkEndpointForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsNetworkEndpointForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${DisplayName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${LogicalGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Comment},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${HostName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${PrimaryMAC},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${PrimaryIP},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${WebInterfaceUrl},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${SerialNumber},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${RegisteredUser},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${SshConfiguration},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[int]]
        ${SnmpPort},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${SnmpConfiguration}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsNetworkEndpointForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -eq $DisplayName) {
            throw "invalid value for 'DisplayName', 'DisplayName' cannot be null."
        }

        if ($DisplayName.length -gt 255) {
            throw "invalid value for 'DisplayName', the character length must be smaller than or equal to 255."
        }

        if ($DisplayName.length -lt 1) {
            throw "invalid value for 'DisplayName', the character length must be great than or equal to 1."
        }

        if ($null -ne $LogicalGroupId -and -not ($LogicalGroupId -is [string]))
        {
            throw "invalid type for 'LogicalGroupId', must be string or `$null."
        }

        if ($null -ne $Comment -and -not ($Comment -is [string]))
        {
            throw "invalid type for 'Comment', must be string or `$null."
        }

        if ($null -ne $HostName -and -not ($HostName -is [string]))
        {
            throw "invalid type for 'HostName', must be string or `$null."
        }

        if ($null -ne $PrimaryMAC -and -not ($PrimaryMAC -is [string]))
        {
            throw "invalid type for 'PrimaryMAC', must be string or `$null."
        }

        if ($null -eq $PrimaryIP) {
            throw "invalid value for 'PrimaryIP', 'PrimaryIP' cannot be null."
        }

        if ($PrimaryIP.length -lt 1) {
            throw "invalid value for 'PrimaryIP', the character length must be great than or equal to 1."
        }

        if ($null -ne $WebInterfaceUrl -and -not ($WebInterfaceUrl -is [string]))
        {
            throw "invalid type for 'WebInterfaceUrl', must be string or `$null."
        }

        if ($null -ne $SerialNumber -and -not ($SerialNumber -is [string]))
        {
            throw "invalid type for 'SerialNumber', must be string or `$null."
        }

        if ($null -ne $SerialNumber -and $SerialNumber.length -gt 200) {
            throw "invalid value for 'SerialNumber', the character length must be smaller than or equal to 200."
        }

        if ($null -ne $SerialNumber -and $SerialNumber.length -lt 1) {
            throw "invalid value for 'SerialNumber', the character length must be great than or equal to 1."
        }

        if ($null -ne $RegisteredUser -and -not ($RegisteredUser -is [string]))
        {
            throw "invalid type for 'RegisteredUser', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "displayName" = ${DisplayName}
            "logicalGroupId" = ${LogicalGroupId}
            "comment" = ${Comment}
            "hostName" = ${HostName}
            "primaryMAC" = ${PrimaryMAC}
            "primaryIP" = ${PrimaryIP}
            "webInterfaceUrl" = ${WebInterfaceUrl}
            "serialNumber" = ${SerialNumber}
            "registeredUser" = ${RegisteredUser}
            "sshConfiguration" = ${SshConfiguration}
            "snmpPort" = ${SnmpPort}
            "snmpConfiguration" = ${SnmpConfiguration}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Version
Version values for SNMP
.PARAMETER Community
Property required for versions V1 and V2c
.PARAMETER Username
Property required for version V3
.PARAMETER Authentication
Property only valid for version V3
.PARAMETER Encryption
Property only valid for version V3
.PARAMETER ContextName
Property only valid for version V3
.PARAMETER ContextEngineId
Property only valid for version V3
.PARAMETER AuthenticationPassword
Required for authentication other than 'NoAuth'
.PARAMETER EncryptionPassword
Required for encryption other than 'NoEncrypt'
.OUTPUTS
 
SnmpConfigurationForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsSnmpConfigurationForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("V1", "V2c", "V3")]
        [PSCustomObject]
        ${Version},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Community},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Username},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("None", "MD5", "SHA", "SHA256", "SHA384", "SHA512")]
        [PSCustomObject]
        ${Authentication},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("None", "DES", "AES", "TDES", "AES192", "AES256")]
        [PSCustomObject]
        ${Encryption},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${ContextName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${ContextEngineId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${AuthenticationPassword},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EncryptionPassword}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsSnmpConfigurationForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -ne $Community -and -not ($Community -is [string]))
        {
            throw "invalid type for 'Community', must be string or `$null."
        }

        if ($null -ne $Username -and -not ($Username -is [string]))
        {
            throw "invalid type for 'Username', must be string or `$null."
        }

        if ($null -ne $ContextName -and -not ($ContextName -is [string]))
        {
            throw "invalid type for 'ContextName', must be string or `$null."
        }

        if ($null -ne $ContextEngineId -and -not ($ContextEngineId -is [string]))
        {
            throw "invalid type for 'ContextEngineId', must be string or `$null."
        }

        if ($null -ne $AuthenticationPassword -and -not ($AuthenticationPassword -is [string]))
        {
            throw "invalid type for 'AuthenticationPassword', must be string or `$null."
        }

        if ($null -ne $EncryptionPassword -and -not ($EncryptionPassword -is [string]))
        {
            throw "invalid type for 'EncryptionPassword', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "version" = ${Version}
            "community" = ${Community}
            "username" = ${Username}
            "authentication" = ${Authentication}
            "encryption" = ${Encryption}
            "contextName" = ${ContextName}
            "contextEngineId" = ${ContextEngineId}
            "authenticationPassword" = ${AuthenticationPassword}
            "encryptionPassword" = ${EncryptionPassword}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
The SSH configuration details of the endpoint
 
.PARAMETER Port
SSH Port
.PARAMETER AuthenticationMethod
SSH authentication method
.PARAMETER Username
SSH Credentials - Username
.PARAMETER Password
SSH Credentials - Password
.PARAMETER HostKeys
SSH Host keys
.OUTPUTS
 
SshConfigurationForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsSshConfigurationForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[int]]
        ${Port},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("None", "Password", "Key")]
        [PSCustomObject]
        ${AuthenticationMethod},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Username},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Password},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject[]]
        ${HostKeys}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsSshConfigurationForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -ne $Port -and $Port -gt 65535) {
          throw "invalid value for 'Port', must be smaller than or equal to 65535."
        }

        if ($null -ne $Port -and $Port -lt 1) {
          throw "invalid value for 'Port', must be greater than or equal to 1."
        }

        if ($null -ne $Username -and -not ($Username -is [string]))
        {
            throw "invalid type for 'Username', must be string or `$null."
        }

        if ($null -ne $Password -and -not ($Password -is [string]))
        {
            throw "invalid type for 'Password', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "port" = ${Port}
            "authenticationMethod" = ${AuthenticationMethod}
            "username" = ${Username}
            "password" = ${Password}
            "hostKeys" = ${HostKeys}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER ExtendedInternetMode
If set to true, Extended Internet Mode is enabled
.PARAMETER NetworkMode
The network mode
.OUTPUTS
 
WindowsEndpointClientAgentLinkForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsWindowsEndpointClientAgentLinkForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[bool]]
        ${ExtendedInternetMode},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("LAN", "Internet", "Dynamic")]
        [PSCustomObject]
        ${NetworkMode}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsWindowsEndpointClientAgentLinkForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "extendedInternetMode" = ${ExtendedInternetMode}
            "networkMode" = ${NetworkMode}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
Windows endpoint with fields which can be set during creation with a POST request
 
.PARAMETER DisplayName
Display name of an endpoint
.PARAMETER LogicalGroupId
ID of Logical Group, a client should be managed with
.PARAMETER Comment
Text field for creating comments on the endpoint
.PARAMETER HostName
The host name of an endpoint
.PARAMETER Domain
The name of the domain the client is joined to
.PARAMETER PrimaryMAC
The primary MAC-address of an endpoint. Supported format: IEEE MAC-48, IEEE EUI-48 and misc. vendor formats (MMMM:MMMM:MMMM, MMMM-MMMM-MMMM, MMMM.MMMM.MMMM). Each «M» stands for one hexadecimal digit
.PARAMETER PrimaryIP
Primary IP-address of an endpoint
.PARAMETER PrimarySubnetMask
The primary subnet mask of the endpoint
.PARAMETER RegisteredUser
The registered user of an endpoint
.PARAMETER RegisteredUserUpdateMode
Registered user update options
.PARAMETER UserRelatedJobExecution
User related job options
.PARAMETER IsApplicationUsageTrackingActive
If set to true, application usage tracking is active
.PARAMETER IsEnergyManagementActive
If set the Energy Management is active
.PARAMETER ClientAgentLink
Client agent connection settings
.PARAMETER Uuid
The UUID of an endpoint. Supported format: MMMMMMMM-MMMM-MMMM-MMMMMMMMMMMM. Each «M» stands for one hexadecimal digit
.PARAMETER EntraIdDeviceId
The Entra ID device ID. Consider setting the 'CoManagement' type along with the Entra ID device ID.
.PARAMETER CoManagement
The CoManagement type. Consider setting the Entra ID device ID along with the CoManagement type. <br />None: Not co-managed <br />Intune: Co-managed by Microsoft Intune
.OUTPUTS
 
WindowsEndpointForCreation<PSCustomObject>
#>

function Initialize-bCEndpointsWindowsEndpointForCreation {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${DisplayName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${LogicalGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Comment},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [string]
        ${HostName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Domain},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${PrimaryMAC},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${PrimaryIP},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${PrimarySubnetMask},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${RegisteredUser},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("UseNextLogonUser", "DoNotUseRegisteredUser", "UpdateContinously", "EnterManually")]
        [PSCustomObject]
        ${RegisteredUserUpdateMode},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("Always", "Never", "ForRegisteredUser")]
        [PSCustomObject]
        ${UserRelatedJobExecution},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[bool]]
        ${IsApplicationUsageTrackingActive},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[bool]]
        ${IsEnergyManagementActive},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [PSCustomObject]
        ${ClientAgentLink},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${Uuid},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EntraIdDeviceId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${CoManagement}
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsWindowsEndpointForCreation' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -eq $DisplayName) {
            throw "invalid value for 'DisplayName', 'DisplayName' cannot be null."
        }

        if ($DisplayName.length -gt 255) {
            throw "invalid value for 'DisplayName', the character length must be smaller than or equal to 255."
        }

        if ($DisplayName.length -lt 1) {
            throw "invalid value for 'DisplayName', the character length must be great than or equal to 1."
        }

        if ($null -ne $LogicalGroupId -and -not ($LogicalGroupId -is [string]))
        {
            throw "invalid type for 'LogicalGroupId', must be string or `$null."
        }

        if ($null -ne $Comment -and -not ($Comment -is [string]))
        {
            throw "invalid type for 'Comment', must be string or `$null."
        }

        if ($null -eq $HostName) {
            throw "invalid value for 'HostName', 'HostName' cannot be null."
        }

        if ($HostName.length -lt 1) {
            throw "invalid value for 'HostName', the character length must be great than or equal to 1."
        }

        if ($null -ne $Domain -and -not ($Domain -is [string]))
        {
            throw "invalid type for 'Domain', must be string or `$null."
        }

        if ($null -ne $Domain -and $Domain.length -gt 255) {
            throw "invalid value for 'Domain', the character length must be smaller than or equal to 255."
        }

        if ($null -ne $Domain -and $Domain.length -lt 1) {
            throw "invalid value for 'Domain', the character length must be great than or equal to 1."
        }

        if ($null -ne $PrimaryMAC -and -not ($PrimaryMAC -is [string]))
        {
            throw "invalid type for 'PrimaryMAC', must be string or `$null."
        }

        if ($null -ne $PrimaryIP -and -not ($PrimaryIP -is [string]))
        {
            throw "invalid type for 'PrimaryIP', must be string or `$null."
        }

        if ($null -ne $PrimarySubnetMask -and -not ($PrimarySubnetMask -is [string]))
        {
            throw "invalid type for 'PrimarySubnetMask', must be string or `$null."
        }

        if ($null -ne $RegisteredUser -and -not ($RegisteredUser -is [string]))
        {
            throw "invalid type for 'RegisteredUser', must be string or `$null."
        }

        if ($null -ne $RegisteredUser -and $RegisteredUser.length -gt 255) {
            throw "invalid value for 'RegisteredUser', the character length must be smaller than or equal to 255."
        }

        if ($null -ne $Uuid -and -not ($Uuid -is [string]))
        {
            throw "invalid type for 'Uuid', must be string or `$null."
        }

        if ($null -ne $EntraIdDeviceId -and -not ($EntraIdDeviceId -is [string]))
        {
            throw "invalid type for 'EntraIdDeviceId', must be string or `$null."
        }

        if ($null -ne $CoManagement -and -not ($CoManagement -is [string]))
        {
            throw "invalid type for 'CoManagement', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "displayName" = ${DisplayName}
            "logicalGroupId" = ${LogicalGroupId}
            "comment" = ${Comment}
            "hostName" = ${HostName}
            "domain" = ${Domain}
            "primaryMAC" = ${PrimaryMAC}
            "primaryIP" = ${PrimaryIP}
            "primarySubnetMask" = ${PrimarySubnetMask}
            "registeredUser" = ${RegisteredUser}
            "registeredUserUpdateMode" = ${RegisteredUserUpdateMode}
            "userRelatedJobExecution" = ${UserRelatedJobExecution}
            "isApplicationUsageTrackingActive" = ${IsApplicationUsageTrackingActive}
            "isEnergyManagementActive" = ${IsEnergyManagementActive}
            "clientAgentLink" = ${ClientAgentLink}
            "uuid" = ${Uuid}
            "entraIdDeviceId" = ${EntraIdDeviceId}
            "coManagement" = ${CoManagement}
        }


        return $PSO
    }
}

#
# bConnect Endpoints API
# <p>Endpoints are the main objects within the baramundi Management Suite (see <a target=""_blank"" href=""https://docs.baramundi.com/helpsetid=m_t_environment&externalid=t_environment"" rel=""noopener noreferrer"" class=""link""><span class=""url""> documentation</span></a>). These can be manually created or automatically discovered by network scans or via Active Directory synchronization. The methods offered here provide support for manual creation of endpoints and their enrollment. Afterwards the endpoints are ready to be managed by the baramundi Management Suite and jobs can be distributed to these endpoints to gather information or execute logic for the various modules of the baramundi Management Suite (e.g. Compliance, Defense Control, Update Management, etc.).</p> The bConnect V2 PowerShell module is available from the <a target=""_blank"" href=""https://www.powershellgallery.com/packages/bConnectV2"" rel=""noopener noreferrer"" class=""link""><span class=""url"">PowerShell Gallery</span></a>.
# Version: 2.0

<#
.SYNOPSIS
 
No summary available.
 
.DESCRIPTION
 
Sets mode of the endpoint to Internet, deletes its stored public key (if existing) and generates / overwrites the enrollment data of this endpoint.
 
.PARAMETER EnrollmentMailAddress
By specifying an e-mail recipient, you can also have a corresponding e-mail with the enrollment information sent automatically.
.PARAMETER EmailLanguageId
Sets which e-mail template is used for the enrollment message. Default available mail templates are “de-DE” and “en-US”. If the email language is not specified, the English template(“en-US”) will be used.
.PARAMETER Sync
Specifies whether to wait until the email has been successfully sent to the configured SMTP server (default: false)
.OUTPUTS
 
WindowsEnrollmentRequest<PSCustomObject>
#>

function Initialize-bCEndpointsWindowsEnrollmentRequest {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EnrollmentMailAddress},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [object]
        ${EmailLanguageId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [bool]
        ${Sync} = $false
    )

    Process {
        'Creating PSCustomObject: bConnectV2.Endpoints => bCEndpointsWindowsEnrollmentRequest' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        if ($null -ne $EnrollmentMailAddress -and -not ($EnrollmentMailAddress -is [string]))
        {
            throw "invalid type for 'EnrollmentMailAddress', must be string or `$null."
        }

        if ($null -ne $EmailLanguageId -and -not ($EmailLanguageId -is [string]))
        {
            throw "invalid type for 'EmailLanguageId', must be string or `$null."
        }


        $PSO = [PSCustomObject]@{
            "enrollmentMailAddress" = ${EnrollmentMailAddress}
            "emailLanguageId" = ${EmailLanguageId}
            "sync" = ${Sync}
        }


        return $PSO
    }
}


# SIG # Begin signature block
# MIIoYgYJKoZIhvcNAQcCoIIoUzCCKE8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBslKRb1Qi7cB+o
# BhcPJptizOLb4RP47USodUrSthz5OKCCIV8wggWNMIIEdaADAgECAhAOmxiO+dAt
# 5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBa
# Fw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD
# ZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
# ggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3E
# MB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKy
# unWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsF
# xl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU1
# 5zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJB
# MtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObUR
# WBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6
# nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxB
# YKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5S
# UUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+x
# q4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIB
# NjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwP
# TzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMC
# AYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
# Y2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv
# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0
# aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENB
# LmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0Nc
# Vec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnov
# Lbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65Zy
# oUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFW
# juyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPF
# mCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9z
# twGpn1eqXijiuZQwggawMIIEmKADAgECAhAIrUCyYNKcTJ9ezam9k67ZMA0GCSqG
# SIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx
# GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRy
# dXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0zNjA0MjgyMzU5NTlaMGkx
# CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4
# RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEzODQg
# MjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVtC9C0Cit
# eLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0JAfhS0/TeEP0F9ce2vnS
# 1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJrQ5qZ8sU7H/Lvy0daE6ZM
# swEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhFLqGfLOEYwhrMxe6TSXBC
# Mo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+FLEikVoQ11vkunKoAFdE3
# /hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh3K3kGKDYwSNHR7OhD26j
# q22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJwZPt4bRc4G/rJvmM1bL5
# OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQayg9Rc9hUZTO1i4F4z8ujo
# 7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbIYViY9XwCFjyDKK05huzU
# tw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchApQfDVxW0mdmgRQRNYmtwm
# KwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRroOBl8ZhzNeDhFMJlP/2NP
# TLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IBWTCCAVUwEgYDVR0TAQH/
# BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHwYDVR0j
# BBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1Ud
# JQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0
# cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0
# cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8E
# PDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVz
# dGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAEDMAgGBmeBDAEEATANBgkq
# hkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql+Eg08yy25nRm95RysQDK
# r2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFFUP2cvbaF4HZ+N3HLIvda
# qpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1hmYFW9snjdufE5BtfQ/g+
# lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3RywYFzzDaju4ImhvTnhOE7a
# brs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5UbdldAhQfQDN8A+KVssIhdXNS
# y0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw8MzK7/0pNVwfiThV9zeK
# iwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnPLqR0kq3bPKSchh/jwVYb
# KyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatEQOON8BUozu3xGFYHKi8Q
# xAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bnKD+sEq6lLyJsQfmCXBVm
# zGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQjiWQ1tygVQK+pKHJ6l/aCn
# HwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbqyK+p/pQd52MbOoZWeE4w
# gga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmGMA0GCSqGSIb3DQEBCwUAMGIx
# CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
# dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBH
# NDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5NTlaMGkxCzAJBgNVBAYTAlVT
# MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1
# c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBTSEEyNTYgMjAyNSBDQTEwggIi
# MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0eDHTCphBcr48RsAcrHXbo0Zo
# dLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+RuwOnPhof6pvF4uGjwjqNjfEvUi
# 6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4Bt0mAxAHeHYNnQxqXmRinvuNg
# xVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1UkxBvMgEdgkFiDNYiOTx4OtiF
# cMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTcaarps0wjUjsZvkgFkriK9tUKJ
# m/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zbCclF83bRVFLeGkuAhHiGPMvS
# GmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnGpTXiUOeSLsJygoLPp66bkDX1
# ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/AMOMCZIVNSaz7BX8VtYGqLt9
# MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v5ydPpOjL6s36czwzsucuoKs7
# Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoiwOrUG2ZdSoQbU2rMkpLiQ6bG
# RinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm2qA+sdFUeEY0qVjPKOWug/G6
# X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgwBgEB/wIBADAd
# BgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04wHwYDVR0jBBgwFoAU7NfjgtJx
# XWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUF
# BwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGln
# aWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5j
# b20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJo
# dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNy
# bDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJKoZIhvcNAQEL
# BQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Qh8WIGjB/T8ObXAZz8OjuhUxj
# aaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3YTj+IQhQE7jU/kXjjytJgnn0
# hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQwr8Myb9rEVKChHyfpzee5kH0
# F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/wdG2th9y1IsA0QF8dTXqvcnT
# mpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81hjajV/gxdEkMx1NKU4uHQcKf
# ZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00TYr2Lr3ty9qIijanrUR3anzE
# wlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNjqFzeGxcytL5TTLL4ZaoBdqbh
# OhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0cuJG7uEBYTptMSbhdhGQDpOX
# gpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9sC+NJpud/v4+7RWsWCiKi9EO
# LLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0LckTetiSuEtQvLsNz3Qbp7wG
# WqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2tszWkPZPubdcMIIG7TCCBNWg
# AwIBAgIQCoDvGEuN8QWC0cR2p5V0aDANBgkqhkiG9w0BAQsFADBpMQswCQYDVQQG
# EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0
# IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0Ex
# MB4XDTI1MDYwNDAwMDAwMFoXDTM2MDkwMzIzNTk1OVowYzELMAkGA1UEBhMCVVMx
# FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBTSEEy
# NTYgUlNBNDA5NiBUaW1lc3RhbXAgUmVzcG9uZGVyIDIwMjUgMTCCAiIwDQYJKoZI
# hvcNAQEBBQADggIPADCCAgoCggIBANBGrC0Sxp7Q6q5gVrMrV7pvUf+GcAoB38o3
# zBlCMGMyqJnfFNZx+wvA69HFTBdwbHwBSOeLpvPnZ8ZN+vo8dE2/pPvOx/Vj8Tch
# TySA2R4QKpVD7dvNZh6wW2R6kSu9RJt/4QhguSssp3qome7MrxVyfQO9sMx6ZAWj
# FDYOzDi8SOhPUWlLnh00Cll8pjrUcCV3K3E0zz09ldQ//nBZZREr4h/GI6Dxb2Uo
# yrN0ijtUDVHRXdmncOOMA3CoB/iUSROUINDT98oksouTMYFOnHoRh6+86Ltc5zjP
# KHW5KqCvpSduSwhwUmotuQhcg9tw2YD3w6ySSSu+3qU8DD+nigNJFmt6LAHvH3KS
# uNLoZLc1Hf2JNMVL4Q1OpbybpMe46YceNA0LfNsnqcnpJeItK/DhKbPxTTuGoX7w
# JNdoRORVbPR1VVnDuSeHVZlc4seAO+6d2sC26/PQPdP51ho1zBp+xUIZkpSFA8vW
# doUoHLWnqWU3dCCyFG1roSrgHjSHlq8xymLnjCbSLZ49kPmk8iyyizNDIXj//cOg
# rY7rlRyTlaCCfw7aSUROwnu7zER6EaJ+AliL7ojTdS5PWPsWeupWs7NpChUk555K
# 096V1hE0yZIXe+giAwW00aHzrDchIc2bQhpp0IoKRR7YufAkprxMiXAJQ1XCmnCf
# gPf8+3mnAgMBAAGjggGVMIIBkTAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTkO/zy
# Me39/dfzkXFjGVBDz2GM6DAfBgNVHSMEGDAWgBTvb1NK6eQGfHrK4pBW9i/USezL
# TjAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwgZUGCCsG
# AQUFBwEBBIGIMIGFMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5j
# b20wXQYIKwYBBQUHMAKGUWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdp
# Q2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQwOTZTSEEyNTYyMDI1Q0ExLmNy
# dDBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln
# aUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0MDk2U0hBMjU2MjAyNUNBMS5j
# cmwwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEB
# CwUAA4ICAQBlKq3xHCcEua5gQezRCESeY0ByIfjk9iJP2zWLpQq1b4URGnwWBdEZ
# D9gBq9fNaNmFj6Eh8/YmRDfxT7C0k8FUFqNh+tshgb4O6Lgjg8K8elC4+oWCqnU/
# ML9lFfim8/9yJmZSe2F8AQ/UdKFOtj7YMTmqPO9mzskgiC3QYIUP2S3HQvHG1FDu
# +WUqW4daIqToXFE/JQ/EABgfZXLWU0ziTN6R3ygQBHMUBaB5bdrPbF6MRYs03h4o
# bEMnxYOX8VBRKe1uNnzQVTeLni2nHkX/QqvXnNb+YkDFkxUGtMTaiLR9wjxUxu2h
# ECZpqyU1d0IbX6Wq8/gVutDojBIFeRlqAcuEVT0cKsb+zJNEsuEB7O7/cuvTQasn
# M9AWcIQfVjnzrvwiCZ85EE8LUkqRhoS3Y50OHgaY7T/lwd6UArb+BOVAkg2oOvol
# /DJgddJ35XTxfUlQ+8Hggt8l2Yv7roancJIFcbojBcxlRcGG0LIhp6GvReQGgMgY
# xQbV1S3CrWqZzBt1R9xJgKf47CdxVRd/ndUlQ05oxYy2zRWVFjF7mcr4C34Mj3oc
# CVccAvlKV9jEnstrniLvUxxVZE/rptb7IRE2lskKPIJgbaP5t2nGj/ULLi49xTcB
# ZU8atufk+EMF/cWuiC7POGT75qaL6vdCvHlshtjdNXOCIUjsarfNZzCCB20wggVV
# oAMCAQICEAeWORKotX7L33/aMY+MKvMwDQYJKoZIhvcNAQELBQAwaTELMAkGA1UE
# BhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2Vy
# dCBUcnVzdGVkIEc0IENvZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENB
# MTAeFw0yNDEyMDMwMDAwMDBaFw0yODAxMDcyMzU5NTlaMHUxCzAJBgNVBAYTAkRF
# MQ8wDQYDVQQIEwZCYXllcm4xETAPBgNVBAcTCEF1Z3NidXJnMSAwHgYDVQQKExdi
# YXJhbXVuZGkgc29mdHdhcmUgR21iSDEgMB4GA1UEAxMXYmFyYW11bmRpIHNvZnR3
# YXJlIEdtYkgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC+S6cECzQO
# u8A60a+OXaQRRhXyPzkiZCDqO+mh7CBJg5vF3CLA6JMhWwSAUsCfmKqL2Eu2biUK
# CgVnhRgZboZvIUTF4VuOfOOwUGduJ6Z7Y1Fcq7m0hbaRZy0a7YI6Bj/BcOqFQHOT
# +XfR+TXOLx1oelgJAfo5xSgCKvg7K/LVYN/nkuyY+tz22Xpu3s6oenFNpVz2tg+l
# I4wD7rxwuZjkm8Jxn1JvOHbJndOdHYmtaCp+ui1EqU2upHJrDjdd1D+tIiRhQEMs
# j9NUrQMR5BdmWrUyRBo0QcP/Tr7QUMjYTWPTLXYkKT+4ucVqCUfcI2bgmsmLRsbs
# o35i5QbkDoeim2ABLe+tfTgRZ0kO3ksMLwzqPX/TcZsIrUPKSKczVZ49rSThiKmD
# 1kdA208IgixWFJt8ZEfz48gCBixLK2ZZOMAmuaWkwFqk2LTpsaDkctt9xdCCT5l5
# DS3+xPIs27dA/qUBSQ5br73n30YbypEoMr37mBKhlhvciIECtbXrcFyYwGLaL/VR
# XxHEh0Ww40ZEZRllo+XZAFyE7nSzG2k9v/ojlZ2WHnLWCcSPssdx1JGJK6ifmE21
# D/Z3S5mM3xQ9ygj99DYjihRAUHLr4nxtz51EiBw0/0iiHlCDlBmgfb3Qxgtkoo3p
# al8MO9AdRGZI4xbNayEr70dYTkAM4Cqj+wIDAQABo4ICAzCCAf8wHwYDVR0jBBgw
# FoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0OBBYEFLv54WJIjznuTWLFbjBC
# Lq4QqTnEMD4GA1UdIAQ3MDUwMwYGZ4EMAQQBMCkwJwYIKwYBBQUHAgEWG2h0dHA6
# Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAww
# CgYIKwYBBQUHAwMwgbUGA1UdHwSBrTCBqjBToFGgT4ZNaHR0cDovL2NybDMuZGln
# aWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hB
# Mzg0MjAyMUNBMS5jcmwwU6BRoE+GTWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9E
# aWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEu
# Y3JsMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3Au
# ZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAChlBodHRwOi8vY2FjZXJ0cy5kaWdpY2Vy
# dC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQy
# MDIxQ0ExLmNydDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQA+bqWjJhzW
# +fzGu1RdCjuiQ3Cb0IKcwgvyaa9ggYBB2Y+oeixw1KlNTWXE6jXP33B5qWEexwSo
# d24vmOSFeA6XoINPjVewXxW/oTa8rg/v2Gho056msV6pevg5yb4wTKgRNseP+/Aa
# IYGijiQ9PpQpR50S2h55oZOKcQsLGg9yndxmWbjnHmzWPeML4nBoeN8rIlwO2wjC
# nEKpNqK4yfcm2vLavE0nmpTRGpA7qSK0Ao2hU8vlqNevsWo4kdrRbqvkiyYH6DSi
# iwYs9aQrtIRn1dsncX72I3wEf360ljy07aUrVb6pxRTxEDChctqs0oqVWv8f6dPo
# OV9iqnHaBlDMu/bUIvAlmzpmbvsQykuDZdZIe7RGCt51niE2ToSvAmAnxGE0jitC
# 877Uh+XgK/3/GBL75WN51ojm1JscY/yhiZALvFjGFjqDuoFe3lvEFMnZIOSoSvVX
# cj+Bs95hS/gq3oRRwFor+05oUV4WbYslY6TH3xAkoiOUnF3BJzgugIsMIYThZmgZ
# JxuFdHQxJafXEGYoJLU01tgjsAQzfac3ccnrcbNAVDPs9sN8v+CjHJrqLiaSfUBa
# 8FjcuVvHeCqRcmyvMhDTPnMsxAzy5mntbaej5N9OA43Ifh9H6SikzmZGxeJqwF6w
# +IE7qyRjdrqMNuNVNC25WbAzNWCvqE38sjGCBlkwggZVAgEBMH0waTELMAkGA1UE
# BhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2Vy
# dCBUcnVzdGVkIEc0IENvZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENB
# MQIQB5Y5Eqi1fsvff9oxj4wq8zANBglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3
# AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
# AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCBC7u/SGRMx
# 2K/1ClG2eVrg+FwZmSYc85zFEfLOOIFwMTANBgkqhkiG9w0BAQEFAASCAgCAx+cp
# 9jJxqn0XEDyqkRIvKnSPb7wkbCGtxZ87pf5T6dHsYufQ2nbiO7aU+SM1y+Gb19jm
# vuVfThISo/7OYfXaJkfykO8D5DcOx38S35QFXfj8NHu+Mkb/trW1i5R8PhBc6uF9
# Qapl0HCMcSOHoSNCKfoBFS24xBgFUR3bYDQ/MOY09ChV7CqNkwuZQ8jAda/g6Mvk
# IrGMFrj2mTHzv/WepKRW9bR/DoP/TeeD4Ku8JkYJ7DKcmFv5/tRTwnA/ZBVpKgEO
# ZjlSQ6thdSsZ3tbwHkmxsMt+hx5VXodGfv0hW5M/UFEUvJdXSWbZ8DRoqEh8yUml
# nQ0kKajYaQWwdJ2Zy8TOW1yAwLoQAs25LHcYpRy69U5pmCevMM+uaxFrt6ANZVc7
# grrQigRpDPa7PnhBGETWQiikSmHWqWlvI3vy3o7bzuTAtyPanlHrTcdj69QsBwHm
# sqYg70ZWwSNU8J6zU4axtj3OMdWAZVr31LR0e4bgxB6ze5NSuumNIELd63dLh/kH
# N4Dx+iiQ28rJQM9QZ+3iZp4qo9HHloBn+YqeBqNnCy03nSknDycId+7J2DuWTDNJ
# yTk9mr37GC2xKMXf+r5y/dwZxZivc/VEaezWB043fio6MzJpU9N8WBQqzY9pQoLr
# Zc1Pk2JYvRfh5ZkT5LWsAvpswFpAezD/sUsukaGCAyYwggMiBgkqhkiG9w0BCQYx
# ggMTMIIDDwIBATB9MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcg
# UlNBNDA5NiBTSEEyNTYgMjAyNSBDQTECEAqA7xhLjfEFgtHEdqeVdGgwDQYJYIZI
# AWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJ
# BTEPFw0yNjA1MTIwODI3MTRaMC8GCSqGSIb3DQEJBDEiBCDFvZ4ryfKPsvqIeo+z
# n+cCMgapa5fGbFiW445CiGFA/TANBgkqhkiG9w0BAQEFAASCAgAi4XwDmQCEjQ3u
# 5nWz/cvU7LucyUh4mF9ONN9KopBWMUA2+ShuIu6FU+7RYlMfdtOXVMVOc1e0kwUG
# o3irYUVOERYzmbZvYfuMi1oNimv34ZQNaX8qCuLMVpCd/uwSPPm46A1im2tpldiz
# PQRbGKCQibtZIy/5MddcjmAk4K3bixprYRFBiN3Eidy3Ms7zopLwny+wfuzqf3kD
# QmMHEbrnRVpv0sWOLtYMyaT5agG81jf8QWwQe8jdj6LR2m2/R/ixKMTNifUod02+
# 2YNWGRJKZclLBX2R3locqf3leuVeGlVT5BnAxyVqx2gDUU6G5jON7Nb1UooKdBvl
# kg3FmFkBNhOCcB02REUj0NU4noXYGRHuxMLr3oMMDwwsmdIoIq30tm3UysKdc0YW
# ZhZr6uaYk4tGXuWrkqSUsuhu2LClHQcaqTNPJe4QYdu4O9jVvxTiHp6ekc4ztjCj
# lU2JN4+SF6hjPmmYHIWLQErZklunHTTNvZXuww2S/OZJcV7WZrvvCNttDsVuir5H
# ptrbBP9JxSvHcMy4tbQiqYCz7TmbhMmROIKjarP0TW/R8zxN9WJtkgfmUXugVt+C
# 6NwjIpLCLwBUsFVs0RaSoJF4/NjSZDe4l2nziX4a9NPus/Hptpr9SDNIehThciy+
# RfA5Urrr/Vsb41bEI617J3zeBXX0dg==
# SIG # End signature block