MilestonePSTools.Format.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
    <ViewDefinitions>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.ManagementServer</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.ManagementServer</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>8</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>15</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>8</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Version</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>ComputerName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>TimeZone</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.RecordingServer</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.RecordingServer</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>15</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>8</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>HostName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>WebServerUri</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>TimeZoneName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.Hardware</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.Hardware</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Address</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Model</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.Camera</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.Camera</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>3</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Latitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Longitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Channel</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                     
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.Microphone</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.Microphone</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>3</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Latitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Longitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Channel</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.Speaker</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.Speaker</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>3</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Latitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Longitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Channel</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.InputEvent</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.InputEvent</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>3</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Latitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Longitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Channel</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.Output</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.Output</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>3</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Latitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Longitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Channel</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.Metadata</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.Metadata</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>3</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Latitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Longitude</Label>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Channel</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastModified</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.ConfigurationApi.ClientService.ConfigurationItem</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.ConfigurationApi.ClientService.ConfigurationItem</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Label>Enabled</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>25</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>DisplayName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>$_.EnableProperty.Enabled</ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>ItemType</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>ItemCategory</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Path</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.Storage</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.Storage</TypeName>
            </ViewSelectedBy>
            <GroupBy>
                <Label>Recording Server</Label>
                <ScriptBlock>[VideoOS.Platform.ConfigurationItems.RecordingServer]::new((Get-ManagementServer).ServerId, $_.ParentItemPath).Name</ScriptBlock>
            </GroupBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Label>LiveRetention</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>LiveSize(GB)</Label>
                        <Width>10</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Encryption</Label>
                        <Width>6</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Archives</Label>
                        <Width>3</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>TotalRetention</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>TotalSize(GB)</Label>
                        <Width>10</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>DiskPath</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>New-Timespan -Minutes $_.RetainMinutes</ScriptBlock>
                                <FormatString>g</FormatString>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>$_.MaxSize / 1KB</ScriptBlock>
                                <FormatString>{0:.##}</FormatString>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>IsDefault</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Signing</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>EncryptionMethod</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>$_.ArchiveStorageFolder.ArchiveStorages.Count</ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                    if ($_.ArchiveStorageFolder.ArchiveStorages.Count -eq 0) {
                                        New-TimeSpan -Minutes $_.RetainMinutes
                                    }
                                    else {
                                        New-TimeSpan -Minutes ($_.ArchiveStorageFolder.ArchiveStorages | Sort-Object RetainMinutes -Descending | Select-Object -First 1 -ExpandProperty RetainMinutes)
                                    }
                                </ScriptBlock>
                                <FormatString>g</FormatString>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>($_.MaxSize + ($_.ArchiveStorageFolder.ArchiveStorages.MaxSize | Measure-Object -Sum).Sum) / 1KB</ScriptBlock>
                                <FormatString>{0:.##}</FormatString>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>VideoOS.Platform.ConfigurationItems.ArchiveStorage</Name>
            <ViewSelectedBy>
                <TypeName>VideoOS.Platform.ConfigurationItems.ArchiveStorage</TypeName>
            </ViewSelectedBy>
            <GroupBy>
                <Label>Storage</Label>
                <ScriptBlock>
                    $storage = [VideoOS.Platform.ConfigurationItems.Storage]::new((Get-ManagementServer).ServerId, $_.ParentItemPath)
                    $storageName = $storage.Name
                    $recorderName = [VideoOS.Platform.ConfigurationItems.RecordingServer]::new((Get-ManagementServer).ServerId, $storage.ParentItemPath).Name
                    "$storageName on $recorderName"</ScriptBlock>
            </GroupBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Label>Retention</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>MaxSize(GB)</Label>
                        <Width>10</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>ReducesFramerate</Label>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>TargetFramerate</Label>
                        <Width>3</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>36</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>DiskPath</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>New-Timespan -Minutes $_.RetainMinutes</ScriptBlock>
                                <FormatString>g</FormatString>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>$_.MaxSize / 1KB</ScriptBlock>
                                <FormatString>{0:.##}</FormatString>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>$_.FramerateReductionEnabled</ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>if ($_.FramerateReductionEnabled) { $_.TargetFramerate } else { '' }</ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Id</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
    </ViewDefinitions>
</Configuration>