Spy.Format.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <ViewDefinitions>
 
    <!-- HttpEndpoint Table View -->
    <View>
      <Name>Spy.Core.Contracts.HttpEndpoint</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.HttpEndpoint</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Type</Label>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Method</Label>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Route</Label>
            <Width>40</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Class</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Action</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Auth</Label>
            <Width>6</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <ScriptBlock>'HTTP'</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>HttpMethod</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Route</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ClassName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>MethodName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if ($_.RequiresAuthorization) { 'Yes' }
                  elseif ($_.AllowAnonymous) { 'Anon' }
                  else { 'No' }
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
 
    <!-- HttpEndpoint List View -->
    <View>
      <Name>Spy.Core.Contracts.HttpEndpoint.List</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.HttpEndpoint</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <Label>HTTP Method</Label>
                <PropertyName>HttpMethod</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Route</Label>
                <PropertyName>Route</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Class</Label>
                <PropertyName>ClassName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Action</Label>
                <PropertyName>MethodName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Requires Auth</Label>
                <PropertyName>RequiresAuthorization</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Allow Anonymous</Label>
                <PropertyName>AllowAnonymous</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Roles</Label>
                <ScriptBlock>($_.Roles -join ', ')</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Policies</Label>
                <ScriptBlock>($_.Policies -join ', ')</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Return Type</Label>
                <PropertyName>ReturnType</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Is Async</Label>
                <PropertyName>IsAsync</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Parameters</Label>
                <ScriptBlock>($_.Parameters | ForEach-Object { $_.ToString() }) -join '; '</ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
    <!-- SignalRMethod Table View -->
    <View>
      <Name>Spy.Core.Contracts.SignalRMethod</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.SignalRMethod</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Type</Label>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Hub</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Method</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>HubRoute</Label>
            <Width>25</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Streaming</Label>
            <Width>10</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Auth</Label>
            <Width>6</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <ScriptBlock>'SignalR'</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>HubName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>MethodName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>HubRoute</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if ($_.IsStreamingResult -and $_.AcceptsStreaming) { 'Both' }
                  elseif ($_.IsStreamingResult) { 'Result' }
                  elseif ($_.AcceptsStreaming) { 'Input' }
                  else { 'No' }
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if ($_.RequiresAuthorization) { 'Yes' }
                  elseif ($_.AllowAnonymous) { 'Anon' }
                  else { 'No' }
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
 
    <!-- SignalRMethod List View -->
    <View>
      <Name>Spy.Core.Contracts.SignalRMethod.List</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.SignalRMethod</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <Label>Hub</Label>
                <PropertyName>HubName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Method</Label>
                <PropertyName>MethodName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Hub Route</Label>
                <PropertyName>HubRoute</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Streaming Result</Label>
                <PropertyName>IsStreamingResult</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Accepts Streaming</Label>
                <PropertyName>AcceptsStreaming</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Requires Auth</Label>
                <PropertyName>RequiresAuthorization</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Allow Anonymous</Label>
                <PropertyName>AllowAnonymous</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Roles</Label>
                <ScriptBlock>($_.Roles -join ', ')</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Policies</Label>
                <ScriptBlock>($_.Policies -join ', ')</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Return Type</Label>
                <PropertyName>ReturnType</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Is Async</Label>
                <PropertyName>IsAsync</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Parameters</Label>
                <ScriptBlock>($_.Parameters | ForEach-Object { $_.ToString() }) -join '; '</ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
    <!-- WcfOperation Table View -->
    <View>
      <Name>Spy.Core.Contracts.WcfOperation</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.WcfOperation</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Type</Label>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Contract</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Method</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Class</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>OneWay</Label>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Auth</Label>
            <Width>6</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <ScriptBlock>'WCF'</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ContractName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>MethodName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ClassName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if ($_.IsOneWay) { 'Yes' } else { 'No' }
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if ($_.RequiresAuthorization) { 'Yes' }
                  elseif ($_.AllowAnonymous) { 'Anon' }
                  else { 'No' }
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
 
    <!-- WcfOperation List View -->
    <View>
      <Name>Spy.Core.Contracts.WcfOperation.List</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.WcfOperation</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <Label>Contract</Label>
                <PropertyName>ContractName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Method</Label>
                <PropertyName>MethodName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Class</Label>
                <PropertyName>ClassName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Namespace</Label>
                <PropertyName>ServiceNamespace</PropertyName>
              </ListItem>
              <ListItem>
                <Label>One-Way</Label>
                <PropertyName>IsOneWay</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Requires Auth</Label>
                <PropertyName>RequiresAuthorization</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Allow Anonymous</Label>
                <PropertyName>AllowAnonymous</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Roles</Label>
                <ScriptBlock>($_.Roles -join ', ')</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Policies</Label>
                <ScriptBlock>($_.Policies -join ', ')</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Return Type</Label>
                <PropertyName>ReturnType</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Is Async</Label>
                <PropertyName>IsAsync</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Parameters</Label>
                <ScriptBlock>($_.Parameters | ForEach-Object { $_.ToString() }) -join '; '</ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
    <!-- GrpcOperation Table View -->
    <View>
      <Name>Spy.Core.Contracts.GrpcOperation</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.GrpcOperation</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Type</Label>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Service</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Method</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Class</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Streaming</Label>
            <Width>16</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Auth</Label>
            <Width>6</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <ScriptBlock>'gRPC'</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ServiceName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>MethodName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ClassName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>MethodType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  if ($_.RequiresAuthorization) { 'Yes' }
                  elseif ($_.AllowAnonymous) { 'Anon' }
                  else { 'No' }
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
 
    <!-- GrpcOperation List View -->
    <View>
      <Name>Spy.Core.Contracts.GrpcOperation.List</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.GrpcOperation</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <Label>Service</Label>
                <PropertyName>ServiceName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Method</Label>
                <PropertyName>MethodName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Class</Label>
                <PropertyName>ClassName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Method Type</Label>
                <PropertyName>MethodType</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Requires Auth</Label>
                <PropertyName>RequiresAuthorization</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Allow Anonymous</Label>
                <PropertyName>AllowAnonymous</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Roles</Label>
                <ScriptBlock>($_.Roles -join ', ')</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Policies</Label>
                <ScriptBlock>($_.Policies -join ', ')</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Return Type</Label>
                <PropertyName>ReturnType</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Is Async</Label>
                <PropertyName>IsAsync</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Parameters</Label>
                <ScriptBlock>($_.Parameters | ForEach-Object { $_.ToString() }) -join '; '</ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
    <!-- SecurityIssue Table View -->
    <View>
      <Name>Spy.Core.Contracts.SecurityIssue</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.SecurityIssue</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Severity</Label>
            <Width>10</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Type</Label>
            <Width>14</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Title</Label>
            <Width>35</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Surface</Label>
            <Width>35</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Description</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Severity</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>SurfaceType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Title</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>SurfaceRoute</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Description</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
 
    <!-- SecurityIssue List View -->
    <View>
      <Name>Spy.Core.Contracts.SecurityIssue.List</Name>
      <ViewSelectedBy>
        <TypeName>Spy.Core.Contracts.SecurityIssue</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <Label>Severity</Label>
                <PropertyName>Severity</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Surface Type</Label>
                <PropertyName>SurfaceType</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Title</Label>
                <PropertyName>Title</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Surface</Label>
                <PropertyName>SurfaceRoute</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Class</Label>
                <PropertyName>ClassName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Method</Label>
                <PropertyName>MethodName</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Description</Label>
                <PropertyName>Description</PropertyName>
              </ListItem>
              <ListItem>
                <Label>Recommendation</Label>
                <PropertyName>Recommendation</PropertyName>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
  </ViewDefinitions>
</Configuration>