Modules/bConnectV2.Endpoints/Api/BCEndpointsWindowsEndpointsApi.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
 
Creates a windows endpoint
 
.DESCRIPTION
 
No description available.
 
.PARAMETER WindowsEndpointForCreation
The Windows endpoint to be created Initialize in PowerShell with `Initialize-bCEndpointsWindowsEndpointForCreation`
 
.OUTPUTS
 
WindowsEndpoint
#>

function New-bCEndpointsWindowsEndpoint {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [PSCustomObject]
        ${WindowsEndpointForCreation}
    )

    Process {
        'Calling method: New-bCEndpointsWindowsEndpoint' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        # HTTP header 'Content-Type'
        $LocalVarContentTypes = @('application/json')

        $LocalVarUri = '/v2.0/WindowsEndpoints'

        if (!$WindowsEndpointForCreation) {
            throw "Error! The required parameter `WindowsEndpointForCreation` missing when calling createWindowsEndpoint."
        }

        $LocalVarBodyParameter = $WindowsEndpointForCreation | ConvertTo-Json -Depth 100

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        # single request
        $ApiResult = Invoke-bCEndpointsApiClient -Method 'POST' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpoint" `
                                -IsBodyNullable $false

        return $ApiResult["Response"]
    }
}

<#
.SYNOPSIS
 
Deletes an endpoint by id
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Id
No description available.
 
.OUTPUTS
 
None
#>

function Remove-bCEndpointsWindowsEndpoint {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Id}
    )

    Process {
        'Calling method: Remove-bCEndpointsWindowsEndpoint' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/WindowsEndpoints/{id}'
        if (!$Id) {
            throw "Error! The required parameter `Id` missing when calling deleteWindowsEndpoint."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $Id
        $LocalVarUri = $LocalVarUri.replace('{id}', $encodedValue)

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        # single request
        $ApiResult = Invoke-bCEndpointsApiClient -Method 'DELETE' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "" `
                                -IsBodyNullable $false

        return $ApiResult["Response"]
    }
}

<#
.SYNOPSIS
 
Gets a windows endpoint by id
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Id
No description available.
 
.OUTPUTS
 
WindowsEndpoint
#>

function Get-bCEndpointsWindowsEndpoint {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Id}
    )

    Process {
        'Calling method: Get-bCEndpointsWindowsEndpoint' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/WindowsEndpoints/{id}'
        if (!$Id) {
            throw "Error! The required parameter `Id` missing when calling getWindowsEndpoint."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $Id
        $LocalVarUri = $LocalVarUri.replace('{id}', $encodedValue)

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        # single request
        $ApiResult = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpoint" `
                                -IsBodyNullable $false

        return $ApiResult["Response"]
    }
}

<#
.SYNOPSIS
 
Gets all windows endpoints
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are DisplayName, HostName, OperatingSystem, LastUser and LastSeen (e.g. displayName asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are DisplayName, HostName, PrimaryIP, PrimaryMAC, LogicalMAC, OSVersionString, OSVersionText, SerialNumber, Comments and UUID.
 
.PARAMETER Domain
Filters result by matching the exact value against Domain.
 
.PARAMETER EntraIdDeviceId
Filters result by matching the exact value against the deviceId from EntraId.
 
.PARAMETER DisplayName
Filters result by matching the exact value against DisplayName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.PARAMETER HostName
Filters result by matching the exact value against HostName.
 
.OUTPUTS
 
WindowsEndpointPagedList
#>

function Get-bCEndpointsWindowsEndpoints {
    [CmdletBinding(DefaultParameterSetName='SinglePages', PositionalBinding=$false)]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Domain},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${EntraIdDeviceId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${DisplayName},
        [Parameter(ParameterSetName='SinglePages', ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${HostName}
    )

    Process {
        'Calling method: Get-bCEndpointsWindowsEndpoints' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/WindowsEndpoints'

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Domain) {
            $LocalVarQueryParameters['Domain'] = $Domain
        }

        if ($EntraIdDeviceId) {
            $LocalVarQueryParameters['EntraIdDeviceId'] = $EntraIdDeviceId
        }

        if ($DisplayName) {
            $LocalVarQueryParameters['DisplayName'] = $DisplayName
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        if ($HostName) {
            $LocalVarQueryParameters['HostName'] = $HostName
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 0
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 0) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -lt $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Gets all windows endpoints assigned to a specific registered user
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER AdUserId
No description available.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are DisplayName, HostName, OperatingSystem, LastUser and LastSeen (e.g. displayName asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are DisplayName, HostName, PrimaryIP, PrimaryMAC, LogicalMAC, OSVersionString, OSVersionText, SerialNumber, Comments and UUID.
 
.PARAMETER Domain
Filters result by matching the exact value against Domain.
 
.PARAMETER EntraIdDeviceId
Filters result by matching the exact value against the deviceId from EntraId.
 
.PARAMETER DisplayName
Filters result by matching the exact value against DisplayName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.PARAMETER HostName
Filters result by matching the exact value against HostName.
 
.OUTPUTS
 
WindowsEndpointPagedList
#>

function Get-bCEndpointsWindowsEndpointsByADObjectId {
    [CmdletBinding(DefaultParameterSetName='SinglePages', PositionalBinding=$false)]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${AdUserId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Domain},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${EntraIdDeviceId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${DisplayName},
        [Parameter(ParameterSetName='SinglePages', ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${HostName}
    )

    Process {
        'Calling method: Get-bCEndpointsWindowsEndpointsByADObjectId' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/ADUsers/{adUserId}/WindowsEndpoints'
        if (!$AdUserId) {
            throw "Error! The required parameter `AdUserId` missing when calling getWindowsEndpointsByADObjectId."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $AdUserId
        $LocalVarUri = $LocalVarUri.replace('{adUserId}', $encodedValue)

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Domain) {
            $LocalVarQueryParameters['Domain'] = $Domain
        }

        if ($EntraIdDeviceId) {
            $LocalVarQueryParameters['EntraIdDeviceId'] = $EntraIdDeviceId
        }

        if ($DisplayName) {
            $LocalVarQueryParameters['DisplayName'] = $DisplayName
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        if ($HostName) {
            $LocalVarQueryParameters['HostName'] = $HostName
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 0
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 0) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -lt $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Gets all windows endpoints contained by a dynamic group
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER DynamicGroupId
No description available.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are DisplayName, HostName, OperatingSystem, LastUser and LastSeen (e.g. displayName asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are DisplayName, HostName, PrimaryIP, PrimaryMAC, LogicalMAC, OSVersionString, OSVersionText, SerialNumber, Comments and UUID.
 
.PARAMETER Domain
Filters result by matching the exact value against Domain.
 
.PARAMETER EntraIdDeviceId
Filters result by matching the exact value against the deviceId from EntraId.
 
.PARAMETER DisplayName
Filters result by matching the exact value against DisplayName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.PARAMETER HostName
Filters result by matching the exact value against HostName.
 
.OUTPUTS
 
WindowsEndpointPagedList
#>

function Get-bCEndpointsWindowsEndpointsByDynamicGroupId {
    [CmdletBinding(DefaultParameterSetName='SinglePages', PositionalBinding=$false)]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${DynamicGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Domain},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${EntraIdDeviceId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${DisplayName},
        [Parameter(ParameterSetName='SinglePages', ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${HostName}
    )

    Process {
        'Calling method: Get-bCEndpointsWindowsEndpointsByDynamicGroupId' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/DynamicGroups/{dynamicGroupId}/WindowsEndpoints'
        if (!$DynamicGroupId) {
            throw "Error! The required parameter `DynamicGroupId` missing when calling getWindowsEndpointsByDynamicGroupId."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $DynamicGroupId
        $LocalVarUri = $LocalVarUri.replace('{dynamicGroupId}', $encodedValue)

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Domain) {
            $LocalVarQueryParameters['Domain'] = $Domain
        }

        if ($EntraIdDeviceId) {
            $LocalVarQueryParameters['EntraIdDeviceId'] = $EntraIdDeviceId
        }

        if ($DisplayName) {
            $LocalVarQueryParameters['DisplayName'] = $DisplayName
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        if ($HostName) {
            $LocalVarQueryParameters['HostName'] = $HostName
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 0
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 0) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -lt $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Gets all windows endpoints contained by a logical group
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER LogicalGroupId
No description available.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are DisplayName, HostName, OperatingSystem, LastUser and LastSeen (e.g. displayName asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are DisplayName, HostName, PrimaryIP, PrimaryMAC, LogicalMAC, OSVersionString, OSVersionText, SerialNumber, Comments and UUID.
 
.PARAMETER Domain
Filters result by matching the exact value against Domain.
 
.PARAMETER EntraIdDeviceId
Filters result by matching the exact value against the deviceId from EntraId.
 
.PARAMETER DisplayName
Filters result by matching the exact value against DisplayName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.PARAMETER HostName
Filters result by matching the exact value against HostName.
 
.PARAMETER IncludeSubfolders
No description available.
 
.OUTPUTS
 
WindowsEndpointPagedList
#>

function Get-bCEndpointsWindowsEndpointsByLogicalGroupId {
    [CmdletBinding(DefaultParameterSetName='SinglePages', PositionalBinding=$false)]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${LogicalGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Domain},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${EntraIdDeviceId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${DisplayName},
        [Parameter(ParameterSetName='SinglePages', ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${HostName},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Boolean]]
        ${IncludeSubfolders}
    )

    Process {
        'Calling method: Get-bCEndpointsWindowsEndpointsByLogicalGroupId' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/LogicalGroups/{logicalGroupId}/WindowsEndpoints'
        if (!$LogicalGroupId) {
            throw "Error! The required parameter `LogicalGroupId` missing when calling getWindowsEndpointsByLogicalGroupId."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $LogicalGroupId
        $LocalVarUri = $LocalVarUri.replace('{logicalGroupId}', $encodedValue)

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Domain) {
            $LocalVarQueryParameters['Domain'] = $Domain
        }

        if ($EntraIdDeviceId) {
            $LocalVarQueryParameters['EntraIdDeviceId'] = $EntraIdDeviceId
        }

        if ($DisplayName) {
            $LocalVarQueryParameters['DisplayName'] = $DisplayName
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        if ($HostName) {
            $LocalVarQueryParameters['HostName'] = $HostName
        }

        if ($IncludeSubfolders) {
            $LocalVarQueryParameters['includeSubfolders'] = $IncludeSubfolders
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 0
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 0) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -lt $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Gets all windows endpoints contained by a static group
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER StaticGroupId
No description available.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are DisplayName, HostName, OperatingSystem, LastUser and LastSeen (e.g. displayName asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are DisplayName, HostName, PrimaryIP, PrimaryMAC, LogicalMAC, OSVersionString, OSVersionText, SerialNumber, Comments and UUID.
 
.PARAMETER Domain
Filters result by matching the exact value against Domain.
 
.PARAMETER EntraIdDeviceId
Filters result by matching the exact value against the deviceId from EntraId.
 
.PARAMETER DisplayName
Filters result by matching the exact value against DisplayName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.PARAMETER HostName
Filters result by matching the exact value against HostName.
 
.OUTPUTS
 
WindowsEndpointPagedList
#>

function Get-bCEndpointsWindowsEndpointsByStaticGroupId {
    [CmdletBinding(DefaultParameterSetName='SinglePages', PositionalBinding=$false)]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${StaticGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Domain},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${EntraIdDeviceId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${DisplayName},
        [Parameter(ParameterSetName='SinglePages', ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${HostName}
    )

    Process {
        'Calling method: Get-bCEndpointsWindowsEndpointsByStaticGroupId' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/StaticGroups/{staticGroupId}/WindowsEndpoints'
        if (!$StaticGroupId) {
            throw "Error! The required parameter `StaticGroupId` missing when calling getWindowsEndpointsByStaticGroupId."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $StaticGroupId
        $LocalVarUri = $LocalVarUri.replace('{staticGroupId}', $encodedValue)

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Domain) {
            $LocalVarQueryParameters['Domain'] = $Domain
        }

        if ($EntraIdDeviceId) {
            $LocalVarQueryParameters['EntraIdDeviceId'] = $EntraIdDeviceId
        }

        if ($DisplayName) {
            $LocalVarQueryParameters['DisplayName'] = $DisplayName
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        if ($HostName) {
            $LocalVarQueryParameters['HostName'] = $HostName
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 0
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 0) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -lt $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Gets all windows endpoints contained by a universal dynamic group
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER UniversalDynamicGroupId
No description available.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are DisplayName, HostName, OperatingSystem, LastUser and LastSeen (e.g. displayName asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are DisplayName, HostName, PrimaryIP, PrimaryMAC, LogicalMAC, OSVersionString, OSVersionText, SerialNumber, Comments and UUID.
 
.PARAMETER Domain
Filters result by matching the exact value against Domain.
 
.PARAMETER EntraIdDeviceId
Filters result by matching the exact value against the deviceId from EntraId.
 
.PARAMETER DisplayName
Filters result by matching the exact value against DisplayName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.PARAMETER HostName
Filters result by matching the exact value against HostName.
 
.OUTPUTS
 
WindowsEndpointPagedList
#>

function Get-bCEndpointsWindowsEndpointsByUniversalDynamicGroupId {
    [CmdletBinding(DefaultParameterSetName='SinglePages', PositionalBinding=$false)]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${UniversalDynamicGroupId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Domain},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${EntraIdDeviceId},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${DisplayName},
        [Parameter(ParameterSetName='SinglePages', ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize},
        [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${HostName}
    )

    Process {
        'Calling method: Get-bCEndpointsWindowsEndpointsByUniversalDynamicGroupId' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/UniversalDynamicGroups/{universalDynamicGroupId}/WindowsEndpoints'
        if (!$UniversalDynamicGroupId) {
            throw "Error! The required parameter `UniversalDynamicGroupId` missing when calling getWindowsEndpointsByUniversalDynamicGroupId."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $UniversalDynamicGroupId
        $LocalVarUri = $LocalVarUri.replace('{universalDynamicGroupId}', $encodedValue)

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Domain) {
            $LocalVarQueryParameters['Domain'] = $Domain
        }

        if ($EntraIdDeviceId) {
            $LocalVarQueryParameters['EntraIdDeviceId'] = $EntraIdDeviceId
        }

        if ($DisplayName) {
            $LocalVarQueryParameters['DisplayName'] = $DisplayName
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        if ($HostName) {
            $LocalVarQueryParameters['HostName'] = $HostName
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 0
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 0) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -lt $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCEndpointsApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpointPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Provides functionality to trigger enrollment state of a Windows endpoint. This means the endpoint will be set to Internet mode, the public key (if existing) is deleted and the enrollment data is generated / overwritten. By specifying an e-mail recipient, you can also have a corresponding e-mail with the enrollment information sent automatically.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Id
No description available.
 
.PARAMETER WindowsEnrollmentRequest
The information required to request enrollment for the specified Windows endpoint. Initialize in PowerShell with `Initialize-bCEndpointsWindowsEnrollmentRequest`
 
.OUTPUTS
 
WindowsEnrollmentResponse
#>

function Start-bCEndpointsWindowsEndpointEnrollment {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Id},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [PSCustomObject]
        ${WindowsEnrollmentRequest}
    )

    Process {
        'Calling method: Start-bCEndpointsWindowsEndpointEnrollment' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        # HTTP header 'Content-Type'
        $LocalVarContentTypes = @('application/json')

        $LocalVarUri = '/v2.0/WindowsEndpoints/{id}/StartEnrollment'
        if (!$Id) {
            throw "Error! The required parameter `Id` missing when calling startWindowsEndpointEnrollment."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $Id
        $LocalVarUri = $LocalVarUri.replace('{id}', $encodedValue)

        if (!$WindowsEnrollmentRequest) {
            throw "Error! The required parameter `WindowsEnrollmentRequest` missing when calling startWindowsEndpointEnrollment."
        }

        $LocalVarBodyParameter = $WindowsEnrollmentRequest | ConvertTo-Json -Depth 100

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        # single request
        $ApiResult = Invoke-bCEndpointsApiClient -Method 'POST' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEnrollmentResponse" `
                                -IsBodyNullable $false

        return $ApiResult["Response"]
    }
}

<#
.SYNOPSIS
 
Provides functionality to trigger the installation and the enrollment of the baramundi Management Agent on a Windows endpoint, which is managed with Intune.Co-management must be configured for this operation.
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Id
No description available.
 
.OUTPUTS
 
Boolean
#>

function Invoke-bCEndpointsTriggerInstallationViaIntune {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Id}
    )

    Process {
        'Calling method: Invoke-bCEndpointsTriggerInstallationViaIntune' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/WindowsEndpoints/{id}/TriggerInstallationViaIntune'
        if (!$Id) {
            throw "Error! The required parameter `Id` missing when calling triggerInstallationViaIntune."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $Id
        $LocalVarUri = $LocalVarUri.replace('{id}', $encodedValue)

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        # single request
        $ApiResult = Invoke-bCEndpointsApiClient -Method 'POST' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "Boolean" `
                                -IsBodyNullable $false

        return $ApiResult["Response"]
    }
}

<#
.SYNOPSIS
 
Updates an windows endpoint
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Id
No description available.
 
.PARAMETER Operation
A JSON Patch document consists of a set of operations that allow specific partial changes to an object. The example document contains all modifiable Windows endpoint properties. Initialize patch operations in PowerShell with `Initialize-bCPatchOperation`
 
.OUTPUTS
 
WindowsEndpoint
#>

function Update-bCEndpointsWindowsEndpoint {
    [CmdletBinding(PositionalBinding=$false)]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Id},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [PSCustomObject[]]
        ${Operation}
    )

    Process {
        'Calling method: Update-bCEndpointsWindowsEndpoint' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        # HTTP header 'Content-Type'
        $LocalVarContentTypes = @('application/json-patch+json')

        $LocalVarUri = '/v2.0/WindowsEndpoints/{id}'
        if (!$Id) {
            throw "Error! The required parameter `Id` missing when calling updateWindowsEndpoint."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $Id
        $LocalVarUri = $LocalVarUri.replace('{id}', $encodedValue)

        if (!$Operation) {
            throw "Error! The required parameter `Operation` missing when calling updateWindowsEndpoint."
        }

        $LocalVarBodyParameter = ConvertTo-Json @($Operation) -Depth 100

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        # single request
        $ApiResult = Invoke-bCEndpointsApiClient -Method 'PATCH' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "WindowsEndpoint" `
                                -IsBodyNullable $false

        return $ApiResult["Response"]
    }
}


# SIG # Begin signature block
# MIIoYgYJKoZIhvcNAQcCoIIoUzCCKE8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD4XdFq30WByMoe
# w0F2gnVgFI7vgldJHLLwvQyyKPlsJaCCIV8wggWNMIIEdaADAgECAhAOmxiO+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
# AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCDHC9dlEKlg
# JrpPQjHtU6g1StbYw6xcIiG27ZgTO0aw7zANBgkqhkiG9w0BAQEFAASCAgA57NIt
# 3zC4cSq5Ng0N1pTT97pLGubU+dsHnocZgBX97NYUMe2Dx0PQxuB9SSG49PM4Etqf
# TTG8rRpZwiOzCswfIfhVRE3m3FOxpMmcXkoHWn5iee5P8i88KDmdi2tlOCsDhjv9
# JDT1B0SyaV3yaCEtfqwNLqHrdB7kCaWtfqWnCq40HcEcDfPvCM1oY3z2gD0Ej0Jy
# H+mu4TiuJ3w5GINppTZ1n+pqyy9nwv2A44LwPANIFi2VkiDQH+n7fT1YntSlqgX/
# ZvLCLSqYw0w8+79XDDLFQXCB8DLH4u8qA2qceBvzILW+j99nsi7LYpaldTtNpmdw
# 2spfOuRSbwsgnT2ukJo2f5Tyi91Z9adrilG8YKCaLrAc0xIeZXYsmPpSGCpqcoCu
# ejH67/zqGbDzC8/MnX4ngQoLCAVFDDzQ3720V0pDSNOAjNTRW9yqBqZkFqvgFSIj
# LqUdtsfaH/mfBJ388wYSk4OBt7st20ydbxge5kcscwwzka5gZ1mUaizVjpT4KMmO
# a3hpJ+e+yOAus2CRmCunyzl0aSCBGieYzKskZRQZaBNDLTFhNaSaM8or1k6HZApD
# 8P0KYNL8Q8yNdQW5LJ4c78v+xcUwweb+R27AGdegE3YF+dBfW2tSNuks88JaXRl+
# ds4gnI/gJfZdIPd+zW1+y88Nu9uv1RjQZnYnb6GCAyYwggMiBgkqhkiG9w0BCQYx
# ggMTMIIDDwIBATB9MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcg
# UlNBNDA5NiBTSEEyNTYgMjAyNSBDQTECEAqA7xhLjfEFgtHEdqeVdGgwDQYJYIZI
# AWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJ
# BTEPFw0yNjA1MTIwODI3MDlaMC8GCSqGSIb3DQEJBDEiBCCGEStSsfG+juu0CdaH
# SpCSm7QeikhlUySiczz/P/eUMTANBgkqhkiG9w0BAQEFAASCAgDINdMUG72yPcrz
# GtRJbfmKDpqJNS2C0w7lTUjiECNM6RTDt5/mxEz/OgZkmCOGl3EePvmO58XEQfzg
# 8iJSnpyH4KYyMBg5PXjaKJiBfA6dkqjCRvFDc0z+xUuueuI/GtnJ5sx/1l6RkEm4
# AMhwUUhwUJRN2i6NVK0l49pzdtAWDl9Xcw/ZQUWvjSPF209AFIvvoLH3ZUqZcwQ4
# ZfAHX8fqTqHSdbph8bpCEXNc1NU6SSwH6ZcIn6Lr4njpVNYpHFo5sGMK0F6Gcf80
# SpzVsC/6XvTU4TPR+CslVfHOB/Uq1F8aNzQ5e/Tu7pi1hnY/XKfInfzAeR61E7JS
# YDCNRfpq/8d+EZo7Xzp8Jqj1u0AuznJIvuhXCxT04nnyAjynQhRhiCO0Dcvf/yUV
# MZ5aBjvSdqQwJ6LEkucxhUlv1UxECbgFXmGnPV9ovyg+lhEfc83V6TKU4Kt8U4F8
# Q6jO+3eQk4usp06GA18UH6o7Uz+1qJETiCTPQ0FO2BKKAcJCKCy9G2oNqk5kib3Q
# g+ej0DCNB6ueAjkvI+LIcimaZAGrWrOZU70pdpEIheEcmi6xMD6aHYhdIXTExxNx
# i4kd9xtdv8vw9s5TDvBMWt4B5jKDKNvLLC0oAXkORTf5dUZ3vIxgcxz6Qqaf83/L
# TI4nm/gLIniSar3n5zb/K9pwqKuFrg==
# SIG # End signature block