M365DSC.mgx.Format.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <ViewDefinitions>
 
    <!--
      No views for Graph entity output (Invoke-MgxRequest, Expand-MgxRelation,
      Sync-MgxDelta, Invoke-MgxBatchRequest). Those cmdlets emit Hashtables, and
      PowerShell's formatter always renders an IDictionary with the built-in
      Name/Value view - a custom View is never selected, even with a PSTypeName
      attached. Use Format-Table / Select-Object explicitly to pick columns.
    -->
 
    <!--
      Informational cmdlet views use ListControl with Labels for display formatting.
      PowerShell's formatter drops Labels when multiple ListControl-typed objects
      share the same output stream (only the first type's Labels render correctly).
      This is a known PS platform limitation. Each cmdlet renders Labels correctly
      when run independently, which is the typical usage pattern.
    -->
 
    <!-- Export-MgxCollection summary: list view -->
    <View>
      <Name>Mgx.ExportResult</Name>
      <ViewSelectedBy>
        <TypeName>Mgx.Cmdlets.Models.MgxExportResult</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem><Label>Items</Label><PropertyName>ItemCount</PropertyName></ListItem>
              <ListItem><Label>Output File</Label><PropertyName>OutputFile</PropertyName></ListItem>
              <ListItem><Label>Duration</Label><PropertyName>Duration</PropertyName></ListItem>
              <ListItem><Label>Resumed From</Label><PropertyName>ResumedFrom</PropertyName></ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
    <!-- Get-MgxResilience output: list view -->
    <View>
      <Name>Mgx.ResilienceState</Name>
      <ViewSelectedBy>
        <TypeName>Mgx.Cmdlets.Models.MgxResilienceOutput</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem><PropertyName>IsEnabled</PropertyName></ListItem>
              <ListItem><PropertyName>IsActive</PropertyName></ListItem>
              <ListItem>
                <PropertyName>Warning</PropertyName>
                <ItemSelectionCondition>
                  <ScriptBlock>-not [string]::IsNullOrEmpty($_.Warning)</ScriptBlock>
                </ItemSelectionCondition>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
    <!-- Get-MgxOption output: list view -->
    <View>
      <Name>Mgx.Option</Name>
      <ViewSelectedBy>
        <TypeName>Mgx.Cmdlets.Models.MgxOptionOutput</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem><Label>Rate Limit Burst</Label><PropertyName>RateLimitBurst</PropertyName></ListItem>
              <ListItem><Label>Rate Limit/sec</Label><PropertyName>RateLimitPerSecond</PropertyName></ListItem>
              <ListItem><Label>No Rate Limit</Label><PropertyName>NoRateLimit</PropertyName></ListItem>
              <ListItem><Label>Queue Limit</Label><PropertyName>RateLimitQueueLimit</PropertyName></ListItem>
              <ListItem><Label>Max Retry Attempts</Label><PropertyName>MaxRetryAttempts</PropertyName></ListItem>
              <ListItem><Label>Max Retry-After (s)</Label><PropertyName>MaxRetryAfterSeconds</PropertyName></ListItem>
              <ListItem><Label>Total Timeout (s)</Label><PropertyName>TotalTimeoutSeconds</PropertyName></ListItem>
              <ListItem><Label>Attempt Timeout (s)</Label><PropertyName>AttemptTimeoutSeconds</PropertyName></ListItem>
              <ListItem><Label>CB Duration (s)</Label><PropertyName>CircuitBreakerDurationSeconds</PropertyName></ListItem>
              <ListItem><Label>CB Failure Ratio</Label><ScriptBlock>$_.CircuitBreakerFailureRatio.ToString([System.Globalization.CultureInfo]::InvariantCulture)</ScriptBlock></ListItem>
              <ListItem><Label>CB Min Throughput</Label><PropertyName>CircuitBreakerMinThroughput</PropertyName></ListItem>
              <ListItem><Label>CB Sampling (s)</Label><PropertyName>CircuitBreakerSamplingDurationSeconds</PropertyName></ListItem>
              <ListItem><Label>Batch Chunk Concurrency</Label><PropertyName>BatchChunkConcurrency</PropertyName></ListItem>
              <ListItem><Label>Batch Items/sec</Label><PropertyName>BatchItemsPerSecond</PropertyName></ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
    <!-- Get-MgxTelemetry output: list view -->
    <View>
      <Name>Mgx.Telemetry</Name>
      <ViewSelectedBy>
        <TypeName>Mgx.Cmdlets.Models.MgxTelemetryOutput</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem><Label>Requests</Label><PropertyName>Requests</PropertyName></ListItem>
              <ListItem><Label>Succeeded</Label><PropertyName>Succeeded</PropertyName></ListItem>
              <ListItem><Label>Failed</Label><PropertyName>Failed</PropertyName></ListItem>
              <ListItem><Label>Throttle Retries (429)</Label><PropertyName>ThrottleRetries</PropertyName></ListItem>
              <ListItem><Label>Other Retries (5xx)</Label><PropertyName>OtherRetries</PropertyName></ListItem>
              <ListItem><Label>Circuit Breaker Trips</Label><PropertyName>CircuitBreakerTrips</PropertyName></ListItem>
              <ListItem><Label>Rate Limiter Wait (ms)</Label><PropertyName>RateLimiterWaitMs</PropertyName></ListItem>
              <ListItem><Label>Retry Delay (ms)</Label><PropertyName>RetryDelayMs</PropertyName></ListItem>
              <ListItem><Label>HTTP Time (ms)</Label><PropertyName>HttpMs</PropertyName></ListItem>
              <ListItem><Label>Total Elapsed (ms)</Label><PropertyName>TotalElapsedMs</PropertyName></ListItem>
              <ListItem><Label>Resource Units</Label><PropertyName>ResourceUnitsConsumed</PropertyName></ListItem>
              <ListItem><Label>Batch Item Throttles</Label><PropertyName>BatchItemThrottles</PropertyName></ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
 
  </ViewDefinitions>
</Configuration>