Carbon.format.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<!--
   Copyright 2012 Aaron Jensen
    
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
    
       http://www.apache.org/licenses/LICENSE-2.0
    
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<Configuration>
    <ViewDefinitions>
        <View>
            <Name>CarbonIniIniNodeView</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.Ini.IniNode</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>Line</Label>
                        <Width>4</Width>
                        <Alignment>Right</Alignment>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>20</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>20</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>35</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>LineNumber</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Section</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Value</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>CarbonCertificatesSslCertificateBindingView</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.Certificates.SslCertificateBinding</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>IPAddress</Label>
                        <Width>15</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>5</Width>
                        <Alignment>Right</Alignment>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>CertificateHash</Label>
                        <Width>40</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>CertificateStoreName</Label>
                        <Width>20</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>IPAddress</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Port</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>CertificateHash</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>CertificateStoreName</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>CarbonIisHttpRedirectConfigurationSection</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.Iis.HttpRedirectConfigurationSection</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>Destination</Label>
                        <Width>41</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>HTTP Status</Label>
                        <Width>14</Width>
                        <Alignment>Right</Alignment>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>8</Width>
                        <Alignment>Right</Alignment>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>10</Width>
                        <Alignment>Right</Alignment>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Exact?</Label>
                        <Width>7</Width>
                        <Alignment>Right</Alignment>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Destination</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>"{0} {1}" -f $_.HttpResponseStatus.ToString("d"),$_.HttpResponseStatus</ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>ChildOnly</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>ExactDestination</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>CarbonIisMimeMap</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.Iis.MimeMap</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>File Extension</Label>
                        <Width>15</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>MIME Type</Label>
                        <Width>64</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>FileExtension</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>MimeType</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>CarbonIdentity</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.Identity</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>FullName</Label>
                        <Width>32</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Sid</Label>
                        <Width>46</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Type</Label>
                        <Width>14</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>FullName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Sid</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Type</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>Carbon.TaskScheduler.TaskInfo</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.TaskScheduler.TaskInfo</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>15</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>LastResult</Label>
                        <Width>11</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>22</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>22</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>TaskPath</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>TaskName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Status</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                    $_.Schedules | Select-Object -Expand 'LastResult'
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LastRunTime</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>NextRunTime</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>Carbon.Computer.ProgramInstallInfo</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.Computer.ProgramInstallInfo</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>DisplayName</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Publisher</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>InstallDate</Label>
                        <Width>11</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Size</Label>
                        <Alignment>Right</Alignment>
                        <Width>10</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>DisplayVersion</Label>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>DisplayName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Publisher</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                    if( $_.InstallDate -eq [DateTime]::MinValue )
                                    {
                                        return ""
                                    }
                                    "{0:d}" -f $_.InstallDate
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                    if( $_.EstimatedSize -eq 0 )
                                    {
                                        return ""
                                    }
 
                                    $bytes = $_.EstimatedSize * 1kb
                                    if( $bytes -lt 1mb )
                                    {
                                        '{0} KB' -f ($bytes/1kb)
                                    }
                                    elseif( $bytes -lt 1gb )
                                    {
                                        '{0:0.00} MB' -f ($bytes/1mb)
                                    }
                                    else
                                    {
                                        '{0:0.00} GB' -f ($bytes/1gb)
                                    }
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>DisplayVersion</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>System.Security.Cryptography.X509Certificates.X509Store</Name>
            <ViewSelectedBy>
                <TypeName>System.Security.Cryptography.X509Certificates.X509Store</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Width>12</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>20</Width>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Location</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>DisplayName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>StoreName</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>Carbon.Firewall.Rule</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.Firewall.Rule</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>9</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>21</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>7</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>6</Width>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>8</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader />
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Direction</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Profiles</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Enabled</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Action</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Protocol</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LocalIP</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>LocalPort</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>RemoteIP</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>RemotePort</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>Carbon.Service.ServiceInfo</Name>
            <ViewSelectedBy>
                <TypeName>Carbon.Service.ServiceInfo</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader />
                    <TableColumnHeader />
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Description</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>UserName</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Path</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>System.Security.AccessControl.AccessRule</Name>
            <ViewSelectedBy>
                <TypeName>System.Security.AccessControl.AccessRule</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>Rights</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Type</Label>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader>
                        <Width>11</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                    <TableColumnHeader />
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <ScriptBlock>
                                    $property = Get-Member -InputObject $_ -Name '*Rights' -MemberType Property
                                    if( $property )
                                    {
                                        $_.($property.Name)
                                    }
                                    else
                                    {
                                        $_.AccessMask
                                    }
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>AccessControlType</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>IdentityReference</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>IsInherited</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>InheritanceFlags</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>PropagationFlags</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>System.Security.AccessControl.CryptoKeyAccessRule</Name>
            <ViewSelectedBy>
                <TypeName>System.Security.AccessControl.CryptoKeyAccessRule</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>Rights</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Type</Label>
                        <Width>5</Width>
                    </TableColumnHeader>
                    <TableColumnHeader />
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>CryptoKeyRights</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>AccessControlType</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>IdentityReference</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
    </ViewDefinitions>
</Configuration>