MilestonePSTools.psd1

#
# Module manifest for module 'MilestonePSTools'
#
# Generated by: Joshua Hendricks
#
# Generated on: 6/10/2021
#

@{

# Script module or binary module file associated with this manifest.
RootModule = 'MilestonePSTools.psm1'

# Version number of this module.
ModuleVersion = '20.3.450930'

# Supported PSEditions
CompatiblePSEditions = 'Desktop'

# ID used to uniquely identify this module
GUID = '46909c4a-d5d8-4faf-830d-5a0df564fe7b'

# Author of this module
Author = 'Joshua Hendricks'

# Company or vendor of this module
CompanyName = 'Milestone Systems'

# Copyright statement for this module
Copyright = '(c) 2021 Milestone Systems. All rights reserved.'

# Description of the functionality provided by this module
Description = 'Milestone XProtect VMS configuration and automation powered by the Milestone MIP SDK'

# Minimum version of the Windows PowerShell engine required by this module
PowerShellVersion = '5.1'

# Name of the Windows PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the Windows PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
DotNetFrameworkVersion = '4.7'

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# CLRVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
ProcessorArchitecture = 'Amd64'

# Modules that must be imported into the global environment prior to importing this module
RequiredModules = @(@{ModuleName = 'MipSdkRedist'; ModuleVersion = '20.3.0'; })

# Assemblies that must be loaded prior to importing this module
RequiredAssemblies = '.\lib\MilestoneLib.dll'

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
FormatsToProcess = 'MilestonePSTools.Format.ps1xml'

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = 'Export-HardwareCsv', 'Import-HardwareCsv', 'Get-LicenseDetails', 
               'Get-LicensedProducts', 'Get-LicenseInfo', 'Get-LicenseOverview', 
               'Invoke-LicenseActivation', 'Get-MobileServerInfo', 
               'Remove-MobileServerCertificate', 'Set-MobileServerCertificate', 
               'Get-CameraReport', 'Add-VmsArchiveStorage', 'Add-VmsStorage', 
               'Get-VmsArchiveStorage', 'Get-VmsStorage', 'Remove-VmsArchiveStorage', 
               'Remove-VmsStorage', 'Get-BankTable', 'Get-ConfigurationItemProperty', 
               'Install-StableFPS', 'Invoke-ServerConfigurator', 'Select-Camera', 
               'Select-VideoOSItem', 'Set-ConfigurationItemProperty'

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = 'Add-Bookmark', 'Add-DeviceGroup', 'Add-DeviceGroupMember', 
               'Add-EvidenceLock', 'Add-GenericEvent', 'Add-Hardware', 
               'Add-RegisteredService', 'Add-Role', 'Add-Stream', 'Add-User', 
               'Add-UserDefinedEvent', 'Connect-ManagementServer', 
               'Copy-EvidenceLock', 'Disconnect-ManagementServer', 
               'Get-AlarmDefinition', 'Get-AlarmLine', 'Get-AlarmStatistics', 
               'Get-Bookmark', 'Get-Camera', 'Get-CameraSetting', 
               'Get-ConfigurationItem', 'Get-ConnectionString', 'Get-DeviceAcl', 
               'Get-DeviceGroup', 'Get-EventLine', 'Get-EvidenceLock', 
               'Get-GenericEvent', 'Get-GenericEventDataSource', 'Get-Hardware', 
               'Get-HardwareDriver', 'Get-HardwarePassword', 'Get-HardwareSetting', 
               'Get-IAlarmClient', 'Get-IConfigurationService', 'Get-Input', 
               'Get-InputSetting', 'Get-IServerCommandService', 'Get-ItemState', 
               'Get-Kind', 'Get-Log', 'Get-LoginSettings', 'Get-ManagementServer', 
               'Get-Metadata', 'Get-MetadataSetting', 'Get-MethodInfo', 
               'Get-Microphone', 'Get-MicrophoneSetting', 'Get-MipMessageIdList', 
               'Get-MipSdkEula', 'Get-Output', 'Get-OutputSetting', 
               'Get-OverallSecurity', 'Get-PlatformItem', 'Get-PlaybackInfo', 
               'Get-RecorderStatusService2', 'Get-RecordingServer', 
               'Get-RegisteredService', 'Get-Role', 'Get-SequenceData', 'Get-Site', 
               'Get-Snapshot', 'Get-Speaker', 'Get-SpeakerSetting', 'Get-Stream', 
               'Get-Token', 'Get-Translations', 'Get-User', 'Get-UserDefinedEvent', 
               'Get-VideoSource', 'Get-WhoIsOnline', 'Invoke-Method', 
               'Invoke-MipSdkEula', 'New-Alarm', 'New-AlarmCondition', 
               'New-AlarmOrder', 'Remove-Bookmark', 'Remove-DeviceGroup', 
               'Remove-EvidenceLock', 'Remove-GenericEvent', 'Remove-Hardware', 
               'Remove-RegisteredService', 'Remove-Role', 'Remove-Stream', 
               'Remove-User', 'Remove-UserDefinedEvent', 'Select-Site', 'Send-Alarm', 
               'Send-GenericEvent', 'Send-MipMessage', 'Send-UserDefinedEvent', 
               'Set-CameraSetting', 'Set-ConfigurationItem', 'Set-DeviceAcl', 
               'Set-HardwarePassword', 'Set-HardwareSetting', 'Set-InputSetting', 
               'Set-MetadataSetting', 'Set-MicrophoneSetting', 'Set-OutputSetting', 
               'Set-OverallSecurity', 'Set-SpeakerSetting', 'Set-Stream', 
               'Start-Export', 'Test-Playback', 'Trace-Events', 'Update-AlarmLine', 
               'Update-Bookmark', 'Update-EvidenceLock', 'Update-RegisteredService'

# Variables to export from this module
# VariablesToExport = @()

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
FileList = '.\eula.rtf', '.\MilestonePSTools.Format.ps1xml', 
               '.\MilestonePSTools.psm1', '.\lib\MilestoneLib.dll', 
               '.\lib\MilestonePSTools.dll', '.\lib\MilestonePSTools.dll-Help.xml', 
               '.\Private\Copy-ConfigurationItem.ps1', 
               '.\Private\Get-HttpSslCertThumbprint.ps1', 
               '.\Private\Get-ProcessOutput.ps1', 
               '.\Private\GetCodecValueFromStream.ps1', 
               '.\Private\GetFpsValueFromStream.ps1', 
               '.\Private\GetResolutionValueFromStream.ps1', 
               '.\Public\ImportExport\Export-HardwareCsv.ps1', 
               '.\Public\ImportExport\Import-HardwareCsv.ps1', 
               '.\Public\LicenseInformation\Get-LicenseDetails.ps1', 
               '.\Public\LicenseInformation\Get-LicensedProducts.ps1', 
               '.\Public\LicenseInformation\Get-LicenseInfo.ps1', 
               '.\Public\LicenseInformation\Get-LicenseOverview.ps1', 
               '.\Public\LicenseInformation\Invoke-LicenseActivation.ps1', 
               '.\Public\MobileServer\Get-MobileServerInfo.ps1', 
               '.\Public\MobileServer\Remove-MobileServerCertificate.ps1', 
               '.\Public\MobileServer\Set-MobileServerCertificate.ps1', 
               '.\Public\Reports\Get-CameraReport.ps1', 
               '.\Public\Storage\Add-VmsArchiveStorage.ps1', 
               '.\Public\Storage\Add-VmsStorage.ps1', 
               '.\Public\Storage\Get-VmsArchiveStorage.ps1', 
               '.\Public\Storage\Get-VmsStorage.ps1', 
               '.\Public\Storage\Remove-VmsArchiveStorage.ps1', 
               '.\Public\Storage\Remove-VmsStorage.ps1', 
               '.\Public\Tools\Get-BankTable.ps1', 
               '.\Public\Tools\Get-ConfigurationItemProperty.ps1', 
               '.\Public\Tools\Install-StableFPS.ps1', 
               '.\Public\Tools\Invoke-ServerConfigurator.ps1', 
               '.\Public\Tools\Select-Camera.ps1', 
               '.\Public\Tools\Select-VideoOSItem.ps1', 
               '.\Public\Tools\Set-ConfigurationItemProperty.ps1'

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        Tags = 'PSEdition_Desktop', 'Windows', 'Milestone', 'ConfigApi', 
               'ConfigurationApi', 'XProtect', 'MIPSDK'

        # A URL to the license for this module.
        # LicenseUri = ''

        # A URL to the main website for this project.
        ProjectUri = 'https://doc.developer.milestonesys.com/html/index.html'

        # A URL to an icon representing this module.
        IconUri = 'https://download.milestonesys.com/tools/MilestonePSTools/MilestoneLogo.png'

        # ReleaseNotes of this module
        ReleaseNotes = '## 20.3.450930
* Updated version to reflect major/minor MIP SDK version with the build incrementing independently with each release of MilestonePSTools
* Updated Connect-ManagementServer so that it passes the manufacturer name, and integration name, version and guid to the Management Server during login. This will enable Installed Integration Insights for MilestonePSTools on XProtect VMS versions starting from 2021 R1.
 
## 1.1.5
* Removed the *-RecorderConfig and *-ManagementServerConfig cmdlets as these had the ability to manipulate the services in ways not prescribed by the MIP SDK. These functions now join the other retired functions in the MilestonePSTools.Extensions module.
 
## 1.1.4
* Removed several cmdlets which used unsupported methods to access data which is unavailable in MIP SDK. Cmdlets removed: Add-FailoverServer, Get-FailoverServer, Get-FailoverServerGroup, Get-IServerProxyService, Get-PublicViewGroup, Get-VmoClient, Invoke-DiagnosticsTool, New-FailoverServerGroup, New-PublicViewGroup, Remove-FailoverServer, Remove-PublicViewGroup, Set-License, Update-License, Add-RecordingServer.
* Added new license-related cmdlets including Get-LicenseDetails, Get-LicensedProducts, Get-LicenseInfo, Get-LicenseOverview, and Invoke-LicenseActivation. These all make use of Configuration API now instead of the unsupported ServerProxyService channel previously used.
* Several new format definitions have been added to MilestonePSTools.Format.ps1xml including for roles, itemstate, hardwaredrivers, evidence locks, bookmarks, user-defined events, and generic events.
* Fixed a bug in several cmdlets which resulted in no pipeline output if you used `Select-Object -First n` where n represents fewer items than are available. Turns out I needed to re-throw the pipelinestoppedexception.
 
## 1.1.3
* Add formatters for ManagementServer, RecordingServer, Hardware, Camera, Microphone, Speaker, Metadata, Input, Output, and ConfigurationItem objects
 
## 1.1.2
* Fix bug in Storage format file where TotalRetention was incorrectly derived
* Add Id column to both Storage and ArchiveStorage format files
 
## 1.1.1
* Added Get|Add|Remove-VmsStorage and Get|Add|Remove-VmsArchiveStorage to simplify configuring VMS storage
* Added first format specifiers in MilestonePSTools.Format.ps1xml - more to come!
* Fix PipelineStoppedException errors in a couple more cmdlets. The following used to throw exceptions: Get-Something | Select -First 1
 
## 1.1.0
 
_Some potentially breaking changes were made in this version so the minor version value has been incremented to reflect that._
 
### Breaking Changes (depending on your usage)
* Connect-ManagementServer will now through a terminating error if already connected to a Management Server
* Connect-ManagementServer has a -Force switch which will allow you to forcefully close existing connections and connect to the Management Server without error or warning
* Disconnect-ManagementServer no longer throws an error if you''re not already connected. It will silently disconnect, or silently return if not connected
* Get-ManagementServer no longer throws a terminating exception, so you can use `Get-ManagementServer -ErrorAction Ignore` to test for null or check which Management Server, if any, you''re connected to
 
### Improvements
* Several Get-* cmdlets no longer throw errors when you pipe to Select-Object -First 1. The PipelineStoppedException is now ignored
* The insensitive term ''Master'' has been removed everywhere with the exception of an alias to Select-Site where ''MasterSite'' exists as an alias for backward compatibility
* Some internal refactoring has improved the compatibility of MilestonePSTools with runspaces so that you can parallelize operations more easily without having to login inside each runspace/thread.
 
## 1.0.90
* Mark ProgressRecord objects as complete when progress reaches 100% so that the progress bars don''t just stack on top of each other during bulk operations.
* Interpret Server Configurator exit codes on Invoke-ServerConfigurator and properly dispose of the Process object when Server Configurator exits.
* Switch out terminating errors in favor of normal errors in many functions. This way the user can decide how critical a particular error is and handle it without a try/catch block.
* Significantly improve performance of Add-Role on systems with many roles
* Add validation exception error handling to Set-Stream to improve error output.
* Modify Get-Log to catch and ignore PipelineStoppedException while passing any other exceptions to the pipeline as ErrorRecords
* Eliminate error in Get-CameraReport where Get-CameraSetting throws an error on some cameras due to the lack of "General" setting properties
 
## 1.0.89
* Update Set-ManagementServerConfig to also register the Data Collector server
* Modify Trace-Event so that the MaxInterEventDelay timer is only started after the first event is received.
* Fix bugs in Get-HardwareSetting and Get-CameraSetting where an empty object was returned if no matching setting was found. Now if the setting name has no wildcards and no matching setting is found, an error is returned. If a wildcard is present and no matching setting is found, the command returns nothing so a $null check will be useful. There''s more work to do in these device setting cmdlets to tidy up and improve their output.
 
## 1.0.88
* Update Set-RecorderConfig to synchronize the Authorization Server URI for the Data Collector Server to match the URI used by the Recording Server
 
## 1.0.87
* Replaced Get-Diagnostics with Invoke-DiagnosticsTool and improved functionality including returning a FileInfo object representing the new ZIP file and only opening explorer.exe to the path if [environment]::UserInteractive is true.
* Update Set-RecorderConfig to also update registration for the Data Collector'


    } # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}