[fidldoc] Updating fidldocs
diff --git a/all/fidl/README.md b/all/fidl/README.md
index 2404654..6d71ed8 100644
--- a/all/fidl/README.md
+++ b/all/fidl/README.md
@@ -852,10 +852,6 @@
     <td></td>
 </tr>
 <tr>
-    <td><a href="fuchsia.net.dns/index">fuchsia.net.dns</a></td>
-    <td></td>
-</tr>
-<tr>
     <td><a href="fuchsia.net.filter/index">fuchsia.net.filter</a></td>
     <td></td>
 </tr>
@@ -1017,7 +1013,7 @@
     <td></td>
 </tr>
 <tr>
-    <td><a href="fuchsia.storage.ext4server/index">fuchsia.storage.ext4server</a></td>
+    <td><a href="fuchsia.storage.ext4/index">fuchsia.storage.ext4</a></td>
     <td></td>
 </tr>
 <tr>
@@ -1105,6 +1101,10 @@
     <td></td>
 </tr>
 <tr>
+    <td><a href="fuchsia.testing/index">fuchsia.testing</a></td>
+    <td></td>
+</tr>
+<tr>
     <td><a href="fuchsia.testing.appmgr/index">fuchsia.testing.appmgr</a></td>
     <td></td>
 </tr>
@@ -1406,6 +1406,10 @@
     <td></td>
 </tr>
 <tr>
+    <td><a href="test.pkg.eventqueue/index">test.pkg.eventqueue</a></td>
+    <td></td>
+</tr>
+<tr>
     <td><a href="test.processbuilder/index">test.processbuilder</a></td>
     <td></td>
 </tr>
diff --git a/all/fidl/_toc.yaml b/all/fidl/_toc.yaml
index 7f183f1..4ac2cbb 100644
--- a/all/fidl/_toc.yaml
+++ b/all/fidl/_toc.yaml
@@ -417,8 +417,6 @@
   path: /reference/fidl/fuchsia.net
 - title: fuchsia.net.dhcp
   path: /reference/fidl/fuchsia.net.dhcp
-- title: fuchsia.net.dns
-  path: /reference/fidl/fuchsia.net.dns
 - title: fuchsia.net.filter
   path: /reference/fidl/fuchsia.net.filter
 - title: fuchsia.net.http
@@ -499,8 +497,8 @@
   path: /reference/fidl/fuchsia.space
 - title: fuchsia.stash
   path: /reference/fidl/fuchsia.stash
-- title: fuchsia.storage.ext4server
-  path: /reference/fidl/fuchsia.storage.ext4server
+- title: fuchsia.storage.ext4
+  path: /reference/fidl/fuchsia.storage.ext4
 - title: fuchsia.storage.metrics
   path: /reference/fidl/fuchsia.storage.metrics
 - title: fuchsia.sys
@@ -543,6 +541,8 @@
   path: /reference/fidl/fuchsia.test.manager
 - title: fuchsia.test.workscheduler
   path: /reference/fidl/fuchsia.test.workscheduler
+- title: fuchsia.testing
+  path: /reference/fidl/fuchsia.testing
 - title: fuchsia.testing.appmgr
   path: /reference/fidl/fuchsia.testing.appmgr
 - title: fuchsia.testing.chrealm
@@ -691,6 +691,8 @@
   path: /reference/fidl/test.peridot.lib.fidl.appclient
 - title: test.peridot.lib.fidl.jsonxdr
   path: /reference/fidl/test.peridot.lib.fidl.jsonxdr
+- title: test.pkg.eventqueue
+  path: /reference/fidl/test.pkg.eventqueue
 - title: test.processbuilder
   path: /reference/fidl/test.processbuilder
 - title: test.sysmgr
diff --git a/all/fidl/fidl.examples.echo/README.md b/all/fidl/fidl.examples.echo/README.md
index 2f3fcb0..f606a78 100644
--- a/all/fidl/fidl.examples.echo/README.md
+++ b/all/fidl/fidl.examples.echo/README.md
@@ -6,7 +6,7 @@
 ## **PROTOCOLS**
 
 ## Echo {#Echo}
-*Defined in [fidl.examples.echo/echo.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/garnet/examples/fidl/services/echo.test.fidl#8)*
+*Defined in [fidl.examples.echo/echo.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/garnet/examples/fidl/services/echo.test.fidl#13)*
 
 
 ### EchoString {#EchoString}
diff --git a/all/fidl/fuchsia.hardware.audio/README.md b/all/fidl/fuchsia.hardware.audio/README.md
index c0fb50e..2772d2d 100644
--- a/all/fidl/fuchsia.hardware.audio/README.md
+++ b/all/fidl/fuchsia.hardware.audio/README.md
@@ -6,11 +6,12 @@
 ## **PROTOCOLS**
 
 ## Device {#Device}
-*Defined in [fuchsia.hardware.audio/audio.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/audio.fidl#8)*
+*Defined in [fuchsia.hardware.audio/audio.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/audio.fidl#10)*
 
 
 ### GetChannel {#GetChannel}
 
+<p>This method obtains a channel in order to serve FIDL over it outside the devhost's control.</p>
 
 #### Request
 <table>
@@ -22,25 +23,939 @@
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>ch</code></td>
+            <td><code>channel</code></td>
             <td>
-                <code>handle&lt;channel&gt;</code>
+                <code>request&lt;<a class='link' href='#StreamConfig'>StreamConfig</a>&gt;</code>
             </td>
         </tr></table>
 
+## RingBuffer {#RingBuffer}
+*Defined in [fuchsia.hardware.audio/ring_buffer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/ring_buffer.fidl#90)*
+
+
+### GetProperties {#GetProperties}
+
+<p>Accessor for top level static properties.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>properties</code></td>
+            <td>
+                <code><a class='link' href='#RingBufferProperties'>RingBufferProperties</a></code>
+            </td>
+        </tr></table>
+
+### WatchClockRecoveryPositionInfo {#WatchClockRecoveryPositionInfo}
+
+<p>Gets the ring buffer current position via a hanging get. The driver must immediately
+respond to a client's first |WatchClockRecoveryPositionInfo| call, but will not respond to
+subsequent client calls until the position information has changed from what was most
+recently provided to that client. If |clock_recovery_notifications_per_ring| is not zero,
+the driver will reply with its estimated position to be used for clock recovery at most at
+|clock_recovery_notifications_per_ring| frequency.
+Must be delivered with timestamps that are monotonically increasing.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>position_info</code></td>
+            <td>
+                <code><a class='link' href='#RingBufferPositionInfo'>RingBufferPositionInfo</a></code>
+            </td>
+        </tr></table>
+
+### GetVmo {#GetVmo}
+
+<p>Requests a shared buffer to be used for moving bulk audio data. Requests the buffer size to
+fit at least |min_frames|, and returns the actual |num_frames| allocated in
+|ring_buffer|.</p>
+<p>If |clock_recovery_notifications_per_ring| is non-zero, the driver will send replies to
+|WatchClockRecoveryPositionInfo| client requests at most at
+|clock_recovery_notifications_per_ring| frequency. These notifications are meant to be used
+for clock recovery.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>min_frames</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>clock_recovery_notifications_per_ring</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#RingBuffer_GetVmo_Result'>RingBuffer_GetVmo_Result</a></code>
+            </td>
+        </tr></table>
+
+### Start {#Start}
+
+<p>Start the ring buffer.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>start_time</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
+            </td>
+        </tr></table>
+
+### Stop {#Stop}
+
+<p>Stop the ring buffer. Once this call's response is received, no further position
+notifications will be sent until Start() is called again. TODO(39494): Add timestamp
+parameter.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+## StreamConfig {#StreamConfig}
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#158)*
+
+
+### GetProperties {#GetProperties}
+
+<p>Retrieves top level static properties.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>properties</code></td>
+            <td>
+                <code><a class='link' href='#StreamProperties'>StreamProperties</a></code>
+            </td>
+        </tr></table>
+
+### GetSupportedFormats {#GetSupportedFormats}
+
+<p>Gets formats supported by a given driver. When not all combinations supported by the
+driver can be described with one |SupportedFormats|, the driver returns more than one
+|SupportedFormats| in the returned vector. For example, if one |SupportedFormats| allows
+for 32 bits samples at 48KHz, and 16 bits samples at 96KHz, but not 32 bits samples at
+96KHz, then the driver replies with 2 |SupportedFormats|: &lt;&lt;32bits&gt;,&lt;48KHz&gt;&gt; and
+&lt;&lt;16bits&gt;,&lt;96KHz&gt;&gt;. For simplicity, this example ignores parameters other than rate and
+bits per sample. In the case where the driver supports either 16 or 32 bits samples at
+either 48 or 96KHz, the driver would reply with 1 |SupportedFormats|:
+&lt;&lt;16bits,32bits&gt;,&lt;48KHz,96KHz&gt;&gt;.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>supported_formats</code></td>
+            <td>
+                <code>vector&lt;<a class='link' href='#SupportedFormats'>SupportedFormats</a>&gt;[64]</code>
+            </td>
+        </tr></table>
+
+### CreateRingBuffer {#CreateRingBuffer}
+
+<p>|CreateRingBuffer| is sent by clients to select a stream format based on information that
+the driver provides in |GetSupportedFormats| what is supported by the client, and any other
+requirement. The |ring_buffer| channel is used to control the audio buffer, if a previous
+ring buffer channel had been established and was still active, the driver must close that
+(ring buffer) channel and make every attempt to gracefully quiesce any on-going streaming
+operations in the process.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>format</code></td>
+            <td>
+                <code><a class='link' href='#Format'>Format</a></code>
+            </td>
+        </tr><tr>
+            <td><code>ring_buffer</code></td>
+            <td>
+                <code>request&lt;<a class='link' href='#RingBuffer'>RingBuffer</a>&gt;</code>
+            </td>
+        </tr></table>
+
+
+
+### WatchGainState {#WatchGainState}
+
+<p>Get the gain state via a hanging get. The driver will reply to the first |WatchGainState|
+sent by the client. The driver will not respond to subsequent client |WatchGainState| calls
+until the gain state changes from what was most recently reported.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>gain_state</code></td>
+            <td>
+                <code><a class='link' href='#GainState'>GainState</a></code>
+            </td>
+        </tr></table>
+
+### SetGain {#SetGain}
+
+<p>Client update of the gain state.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>target_state</code></td>
+            <td>
+                <code><a class='link' href='#GainState'>GainState</a></code>
+            </td>
+        </tr></table>
+
+
+
+### WatchPlugState {#WatchPlugState}
+
+<p>Get the plug detect state via a hanging get. The driver will reply to the first
+|WatchPlugState| sent by the client. The driver will not respond to subsequent client
+|WatchPlugState| calls until the plug state changes from what was most recently reported.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>plug_state</code></td>
+            <td>
+                <code><a class='link' href='#PlugState'>PlugState</a></code>
+            </td>
+        </tr></table>
+
+
+
+## **STRUCTS**
+
+### RingBuffer_GetVmo_Response {#RingBuffer_GetVmo_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>num_frames</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>ring_buffer</code></td>
+            <td>
+                <code>handle&lt;vmo&gt;</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### RingBufferPositionInfo {#RingBufferPositionInfo}
+*Defined in [fuchsia.hardware.audio/ring_buffer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/ring_buffer.fidl#72)*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>timestamp</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
+            </td>
+            <td><p>The driver's best estimate of the time at which the playback/capture pointer reached the
+position indicated by |position|.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>position</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+            <td><p>The playback/capture pointer position (in bytes) in the ring buffer at time
+|timestamp| as estimated by the driver.</p>
+</td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### PcmSupportedFormats {#PcmSupportedFormats}
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#43)*
+
+
+
+<p>Format supporting non-compressed PCM audio. Frames are made up of |number_of_channels| samples
+which have |valid_bits_per_sample| bits of left-justified data within |bytes_per_sample|
+bytes. All values listed in each vector are supported. When not all combinations supported by
+the driver can be described with one |SupportedFormats| (and hence one |PcmSupportedFormats|),
+|GetSupportedFormats| returns more than one |SupportedFormats| in the returned vector.
+For more detailed information see //zircon/driver_interfaces/audio_streaming.md.</p>
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>number_of_channels</code></td>
+            <td>
+                <code>vector&lt;uint8&gt;[64]</code>
+            </td>
+            <td><p>Vector of possible number of channels supported in ascending order.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>sample_formats</code></td>
+            <td>
+                <code>vector&lt;<a class='link' href='#SampleFormat'>SampleFormat</a>&gt;[3]</code>
+            </td>
+            <td><p>Vector of possible |SampleFormat|s supported.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>bytes_per_sample</code></td>
+            <td>
+                <code>vector&lt;uint8&gt;[8]</code>
+            </td>
+            <td><p>Vector of possible number of bits allocated to hold a sample,
+equal or bigger than the actual sample size in |valid_bits_per_sample| in ascending order.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>valid_bits_per_sample</code></td>
+            <td>
+                <code>vector&lt;uint8&gt;[8]</code>
+            </td>
+            <td><p>Vector of possible number of bits in a sample in ascending order, must be equal or smaller
+than |bytes_per_channel| for samples to fit. If smaller, bits are left justified, and any
+additional bits will be ignored.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>frame_rates</code></td>
+            <td>
+                <code>vector&lt;uint32&gt;[64]</code>
+            </td>
+            <td><p>Vector of possible frame rates supported in ascending order.</p>
+</td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### PcmFormat {#PcmFormat}
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#71)*
+
+
+
+<p>Format supporting non-compressed PCM audio. Frames are made up of |number_of_channels| samples
+which have |valid_bits_per_sample| bits of left-justified data within |bytes_per_channel|.
+bytes. For more detailed information see //zircon/driver_interfaces/audio_streaming.md.</p>
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>number_of_channels</code></td>
+            <td>
+                <code>uint8</code>
+            </td>
+            <td><p>Number of channels.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>channels_to_use_bitmask</code></td>
+            <td>
+                <code>uint64</code>
+            </td>
+            <td><p>Which channels to use as a bitmask. Channels not set in the bitmask are ignored.
+The least significant bit corresponds to index 0.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>sample_format</code></td>
+            <td>
+                <code><a class='link' href='#SampleFormat'>SampleFormat</a></code>
+            </td>
+            <td><p>The format of all samples.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>bytes_per_sample</code></td>
+            <td>
+                <code>uint8</code>
+            </td>
+            <td><p>Bytes allocated to hold a sample, equal or bigger than the valid sample size in
+|valid_bits_per_sample|.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>valid_bits_per_sample</code></td>
+            <td>
+                <code>uint8</code>
+            </td>
+            <td><p>Number of valid bits in a sample, must be equal or smaller than bits in |bytes_per_sample|.
+If smaller, bits are left justified, and any additional bits must be ignored by the
+receiver.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>frame_rate</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+            <td><p>The frame rate for all samples.</p>
+</td>
+            <td>No default</td>
+        </tr>
+</table>
+
+
+
+## **ENUMS**
+
+### GetVmoError {#GetVmoError}
+Type: <code>uint32</code>
+
+*Defined in [fuchsia.hardware.audio/ring_buffer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/ring_buffer.fidl#82)*
+
+
+
+<table>
+    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
+            <td><code>INVALID_ARGS</code></td>
+            <td><code>1</code></td>
+            <td><p>The ring buffer setup failed due to an invalid argument, e.g. min_frames is too big.</p>
+</td>
+        </tr><tr>
+            <td><code>INTERNAL_ERROR</code></td>
+            <td><code>2</code></td>
+            <td><p>The ring buffer setup failed due to an internal error.</p>
+</td>
+        </tr></table>
+
+### SampleFormat {#SampleFormat}
+Type: <code>uint8</code>
+
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#21)*
+
+
+
+<table>
+    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
+            <td><code>PCM_SIGNED</code></td>
+            <td><code>1</code></td>
+            <td><p>Signed Linear Pulse Code Modulation samples at the host endianness.</p>
+</td>
+        </tr><tr>
+            <td><code>PCM_UNSIGNED</code></td>
+            <td><code>2</code></td>
+            <td><p>Unsigned Linear Pulse Code Modulation samples at the host endianness.</p>
+</td>
+        </tr><tr>
+            <td><code>PCM_FLOAT</code></td>
+            <td><code>3</code></td>
+            <td><p>Floating point samples IEEE-754 encoded.</p>
+</td>
+        </tr></table>
+
+### PlugDetectCapabilities {#PlugDetectCapabilities}
+Type: <code>uint32</code>
+
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#117)*
+
+
+
+<table>
+    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
+            <td><code>HARDWIRED</code></td>
+            <td><code>0</code></td>
+            <td><p>Stream is hardwired (will always be plugged in).</p>
+</td>
+        </tr><tr>
+            <td><code>CAN_ASYNC_NOTIFY</code></td>
+            <td><code>1</code></td>
+            <td><p>Stream is able to asynchronously notify of plug state changes.</p>
+</td>
+        </tr></table>
+
+
+
+## **TABLES**
+
+### RingBufferProperties {#RingBufferProperties}
+
+
+*Defined in [fuchsia.hardware.audio/ring_buffer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/ring_buffer.fidl#15)*
+
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>external_delay</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code>
+            </td>
+            <td><p>The driver's best estimate of the external delay (in nanoseconds) present in the
+presentation pipeline for the chosen format. When precisely synchronizing presentation
+across multiple entities (e.g. devices), the external delay should be taken into account.</p>
+</td>
+        </tr><tr>
+            <td>2</td>
+            <td><code>fifo_depth</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+            <td><p>Size (in bytes) representing a temporary buffer used by the driver in order to consume or
+generate the ring buffer contents. The ring buffer contents must be produced and consumed
+at the rate specified with the |CreateRingBuffer| command, however some amount of buffering
+is required when the data is written into and read from the ring buffer. For playback the
+data is consumed by the driver by reading ahead up to |fifo_depth| bytes. For capture the
+data is produced by the driver holding up to |fifo_depth| bytes at the time before
+committing it to main system memory. Hence |fifo_depth| must be taken into account by the
+client when determining either the minimum lead time requirement (for playback) or the
+maximum capture delay (for capture).</p>
+<p>To convert |fifo_depth| to the corresponding number of audio frames, use the frame size
+returned by |CreateRingBuffer| in the |StreamConfig| protocol, note that the |fifo_depth|
+is not necessarily a multiple size of an audio frame.</p>
+<p>The ring buffer data may be directly consumed/generated by hardware, in this case
+|fifo_depth| maps directly to the size of a hardware FIFO block, since the hardware FIFO
+block determines the amount of data read ahead or held back.</p>
+<p>The ring buffer data may instead be consumed/generated by audio driver software that is
+conceptually situated between the ring buffer and the audio hardware. In this case, for
+playback the |fifo_depth| read ahead amount is set large enough such that the driver
+guarantees no undetected underruns, this assuming the client is generating the data as
+determined by the |CreateRingBuffer| and |Start| commands. For capture, the
+|fifo_depth| held back amount is set large enough such that the driver guarantees no
+undetected underruns when generating the data as determined by the |CreateRingBuffer| and
+|Start| commands. The driver must set |fifo_depth| big enough such that the potential
+delays added by any software interfacing with the audio hardware do not occur under most
+scenarios, and must detect and report underruns. How an underrun is reported is not defined
+in this API.</p>
+</td>
+        </tr><tr>
+            <td>3</td>
+            <td><code>clock_domain</code></td>
+            <td>
+                <code><a class='link' href='#clock_domain'>clock_domain</a></code>
+            </td>
+            <td><p>An identifier for the clock domain in which this hardware operates. If the hardware is
+operating in CLOCK_DOMAIN_MONOTONIC, its nominal rate is locked to that of the
+ZX_CLOCK_MONOTONIC time reference. Given the start time, and a nominal rate, the position
+of the playback/capture pointer may always be calculated using a clock monotonic timestamp
+as the pointer's movement is locked to that of ZX_CLOCK_MONOTONIC.</p>
+<p>Other values indicate that playback/capture is not locked to ZX_CLOCK_MONOTONIC, and moves
+at its own rate depending on a number of factors. Client will need to make use of the
+timing information present in the position notification updates in order to recover the
+clock of the audio stream. The clock_domain comes from an system wide entity (or instance a
+platform bus or clock tree/global driver). Audio drivers retrieve clock_domain from such
+system wide entity.</p>
+</td>
+        </tr><tr>
+            <td>4</td>
+            <td><code>needs_cache_flush_or_invalidate</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+            <td><p>When set to true, indicates that clients need to make sure that their data has been flushed
+all the way to physical memory (in the case of playback) or that their view of the ring
+buffer will need to be invalidated before read (in the case of capture).</p>
+</td>
+        </tr></table>
+
+### SupportedFormats {#SupportedFormats}
+
+
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#32)*
+
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>pcm_supported_formats</code></td>
+            <td>
+                <code><a class='link' href='#PcmSupportedFormats'>PcmSupportedFormats</a></code>
+            </td>
+            <td><p>Supported formats for non-compressed PCM samples.</p>
+</td>
+        </tr></table>
+
+### Format {#Format}
+
+
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#63)*
+
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>pcm_format</code></td>
+            <td>
+                <code><a class='link' href='#PcmFormat'>PcmFormat</a></code>
+            </td>
+            <td><p>Format supporting non-compressed PCM samples.</p>
+</td>
+        </tr></table>
+
+### GainState {#GainState}
+
+
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#96)*
+
+<p>Gain state requested by the client or returned a current by the driver.</p>
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>muted</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+            <td><p>Current mute state. If not included, the state is unmuted.</p>
+</td>
+        </tr><tr>
+            <td>2</td>
+            <td><code>agc_enabled</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+            <td><p>Current Automatic Gain Control (AGC) state. If not included, AGC is disabled.</p>
+</td>
+        </tr><tr>
+            <td>3</td>
+            <td><code>gain_db</code></td>
+            <td>
+                <code>float32</code>
+            </td>
+            <td><p>Current gain in decibels. Must be included.</p>
+</td>
+        </tr></table>
+
+### PlugState {#PlugState}
+
+
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#108)*
+
+<p>Plug state as returned by the driver.</p>
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>plugged</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+            <td><p>Stream is currently plugged in. Must be included.</p>
+</td>
+        </tr><tr>
+            <td>2</td>
+            <td><code>plug_state_time</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
+            </td>
+            <td><p>Timestamps the information provided in the rest of the fields of this struct.
+Must be included.</p>
+</td>
+        </tr></table>
+
+### StreamProperties {#StreamProperties}
+
+
+*Defined in [fuchsia.hardware.audio/stream.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#125)*
+
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>unique_id</code></td>
+            <td>
+                <code>uint8[16]</code>
+            </td>
+            <td><p>A unique identifier. If not included, there is no unique id for the StreamConfig.</p>
+</td>
+        </tr><tr>
+            <td>2</td>
+            <td><code>is_input</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+            <td><p>Stream type is input or output. Must be included.</p>
+</td>
+        </tr><tr>
+            <td>3</td>
+            <td><code>can_mute</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+            <td><p>Gain mute capability. If not included, the StreamConfig can't mute.</p>
+</td>
+        </tr><tr>
+            <td>4</td>
+            <td><code>can_agc</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+            <td><p>Automatic Gain Control (AGC) capability. If not included, the StreamConfig can't AGC.</p>
+</td>
+        </tr><tr>
+            <td>5</td>
+            <td><code>min_gain_db</code></td>
+            <td>
+                <code>float32</code>
+            </td>
+            <td><p>Minimum gain in decibels. Must be included.</p>
+</td>
+        </tr><tr>
+            <td>6</td>
+            <td><code>max_gain_db</code></td>
+            <td>
+                <code>float32</code>
+            </td>
+            <td><p>Maximum gain in decibels. Must be included.</p>
+</td>
+        </tr><tr>
+            <td>7</td>
+            <td><code>gain_step_db</code></td>
+            <td>
+                <code>float32</code>
+            </td>
+            <td><p>Gain step in decibels, this value must not be negative, but may be zero to convey an
+effectively continuous range of values. Must be included.</p>
+</td>
+        </tr><tr>
+            <td>8</td>
+            <td><code>plug_detect_capabilities</code></td>
+            <td>
+                <code><a class='link' href='#PlugDetectCapabilities'>PlugDetectCapabilities</a></code>
+            </td>
+            <td><p>Plug Detect Capabilities. Must be included.</p>
+</td>
+        </tr><tr>
+            <td>9</td>
+            <td><code>manufacturer</code></td>
+            <td>
+                <code>string[256]</code>
+            </td>
+            <td><p>UI string for the manufacturer name. If not included, the manufacturer is unspecified.</p>
+</td>
+        </tr><tr>
+            <td>10</td>
+            <td><code>product</code></td>
+            <td>
+                <code>string[256]</code>
+            </td>
+            <td><p>UI string for the product name. If not included, the product name is unspecified.</p>
+</td>
+        </tr></table>
+
+
+
+## **UNIONS**
+
+### RingBuffer_GetVmo_Result {#RingBuffer_GetVmo_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#RingBuffer_GetVmo_Response'>RingBuffer_GetVmo_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#GetVmoError'>GetVmoError</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
 
 
 
 
 
 
+## **CONSTANTS**
+
+<table>
+    <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr><tr id="CLOCK_DOMAIN_MONOTONIC">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/ring_buffer.fidl#12">CLOCK_DOMAIN_MONOTONIC</a></td>
+            <td>
+                    <code>0</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="CLOCK_DOMAIN_EXTERNAL">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/ring_buffer.fidl#13">CLOCK_DOMAIN_EXTERNAL</a></td>
+            <td>
+                    <code>4294967295</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="UNIQUE_ID_SIZE">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#11">UNIQUE_ID_SIZE</a></td>
+            <td>
+                    <code>16</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="MAX_UI_STRING_SIZE">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#12">MAX_UI_STRING_SIZE</a></td>
+            <td>
+                    <code>256</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="MAX_COUNT_CHANNELS_TO_USE">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#13">MAX_COUNT_CHANNELS_TO_USE</a></td>
+            <td>
+                    <code>64</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="MAX_COUNT_SUPPORTED_NUMBER_OF_CHANNELS">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#14">MAX_COUNT_SUPPORTED_NUMBER_OF_CHANNELS</a></td>
+            <td>
+                    <code>64</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="MAX_COUNT_SUPPORTED_SAMPLE_FORMATS">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#15">MAX_COUNT_SUPPORTED_SAMPLE_FORMATS</a></td>
+            <td>
+                    <code>3</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="MAX_COUNT_SUPPORTED_RATES">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#16">MAX_COUNT_SUPPORTED_RATES</a></td>
+            <td>
+                    <code>64</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="MAX_COUNT_SUPPORTED_BYTES_PER_SAMPLE">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#17">MAX_COUNT_SUPPORTED_BYTES_PER_SAMPLE</a></td>
+            <td>
+                    <code>8</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="MAX_COUNT_SUPPORTED_VALID_BITS_PER_SAMPLE">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#18">MAX_COUNT_SUPPORTED_VALID_BITS_PER_SAMPLE</a></td>
+            <td>
+                    <code>8</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    <tr id="MAX_COUNT_FORMATS">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/stream.fidl#19">MAX_COUNT_FORMATS</a></td>
+            <td>
+                    <code>64</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td></td>
+        </tr>
+    
+</table>
 
 
 
+## **TYPE ALIASES**
 
-
-
-
-
-
+<table>
+    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr id="clock_domain">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-hardware-audio/ring_buffer.fidl#11">clock_domain</a></td>
+            <td>
+                <code>uint32</code></td>
+            <td></td>
+        </tr></table>
 
diff --git a/all/fidl/fuchsia.hardware.input/README.md b/all/fidl/fuchsia.hardware.input/README.md
index 6efd476..3fe4a96 100644
--- a/all/fidl/fuchsia.hardware.input/README.md
+++ b/all/fidl/fuchsia.hardware.input/README.md
@@ -218,8 +218,10 @@
 
 ### GetReportsEvent {#GetReportsEvent}
 
-<p>Receive an event that will be signalled when there are reports in the
-Device's report FIFO.</p>
+<p>Receive an event that will signal on <code>ZX_USER_SIGNAL_0</code> when there are reports in the
+Device's report FIFO. This signal will be de-asserted when there are no
+reports in the Device's report FIFO. This event can be re-used each time
+the client wishes to know if there are reports in the FIFO.</p>
 
 #### Request
 <table>
diff --git a/all/fidl/fuchsia.identity.account/README.md b/all/fidl/fuchsia.identity.account/README.md
index 6658dc7..ebc4120 100644
--- a/all/fidl/fuchsia.identity.account/README.md
+++ b/all/fidl/fuchsia.identity.account/README.md
@@ -1591,7 +1591,7 @@
 </table>
 
 ### AuthMechanismProperties {#AuthMechanismProperties}
-*Defined in [fuchsia.identity.account/common.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.account/common.fidl#118)*
+*Defined in [fuchsia.identity.account/common.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.account/common.fidl#122)*
 
 
 
@@ -1619,7 +1619,7 @@
 </table>
 
 ### AuthMechanismEnrollmentMetadata {#AuthMechanismEnrollmentMetadata}
-*Defined in [fuchsia.identity.account/common.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.account/common.fidl#133)*
+*Defined in [fuchsia.identity.account/common.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.account/common.fidl#137)*
 
 
 
@@ -1874,6 +1874,12 @@
 operation. The request should not be retried unless the server state
 has been corrected before the retry.</p>
 </td>
+        </tr><tr>
+            <td><code>FAILED_AUTHENTICATION</code></td>
+            <td><code>10</code></td>
+            <td><p>The request cannot be processed due to a rejected authentication
+attempt. User consent or input is required before any retry.</p>
+</td>
         </tr></table>
 
 
@@ -2358,7 +2364,7 @@
 its personae.</p>
 </td>
         </tr><tr id="AuthMechanismId">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.account/common.fidl#115">AuthMechanismId</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.account/common.fidl#119">AuthMechanismId</a></td>
             <td>
                 <code>string</code></td>
             <td><p>A fuchsia component URI pointing to a component containing an authentication
@@ -2366,7 +2372,7 @@
 authentication mechanism.</p>
 </td>
         </tr><tr id="AuthMechanismEnrollmentId">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.account/common.fidl#130">AuthMechanismEnrollmentId</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.account/common.fidl#134">AuthMechanismEnrollmentId</a></td>
             <td>
                 <code>uint64</code></td>
             <td><p>An identifier for an enrollment of an authentication mechanism. It is
diff --git a/all/fidl/fuchsia.identity.internal/README.md b/all/fidl/fuchsia.identity.internal/README.md
index da9a9d7..ebdecb5 100644
--- a/all/fidl/fuchsia.identity.internal/README.md
+++ b/all/fidl/fuchsia.identity.internal/README.md
@@ -6,7 +6,7 @@
 ## **PROTOCOLS**
 
 ## AccountHandlerControl {#AccountHandlerControl}
-*Defined in [fuchsia.identity.internal/account_handler.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#81)*
+*Defined in [fuchsia.identity.internal/account_handler.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#82)*
 
 <p>The control channel for an AccountHandler component.</p>
 <p>This interface is intended only for use by the AccountManager component that
@@ -24,25 +24,25 @@
 <pre><code>                                       |
                                        V
                                +---------------+
-                +--------------| Uninitialized |
-                |              +---------------+
-                |                      |
-                | PrepareForTransfer   |
-                V                      |
-      +------------------+             |
-      | PendingTransfer  |             |
-      +------------------+             |
-                |                      |
-                | PerformTransfer      | CreateAccount/
-                V                      | LoadAccount
-      +------------------+             |
-      |   Transferred    |             |
-      +------------------+             |
-                |                      |
-                | FinalizeTransfer     |
-                |                      V
-                |              +---------------+
-                +-------------&gt;|  Initialized  |
+                +--------------| Uninitialized |------------+
+                |              +---------------+            |
+                |                      |                    |
+                | PrepareForTransfer   |                    | Preload
+                V                      |                    V
+      +------------------+             |           +------------------+
+      | PendingTransfer  |             |           |      Locked      |
+      +------------------+             |           +------------------+
+                |                      |                    ^
+                | PerformTransfer      |                    |
+                V                      |                    |
+      +------------------+             |                    | LockAccount /
+      |   Transferred    |             | CreateAccount      | UnlockAccount
+      +------------------+             |                    |
+                |                      |                    |
+                | FinalizeTransfer     |                    |
+                |                      V                    |
+                |              +---------------+            |
+                +-------------&gt;|  Initialized  |&lt;-----------+
                                +---------------+
                                        |
                                        | Terminate
@@ -63,6 +63,8 @@
 manager.  The account is not available for use, and regardless of the
 intended lifetime of the account on this device, the account is not
 saved to disk.</li>
+<li><code>Locked</code> - the handler has loaded pre-authentication data, which lets it
+unlock the account subsequently.</li>
 <li><code>Initialized</code> - the handler has loaded account information and is ready
 to serve requests for the <code>Account</code> interface.  If the account is
 persistent on this device, then it is saved to disk.</li>
@@ -72,7 +74,8 @@
 
 ### CreateAccount {#CreateAccount}
 
-<p>Creates a completely new Fuchsia account.</p>
+<p>Creates a completely new Fuchsia account, optionally protecting the
+account with a single enrollment of an authentication mechanism.</p>
 <p><code>auth_mechanism_id</code> An <code>AuthMechanismId</code> for a storage
 unlock-capable authentication mechanism. If
 provided, a single enrollment of that
@@ -102,10 +105,10 @@
             </td>
         </tr></table>
 
-### LoadAccount {#LoadAccount}
+### Preload {#Preload}
 
-<p>Loads information about a Fuchsia account that was previously provisioned
-on the current device.</p>
+<p>Loads pre-auth data, which allows the account to be unlocked later.</p>
+<p>This moves the AccountHandler from the <code>Uninitialized</code> state to the <code>Locked</code> state.</p>
 <p>Fails with FAILED_PRECONDITION if the AccountHandler is not in the <code>Uninitialized</code>
 state.</p>
 
@@ -121,7 +124,55 @@
     <tr>
             <td><code>result</code></td>
             <td>
-                <code><a class='link' href='#AccountHandlerControl_LoadAccount_Result'>AccountHandlerControl_LoadAccount_Result</a></code>
+                <code><a class='link' href='#AccountHandlerControl_Preload_Result'>AccountHandlerControl_Preload_Result</a></code>
+            </td>
+        </tr></table>
+
+### UnlockAccount {#UnlockAccount}
+
+<p>Reach the <code>Initialized</code> state, attempting authentication and unlocking the account where
+necessary.</p>
+<p>Fails with</p>
+<ul>
+<li>FAILED_PRECONDITION if the AccountHandler is not in the <code>Locked</code> or <code>Initialized</code> state.</li>
+<li>FAILED_AUTH_ATTEMPT if the authentication attempt failed.</li>
+</ul>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#AccountHandlerControl_UnlockAccount_Result'>AccountHandlerControl_UnlockAccount_Result</a></code>
+            </td>
+        </tr></table>
+
+### LockAccount {#LockAccount}
+
+<p>Reach the <code>Locked</code> state, closing any open <code>Account</code> and <code>Persona</code> channels for the account.</p>
+<p>Fails with FAILED_PRECONDITION if the AccountHandler is not in the <code>Initialized</code> or
+<code>Locked</code> state.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#AccountHandlerControl_LockAccount_Result'>AccountHandlerControl_LockAccount_Result</a></code>
             </td>
         </tr></table>
 
@@ -410,7 +461,7 @@
 
 
 ## AccountHandlerContext {#AccountHandlerContext}
-*Defined in [fuchsia.identity.internal/account_handler.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#253)*
+*Defined in [fuchsia.identity.internal/account_handler.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#270)*
 
 <p>An interface that supplies the account and authentication services that
 an AccountHandler needs to perform its role in the system.</p>
@@ -536,7 +587,29 @@
     <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
 </table>
 
-### AccountHandlerControl_LoadAccount_Response {#AccountHandlerControl_LoadAccount_Response}
+### AccountHandlerControl_Preload_Response {#AccountHandlerControl_Preload_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### AccountHandlerControl_UnlockAccount_Response {#AccountHandlerControl_UnlockAccount_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### AccountHandlerControl_LockAccount_Response {#AccountHandlerControl_LockAccount_Response}
 *generated*
 
 
@@ -698,7 +771,7 @@
 ### AccountData {#AccountData}
 
 
-*Defined in [fuchsia.identity.internal/account_handler.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#289)*
+*Defined in [fuchsia.identity.internal/account_handler.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#306)*
 
 <p>Contents of an account, used for serialization during account transfer.</p>
 
@@ -738,7 +811,7 @@
             <td></td>
         </tr></table>
 
-### AccountHandlerControl_LoadAccount_Result {#AccountHandlerControl_LoadAccount_Result}
+### AccountHandlerControl_Preload_Result {#AccountHandlerControl_Preload_Result}
 *generated*
 
 
@@ -746,7 +819,45 @@
     <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
             <td><code>response</code></td>
             <td>
-                <code><a class='link' href='#AccountHandlerControl_LoadAccount_Response'>AccountHandlerControl_LoadAccount_Response</a></code>
+                <code><a class='link' href='#AccountHandlerControl_Preload_Response'>AccountHandlerControl_Preload_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.identity.account/'>fuchsia.identity.account</a>/<a class='link' href='../fuchsia.identity.account/#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### AccountHandlerControl_UnlockAccount_Result {#AccountHandlerControl_UnlockAccount_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#AccountHandlerControl_UnlockAccount_Response'>AccountHandlerControl_UnlockAccount_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.identity.account/'>fuchsia.identity.account</a>/<a class='link' href='../fuchsia.identity.account/#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### AccountHandlerControl_LockAccount_Result {#AccountHandlerControl_LockAccount_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#AccountHandlerControl_LockAccount_Response'>AccountHandlerControl_LockAccount_Response</a></code>
             </td>
             <td></td>
         </tr><tr>
@@ -1010,7 +1121,7 @@
                 <code>array</code>[<code><a class='link' href='#HASH_SALT_SIZE'>HASH_SALT_SIZE</a></code>]</td>
             <td></td>
         </tr><tr id="EncryptedAccountData">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#295">EncryptedAccountData</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#312">EncryptedAccountData</a></td>
             <td>
                 <code>vector</code></td>
             <td><p>Encrypted form of AccountData.</p>
diff --git a/all/fidl/fuchsia.input.report/README.md b/all/fidl/fuchsia.input.report/README.md
index 3c93ac3..bfec3ec 100644
--- a/all/fidl/fuchsia.input.report/README.md
+++ b/all/fidl/fuchsia.input.report/README.md
@@ -440,12 +440,13 @@
 </td>
         </tr></table>
 
-### KeyboardDescriptor {#KeyboardDescriptor}
+### KeyboardInputDescriptor {#KeyboardInputDescriptor}
 
 
-*Defined in [fuchsia.input.report/keyboard.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/keyboard.fidl#19)*
+*Defined in [fuchsia.input.report/keyboard.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/keyboard.fidl#20)*
 
-<p>The capabilities of a keyboard device.</p>
+<p>Describes the format of the input report that will be sent from the keyboard
+to the device.</p>
 
 
 <table>
@@ -460,10 +461,29 @@
 </td>
         </tr></table>
 
-### KeyboardReport {#KeyboardReport}
+### KeyboardDescriptor {#KeyboardDescriptor}
 
 
-*Defined in [fuchsia.input.report/keyboard.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/keyboard.fidl#25)*
+*Defined in [fuchsia.input.report/keyboard.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/keyboard.fidl#26)*
+
+<p>The capabilities of a keyboard device.</p>
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>input</code></td>
+            <td>
+                <code><a class='link' href='#KeyboardInputDescriptor'>KeyboardInputDescriptor</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### KeyboardInputReport {#KeyboardInputReport}
+
+
+*Defined in [fuchsia.input.report/keyboard.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/keyboard.fidl#31)*
 
 <p>A single report created by a keyboard device.</p>
 
@@ -480,12 +500,13 @@
 </td>
         </tr></table>
 
-### MouseDescriptor {#MouseDescriptor}
+### MouseInputDescriptor {#MouseInputDescriptor}
 
 
-*Defined in [fuchsia.input.report/mouse.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/mouse.fidl#12)*
+*Defined in [fuchsia.input.report/mouse.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/mouse.fidl#13)*
 
-<p>|MouseDescriptor| describes the capabilities of a mouse.</p>
+<p>Describes the format of the input report that will be sent from the mouse
+to the device.</p>
 
 
 <table>
@@ -532,10 +553,29 @@
 </td>
         </tr></table>
 
-### MouseReport {#MouseReport}
+### MouseDescriptor {#MouseDescriptor}
 
 
-*Defined in [fuchsia.input.report/mouse.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/mouse.fidl#33)*
+*Defined in [fuchsia.input.report/mouse.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/mouse.fidl#31)*
+
+<p>The capabilities of a mouse device.</p>
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>input</code></td>
+            <td>
+                <code><a class='link' href='#MouseInputDescriptor'>MouseInputDescriptor</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### MouseInputReport {#MouseInputReport}
+
+
+*Defined in [fuchsia.input.report/mouse.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/mouse.fidl#39)*
 
 <p>|MouseReport| gives the relative movement of the mouse and currently
 pressed buttons. Relative means the movement seen between the previous
@@ -609,7 +649,7 @@
             <td>2</td>
             <td><code>mouse</code></td>
             <td>
-                <code><a class='link' href='#MouseReport'>MouseReport</a></code>
+                <code><a class='link' href='#MouseInputReport'>MouseInputReport</a></code>
             </td>
             <td><p>|mouse| is the report generated if the device contains a mouse.</p>
 </td>
@@ -617,7 +657,7 @@
             <td>4</td>
             <td><code>sensor</code></td>
             <td>
-                <code><a class='link' href='#SensorReport'>SensorReport</a></code>
+                <code><a class='link' href='#SensorInputReport'>SensorInputReport</a></code>
             </td>
             <td><p>|sensor| is the report generated if the device contains a sensor.</p>
 </td>
@@ -625,7 +665,7 @@
             <td>5</td>
             <td><code>touch</code></td>
             <td>
-                <code><a class='link' href='#TouchReport'>TouchReport</a></code>
+                <code><a class='link' href='#TouchInputReport'>TouchInputReport</a></code>
             </td>
             <td><p>|touch| is the report generated if the device contains a touch device.</p>
 </td>
@@ -633,7 +673,7 @@
             <td>6</td>
             <td><code>keyboard</code></td>
             <td>
-                <code><a class='link' href='#KeyboardReport'>KeyboardReport</a></code>
+                <code><a class='link' href='#KeyboardInputReport'>KeyboardInputReport</a></code>
             </td>
             <td><p>|keyboard| is the report generated if the device contains a keyboard.</p>
 </td>
@@ -647,12 +687,13 @@
 </td>
         </tr></table>
 
-### SensorDescriptor {#SensorDescriptor}
+### SensorInputDescriptor {#SensorInputDescriptor}
 
 
-*Defined in [fuchsia.input.report/sensor.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/sensor.fidl#50)*
+*Defined in [fuchsia.input.report/sensor.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/sensor.fidl#51)*
 
-<p>|SensorDescriptor| describes the capabilities of a sensor.</p>
+<p>Describes the format of the input report that will be sent from the keyboard
+to the device.</p>
 
 
 <table>
@@ -668,10 +709,29 @@
 </td>
         </tr></table>
 
-### SensorReport {#SensorReport}
+### SensorDescriptor {#SensorDescriptor}
 
 
-*Defined in [fuchsia.input.report/sensor.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/sensor.fidl#57)*
+*Defined in [fuchsia.input.report/sensor.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/sensor.fidl#58)*
+
+<p>The capabilities of a sensor device.</p>
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>input</code></td>
+            <td>
+                <code><a class='link' href='#SensorInputDescriptor'>SensorInputDescriptor</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### SensorInputReport {#SensorInputReport}
+
+
+*Defined in [fuchsia.input.report/sensor.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/sensor.fidl#63)*
 
 <p>|SensorReport| gives the values measured by a sensor at a given point in time.</p>
 
@@ -689,7 +749,7 @@
 </td>
         </tr></table>
 
-### ContactDescriptor {#ContactDescriptor}
+### ContactInputDescriptor {#ContactInputDescriptor}
 
 
 *Defined in [fuchsia.input.report/touch.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/touch.fidl#18)*
@@ -741,12 +801,13 @@
 </td>
         </tr></table>
 
-### TouchDescriptor {#TouchDescriptor}
+### TouchInputDescriptor {#TouchInputDescriptor}
 
 
-*Defined in [fuchsia.input.report/touch.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/touch.fidl#36)*
+*Defined in [fuchsia.input.report/touch.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/touch.fidl#37)*
 
-<p><code>TouchDescriptor</code> describes the fields associated with an individual touch device.</p>
+<p>Describes the format of the input report that will be sent from the keyboard
+to the device.</p>
 
 
 <table>
@@ -755,7 +816,7 @@
             <td>1</td>
             <td><code>contacts</code></td>
             <td>
-                <code>vector&lt;<a class='link' href='#ContactDescriptor'>ContactDescriptor</a>&gt;[10]</code>
+                <code>vector&lt;<a class='link' href='#ContactInputDescriptor'>ContactInputDescriptor</a>&gt;[10]</code>
             </td>
             <td><p>The contact descriptors associated with this touch descriptor.</p>
 </td>
@@ -777,10 +838,29 @@
 </td>
         </tr></table>
 
-### ContactReport {#ContactReport}
+### TouchDescriptor {#TouchDescriptor}
 
 
-*Defined in [fuchsia.input.report/touch.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/touch.fidl#48)*
+*Defined in [fuchsia.input.report/touch.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/touch.fidl#49)*
+
+<p>The capabilities of a touch device.</p>
+
+
+<table>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
+            <td><code>input</code></td>
+            <td>
+                <code><a class='link' href='#TouchInputDescriptor'>TouchInputDescriptor</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### ContactInputReport {#ContactInputReport}
+
+
+*Defined in [fuchsia.input.report/touch.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/touch.fidl#54)*
 
 <p><code>Contact</code> describes one touch on a touch device.</p>
 
@@ -843,10 +923,10 @@
 </td>
         </tr></table>
 
-### TouchReport {#TouchReport}
+### TouchInputReport {#TouchInputReport}
 
 
-*Defined in [fuchsia.input.report/touch.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/touch.fidl#75)*
+*Defined in [fuchsia.input.report/touch.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.input.report/touch.fidl#81)*
 
 <p><code>TouchscreenReport</code> describes the current contacts recorded by the touchscreen.</p>
 
@@ -857,7 +937,7 @@
             <td>1</td>
             <td><code>contacts</code></td>
             <td>
-                <code>vector&lt;<a class='link' href='#ContactReport'>ContactReport</a>&gt;[10]</code>
+                <code>vector&lt;<a class='link' href='#ContactInputReport'>ContactInputReport</a>&gt;[10]</code>
             </td>
             <td><p>The contacts currently being reported by the device.</p>
 </td>
diff --git a/all/fidl/fuchsia.io/README.md b/all/fidl/fuchsia.io/README.md
index a6305ca..d3a1646 100644
--- a/all/fidl/fuchsia.io/README.md
+++ b/all/fidl/fuchsia.io/README.md
@@ -6,7 +6,7 @@
 ## **PROTOCOLS**
 
 ## Node {#Node}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#164)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#178)*
 
 <p>Node defines the minimal interface for entities which can be accessed in a filesystem.</p>
 
@@ -253,7 +253,7 @@
         </tr></table>
 
 ## File {#File}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#317)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#331)*
 
 <p>File defines the interface of a node which contains a flat layout of data.</p>
 
@@ -794,7 +794,7 @@
         </tr></table>
 
 ## DirectoryWatcher {#DirectoryWatcher}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#437)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#451)*
 
 <p>DirectoryWatcher transmits messages from a filesystem server
 about events happening in the filesystem. Clients can register
@@ -817,7 +817,7 @@
 
 
 ## Directory {#Directory}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#444)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#458)*
 
 <p>Directory defines a node which is capable of containing other Objects.</p>
 
@@ -1380,7 +1380,7 @@
         </tr></table>
 
 ## DirectoryAdmin {#DirectoryAdmin}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#620)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#634)*
 
 <p>DirectoryAdmin defines a directory which is capable of handling
 administrator tasks within the filesystem.</p>
@@ -2109,7 +2109,7 @@
 ## **STRUCTS**
 
 ### Service {#Service}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#27)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#30)*
 
 
 
@@ -2122,7 +2122,7 @@
 </table>
 
 ### FileObject {#FileObject}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#36)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#39)*
 
 
 
@@ -2146,7 +2146,7 @@
 </table>
 
 ### DirectoryObject {#DirectoryObject}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#47)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#50)*
 
 
 
@@ -2158,7 +2158,7 @@
 </table>
 
 ### Pipe {#Pipe}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#51)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#54)*
 
 
 
@@ -2176,27 +2176,8 @@
         </tr>
 </table>
 
-### Socket {#Socket}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#56)*
-
-
-
-<p>The object is accompanied by a socket.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>socket</code></td>
-            <td>
-                <code>handle&lt;socket&gt;</code>
-            </td>
-            <td></td>
-            <td>No default</td>
-        </tr>
-</table>
-
 ### Vmofile {#Vmofile}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#64)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#62)*
 
 
 
@@ -2235,7 +2216,7 @@
 </table>
 
 ### Device {#Device}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#85)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#83)*
 
 
 
@@ -2256,7 +2237,7 @@
 </table>
 
 ### Tty {#Tty}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#93)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#91)*
 
 
 
@@ -2274,8 +2255,66 @@
         </tr>
 </table>
 
+### Socket {#Socket}
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#96)*
+
+
+
+<p>The object may be cast to interface <a class='link' href='#fuchsia.posix.socket.Control'>fuchsia.posix.socket.Control</a>.</p>
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>socket</code></td>
+            <td>
+                <code>handle&lt;socket&gt;</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### DatagramSocket {#DatagramSocket}
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#101)*
+
+
+
+<p>The object may be cast to interface <a class='link' href='#fuchsia.posix.socket.DatagramSocket'>fuchsia.posix.socket.DatagramSocket</a>.</p>
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>event</code></td>
+            <td>
+                <code>handle&lt;eventpair&gt;</code>
+            </td>
+            <td><p>See <a class='link' href='#fuchsia.posix.socket.DatagramSocket'>fuchsia.posix.socket.DatagramSocket</a> for details.</p>
+</td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### StreamSocket {#StreamSocket}
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#107)*
+
+
+
+<p>The object may be cast to interface <a class='link' href='#fuchsia.posix.socket.StreamSocket'>fuchsia.posix.socket.StreamSocket</a>.</p>
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>socket</code></td>
+            <td>
+                <code>handle&lt;socket&gt;</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
 ### NodeAttributes {#NodeAttributes}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#254)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#268)*
 
 
 
@@ -2343,7 +2382,7 @@
 </table>
 
 ### WatchedEvent {#WatchedEvent}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#425)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#439)*
 
 
 
@@ -2376,7 +2415,7 @@
 </table>
 
 ### FilesystemInfo {#FilesystemInfo}
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#589)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#603)*
 
 
 
@@ -2481,7 +2520,7 @@
 ### SeekOrigin {#SeekOrigin}
 Type: <code>uint32</code>
 
-*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#287)*
+*Defined in [fuchsia.io/io.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#301)*
 
 <p>Update the Seek offset.</p>
 
@@ -2566,6 +2605,18 @@
                 <code><a class='link' href='#Socket'>Socket</a></code>
             </td>
             <td></td>
+        </tr><tr>
+            <td><code>datagram_socket</code></td>
+            <td>
+                <code><a class='link' href='#DatagramSocket'>DatagramSocket</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>stream_socket</code></td>
+            <td>
+                <code><a class='link' href='#StreamSocket'>StreamSocket</a></code>
+            </td>
+            <td></td>
         </tr></table>
 
 
@@ -2578,7 +2629,7 @@
 
 <table>
     <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr><tr id="FILE_SIGNAL_READABLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#31">FILE_SIGNAL_READABLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#34">FILE_SIGNAL_READABLE</a></td>
             <td>
                     <code>16777216</code>
                 </td>
@@ -2587,7 +2638,7 @@
 </td>
         </tr>
     <tr id="FILE_SIGNAL_WRITABLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#33">FILE_SIGNAL_WRITABLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#36">FILE_SIGNAL_WRITABLE</a></td>
             <td>
                     <code>33554432</code>
                 </td>
@@ -2596,7 +2647,7 @@
 </td>
         </tr>
     <tr id="DEVICE_SIGNAL_READABLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#74">DEVICE_SIGNAL_READABLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#72">DEVICE_SIGNAL_READABLE</a></td>
             <td>
                     <code>16777216</code>
                 </td>
@@ -2605,7 +2656,7 @@
 </td>
         </tr>
     <tr id="DEVICE_SIGNAL_OOB">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#76">DEVICE_SIGNAL_OOB</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#74">DEVICE_SIGNAL_OOB</a></td>
             <td>
                     <code>33554432</code>
                 </td>
@@ -2614,7 +2665,7 @@
 </td>
         </tr>
     <tr id="DEVICE_SIGNAL_WRITABLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#78">DEVICE_SIGNAL_WRITABLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#76">DEVICE_SIGNAL_WRITABLE</a></td>
             <td>
                     <code>67108864</code>
                 </td>
@@ -2623,7 +2674,7 @@
 </td>
         </tr>
     <tr id="DEVICE_SIGNAL_ERROR">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#80">DEVICE_SIGNAL_ERROR</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#78">DEVICE_SIGNAL_ERROR</a></td>
             <td>
                     <code>134217728</code>
                 </td>
@@ -2632,7 +2683,7 @@
 </td>
         </tr>
     <tr id="DEVICE_SIGNAL_HANGUP">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#82">DEVICE_SIGNAL_HANGUP</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#80">DEVICE_SIGNAL_HANGUP</a></td>
             <td>
                     <code>268435456</code>
                 </td>
@@ -2641,7 +2692,7 @@
 </td>
         </tr>
     <tr id="OPEN_RIGHT_READABLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#98">OPEN_RIGHT_READABLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#112">OPEN_RIGHT_READABLE</a></td>
             <td>
                     <code>1</code>
                 </td>
@@ -2650,7 +2701,7 @@
 </td>
         </tr>
     <tr id="OPEN_RIGHT_WRITABLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#100">OPEN_RIGHT_WRITABLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#114">OPEN_RIGHT_WRITABLE</a></td>
             <td>
                     <code>2</code>
                 </td>
@@ -2659,7 +2710,7 @@
 </td>
         </tr>
     <tr id="OPEN_RIGHT_ADMIN">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#102">OPEN_RIGHT_ADMIN</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#116">OPEN_RIGHT_ADMIN</a></td>
             <td>
                     <code>4</code>
                 </td>
@@ -2668,7 +2719,7 @@
 </td>
         </tr>
     <tr id="OPEN_RIGHT_EXECUTABLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#104">OPEN_RIGHT_EXECUTABLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#118">OPEN_RIGHT_EXECUTABLE</a></td>
             <td>
                     <code>8</code>
                 </td>
@@ -2677,7 +2728,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_CREATE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#107">OPEN_FLAG_CREATE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#121">OPEN_FLAG_CREATE</a></td>
             <td>
                     <code>65536</code>
                 </td>
@@ -2686,7 +2737,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_CREATE_IF_ABSENT">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#109">OPEN_FLAG_CREATE_IF_ABSENT</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#123">OPEN_FLAG_CREATE_IF_ABSENT</a></td>
             <td>
                     <code>131072</code>
                 </td>
@@ -2695,7 +2746,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_TRUNCATE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#111">OPEN_FLAG_TRUNCATE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#125">OPEN_FLAG_TRUNCATE</a></td>
             <td>
                     <code>262144</code>
                 </td>
@@ -2704,7 +2755,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_DIRECTORY">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#114">OPEN_FLAG_DIRECTORY</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#128">OPEN_FLAG_DIRECTORY</a></td>
             <td>
                     <code>524288</code>
                 </td>
@@ -2714,7 +2765,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_APPEND">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#116">OPEN_FLAG_APPEND</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#130">OPEN_FLAG_APPEND</a></td>
             <td>
                     <code>1048576</code>
                 </td>
@@ -2723,7 +2774,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_NO_REMOTE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#118">OPEN_FLAG_NO_REMOTE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#132">OPEN_FLAG_NO_REMOTE</a></td>
             <td>
                     <code>2097152</code>
                 </td>
@@ -2732,7 +2783,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_NODE_REFERENCE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#129">OPEN_FLAG_NODE_REFERENCE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#143">OPEN_FLAG_NODE_REFERENCE</a></td>
             <td>
                     <code>4194304</code>
                 </td>
@@ -2752,7 +2803,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAGS_ALLOWED_WITH_NODE_REFERENCE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#132">OPEN_FLAGS_ALLOWED_WITH_NODE_REFERENCE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#146">OPEN_FLAGS_ALLOWED_WITH_NODE_REFERENCE</a></td>
             <td>
                     <code>46661632</code>
                 </td>
@@ -2762,7 +2813,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_DESCRIBE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#135">OPEN_FLAG_DESCRIBE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#149">OPEN_FLAG_DESCRIBE</a></td>
             <td>
                     <code>8388608</code>
                 </td>
@@ -2772,7 +2823,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_POSIX">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#153">OPEN_FLAG_POSIX</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#167">OPEN_FLAG_POSIX</a></td>
             <td>
                     <code>16777216</code>
                 </td>
@@ -2797,7 +2848,7 @@
 </td>
         </tr>
     <tr id="OPEN_FLAG_NOT_DIRECTORY">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#156">OPEN_FLAG_NOT_DIRECTORY</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#170">OPEN_FLAG_NOT_DIRECTORY</a></td>
             <td>
                     <code>33554432</code>
                 </td>
@@ -2807,7 +2858,7 @@
 </td>
         </tr>
     <tr id="CLONE_FLAG_SAME_RIGHTS">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#160">CLONE_FLAG_SAME_RIGHTS</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#174">CLONE_FLAG_SAME_RIGHTS</a></td>
             <td>
                     <code>67108864</code>
                 </td>
@@ -2818,7 +2869,7 @@
 </td>
         </tr>
     <tr id="MODE_PROTECTION_MASK">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#242">MODE_PROTECTION_MASK</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#256">MODE_PROTECTION_MASK</a></td>
             <td>
                     <code>4095</code>
                 </td>
@@ -2830,7 +2881,7 @@
 </td>
         </tr>
     <tr id="MODE_TYPE_MASK">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#246">MODE_TYPE_MASK</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#260">MODE_TYPE_MASK</a></td>
             <td>
                     <code>1044480</code>
                 </td>
@@ -2841,7 +2892,7 @@
 </td>
         </tr>
     <tr id="MODE_TYPE_DIRECTORY">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#247">MODE_TYPE_DIRECTORY</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#261">MODE_TYPE_DIRECTORY</a></td>
             <td>
                     <code>16384</code>
                 </td>
@@ -2849,7 +2900,7 @@
             <td></td>
         </tr>
     <tr id="MODE_TYPE_BLOCK_DEVICE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#248">MODE_TYPE_BLOCK_DEVICE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#262">MODE_TYPE_BLOCK_DEVICE</a></td>
             <td>
                     <code>24576</code>
                 </td>
@@ -2857,7 +2908,7 @@
             <td></td>
         </tr>
     <tr id="MODE_TYPE_FILE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#249">MODE_TYPE_FILE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#263">MODE_TYPE_FILE</a></td>
             <td>
                     <code>32768</code>
                 </td>
@@ -2865,7 +2916,7 @@
             <td></td>
         </tr>
     <tr id="MODE_TYPE_SOCKET">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#250">MODE_TYPE_SOCKET</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#264">MODE_TYPE_SOCKET</a></td>
             <td>
                     <code>49152</code>
                 </td>
@@ -2873,7 +2924,7 @@
             <td></td>
         </tr>
     <tr id="MODE_TYPE_SERVICE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#251">MODE_TYPE_SERVICE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#265">MODE_TYPE_SERVICE</a></td>
             <td>
                     <code>65536</code>
                 </td>
@@ -2881,7 +2932,7 @@
             <td></td>
         </tr>
     <tr id="MAX_BUF">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#273">MAX_BUF</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#287">MAX_BUF</a></td>
             <td>
                     <code>8192</code>
                 </td>
@@ -2891,7 +2942,7 @@
 </td>
         </tr>
     <tr id="MAX_PATH">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#277">MAX_PATH</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#291">MAX_PATH</a></td>
             <td>
                     <code>4096</code>
                 </td>
@@ -2900,7 +2951,7 @@
 </td>
         </tr>
     <tr id="MAX_FILENAME">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#279">MAX_FILENAME</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#293">MAX_FILENAME</a></td>
             <td>
                     <code>255</code>
                 </td>
@@ -2909,7 +2960,7 @@
 </td>
         </tr>
     <tr id="NODE_ATTRIBUTE_FLAG_CREATION_TIME">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#283">NODE_ATTRIBUTE_FLAG_CREATION_TIME</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#297">NODE_ATTRIBUTE_FLAG_CREATION_TIME</a></td>
             <td>
                     <code>1</code>
                 </td>
@@ -2919,7 +2970,7 @@
 </td>
         </tr>
     <tr id="NODE_ATTRIBUTE_FLAG_MODIFICATION_TIME">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#284">NODE_ATTRIBUTE_FLAG_MODIFICATION_TIME</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#298">NODE_ATTRIBUTE_FLAG_MODIFICATION_TIME</a></td>
             <td>
                     <code>2</code>
                 </td>
@@ -2927,7 +2978,7 @@
             <td></td>
         </tr>
     <tr id="VMO_FLAG_READ">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#297">VMO_FLAG_READ</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#311">VMO_FLAG_READ</a></td>
             <td>
                     <code>1</code>
                 </td>
@@ -2936,7 +2987,7 @@
 </td>
         </tr>
     <tr id="VMO_FLAG_WRITE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#300">VMO_FLAG_WRITE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#314">VMO_FLAG_WRITE</a></td>
             <td>
                     <code>2</code>
                 </td>
@@ -2945,7 +2996,7 @@
 </td>
         </tr>
     <tr id="VMO_FLAG_EXEC">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#303">VMO_FLAG_EXEC</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#317">VMO_FLAG_EXEC</a></td>
             <td>
                     <code>4</code>
                 </td>
@@ -2954,7 +3005,7 @@
 </td>
         </tr>
     <tr id="VMO_FLAG_PRIVATE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#308">VMO_FLAG_PRIVATE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#322">VMO_FLAG_PRIVATE</a></td>
             <td>
                     <code>65536</code>
                 </td>
@@ -2965,7 +3016,7 @@
 </td>
         </tr>
     <tr id="VMO_FLAG_EXACT">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#313">VMO_FLAG_EXACT</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#327">VMO_FLAG_EXACT</a></td>
             <td>
                     <code>131072</code>
                 </td>
@@ -2976,7 +3027,7 @@
 </td>
         </tr>
     <tr id="DIRENT_TYPE_UNKNOWN">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#383">DIRENT_TYPE_UNKNOWN</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#397">DIRENT_TYPE_UNKNOWN</a></td>
             <td>
                     <code>0</code>
                 </td>
@@ -2985,7 +3036,7 @@
 </td>
         </tr>
     <tr id="DIRENT_TYPE_DIRECTORY">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#385">DIRENT_TYPE_DIRECTORY</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#399">DIRENT_TYPE_DIRECTORY</a></td>
             <td>
                     <code>4</code>
                 </td>
@@ -2994,7 +3045,7 @@
 </td>
         </tr>
     <tr id="DIRENT_TYPE_BLOCK_DEVICE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#387">DIRENT_TYPE_BLOCK_DEVICE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#401">DIRENT_TYPE_BLOCK_DEVICE</a></td>
             <td>
                     <code>6</code>
                 </td>
@@ -3003,7 +3054,7 @@
 </td>
         </tr>
     <tr id="DIRENT_TYPE_FILE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#389">DIRENT_TYPE_FILE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#403">DIRENT_TYPE_FILE</a></td>
             <td>
                     <code>8</code>
                 </td>
@@ -3012,7 +3063,7 @@
 </td>
         </tr>
     <tr id="DIRENT_TYPE_SOCKET">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#391">DIRENT_TYPE_SOCKET</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#405">DIRENT_TYPE_SOCKET</a></td>
             <td>
                     <code>12</code>
                 </td>
@@ -3021,7 +3072,7 @@
 </td>
         </tr>
     <tr id="DIRENT_TYPE_SERVICE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#393">DIRENT_TYPE_SERVICE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#407">DIRENT_TYPE_SERVICE</a></td>
             <td>
                     <code>16</code>
                 </td>
@@ -3030,7 +3081,7 @@
 </td>
         </tr>
     <tr id="INO_UNKNOWN">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#397">INO_UNKNOWN</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#411">INO_UNKNOWN</a></td>
             <td>
                     <code>18446744073709551615</code>
                 </td>
@@ -3040,7 +3091,7 @@
 </td>
         </tr>
     <tr id="WATCH_EVENT_DELETED">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#400">WATCH_EVENT_DELETED</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#414">WATCH_EVENT_DELETED</a></td>
             <td>
                     <code>0</code>
                 </td>
@@ -3049,7 +3100,7 @@
 </td>
         </tr>
     <tr id="WATCH_EVENT_ADDED">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#402">WATCH_EVENT_ADDED</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#416">WATCH_EVENT_ADDED</a></td>
             <td>
                     <code>1</code>
                 </td>
@@ -3058,7 +3109,7 @@
 </td>
         </tr>
     <tr id="WATCH_EVENT_REMOVED">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#404">WATCH_EVENT_REMOVED</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#418">WATCH_EVENT_REMOVED</a></td>
             <td>
                     <code>2</code>
                 </td>
@@ -3067,7 +3118,7 @@
 </td>
         </tr>
     <tr id="WATCH_EVENT_EXISTING">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#406">WATCH_EVENT_EXISTING</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#420">WATCH_EVENT_EXISTING</a></td>
             <td>
                     <code>3</code>
                 </td>
@@ -3076,7 +3127,7 @@
 </td>
         </tr>
     <tr id="WATCH_EVENT_IDLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#408">WATCH_EVENT_IDLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#422">WATCH_EVENT_IDLE</a></td>
             <td>
                     <code>4</code>
                 </td>
@@ -3085,7 +3136,7 @@
 </td>
         </tr>
     <tr id="WATCH_MASK_DELETED">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#411">WATCH_MASK_DELETED</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#425">WATCH_MASK_DELETED</a></td>
             <td>
                     <code>1</code>
                 </td>
@@ -3094,7 +3145,7 @@
 </td>
         </tr>
     <tr id="WATCH_MASK_ADDED">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#413">WATCH_MASK_ADDED</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#427">WATCH_MASK_ADDED</a></td>
             <td>
                     <code>2</code>
                 </td>
@@ -3103,7 +3154,7 @@
 </td>
         </tr>
     <tr id="WATCH_MASK_REMOVED">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#415">WATCH_MASK_REMOVED</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#429">WATCH_MASK_REMOVED</a></td>
             <td>
                     <code>4</code>
                 </td>
@@ -3112,7 +3163,7 @@
 </td>
         </tr>
     <tr id="WATCH_MASK_EXISTING">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#417">WATCH_MASK_EXISTING</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#431">WATCH_MASK_EXISTING</a></td>
             <td>
                     <code>8</code>
                 </td>
@@ -3121,7 +3172,7 @@
 </td>
         </tr>
     <tr id="WATCH_MASK_IDLE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#419">WATCH_MASK_IDLE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#433">WATCH_MASK_IDLE</a></td>
             <td>
                     <code>16</code>
                 </td>
@@ -3130,7 +3181,7 @@
 </td>
         </tr>
     <tr id="WATCH_MASK_ALL">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#421">WATCH_MASK_ALL</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#435">WATCH_MASK_ALL</a></td>
             <td>
                     <code>31</code>
                 </td>
@@ -3139,7 +3190,7 @@
 </td>
         </tr>
     <tr id="MOUNT_CREATE_FLAG_REPLACE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#585">MOUNT_CREATE_FLAG_REPLACE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#599">MOUNT_CREATE_FLAG_REPLACE</a></td>
             <td>
                     <code>1</code>
                 </td>
@@ -3147,7 +3198,7 @@
             <td></td>
         </tr>
     <tr id="MAX_FS_NAME_BUFFER">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#587">MAX_FS_NAME_BUFFER</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-io/io.fidl#601">MAX_FS_NAME_BUFFER</a></td>
             <td>
                     <code>32</code>
                 </td>
diff --git a/all/fidl/fuchsia.net.dns/README.md b/all/fidl/fuchsia.net.dns/README.md
deleted file mode 100644
index 62fdb6b..0000000
--- a/all/fidl/fuchsia.net.dns/README.md
+++ /dev/null
@@ -1,139 +0,0 @@
-[TOC]
-
-# fuchsia.net.dns
-
-
-## **PROTOCOLS**
-
-## DnsPolicy {#DnsPolicy}
-*Defined in [fuchsia.net.dns/dns.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.dns/dns.fidl#29)*
-
-<p>This interface is used to interact with the policy layer of the fuchsia
-netstack implementation that is hosted in netcfg.  This interface is
-for use solely by privileged system components such as a 'system setting'
-user interface, and can be used to change system-wide DNS settings.</p>
-
-### SetDNSConfig {#SetDNSConfig}
-
-<p>Set the DNS servers' IP addresses.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>config</code></td>
-            <td>
-                <code><a class='link' href='#DNSConfig'>DNSConfig</a></code>
-            </td>
-        </tr></table>
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>result</code></td>
-            <td>
-                <code><a class='link' href='#NetError'>NetError</a></code>
-            </td>
-        </tr></table>
-
-### GetDNSConfig {#GetDNSConfig}
-
-<p>Get the DNS servers' IP addresses.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    </table>
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>current</code></td>
-            <td>
-                <code><a class='link' href='#DNSConfig'>DNSConfig</a></code>
-            </td>
-        </tr></table>
-
-
-
-## **STRUCTS**
-
-### NetError {#NetError}
-*Defined in [fuchsia.net.dns/dns.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.dns/dns.fidl#15)*
-
-
-
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='#Status'>Status</a></code>
-            </td>
-            <td></td>
-            <td>No default</td>
-        </tr>
-</table>
-
-### DNSConfig {#DNSConfig}
-*Defined in [fuchsia.net.dns/dns.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.dns/dns.fidl#20)*
-
-
-
-<p>Settings for the system-wide DNS behavior.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>dns_servers</code></td>
-            <td>
-                <code>vector&lt;<a class='link' href='../fuchsia.net/'>fuchsia.net</a>/<a class='link' href='../fuchsia.net/#IpAddress'>IpAddress</a>&gt;</code>
-            </td>
-            <td></td>
-            <td>No default</td>
-        </tr>
-</table>
-
-
-
-## **ENUMS**
-
-### Status {#Status}
-Type: <code>uint32</code>
-
-*Defined in [fuchsia.net.dns/dns.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.dns/dns.fidl#9)*
-
-
-
-<table>
-    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
-            <td><code>OK</code></td>
-            <td><code>0</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>UNKNOWN_ERROR</code></td>
-            <td><code>1</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>PARSE_ERROR</code></td>
-            <td><code>2</code></td>
-            <td></td>
-        </tr></table>
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/all/fidl/fuchsia.net.http/README.md b/all/fidl/fuchsia.net.http/README.md
index f37dbd8..628c211 100644
--- a/all/fidl/fuchsia.net.http/README.md
+++ b/all/fidl/fuchsia.net.http/README.md
@@ -6,12 +6,12 @@
 ## **PROTOCOLS**
 
 ## Loader {#Loader}
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#155)*
+*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#106)*
 
 <p>An HTTP loader.</p>
-<p>The loader can service many HTTP requests concurrently. The loader tracks all
-the outstanding requests and will cancel them all if the client closes the
-loader interface.</p>
+<p>The loader can service many HTTP requests concurrently. The loader tracks
+all the outstanding requests and will cancel them all if the client closes
+the loader interface.</p>
 
 ### Fetch {#Fetch}
 
@@ -19,8 +19,8 @@
 response.</p>
 <p>The loader will follow redirects (up to an implementation-defined limit)
 and return the final response as a reply to this message. To cancel the
-request, either close the loader interface or close the peer to the <code>event</code>
-included in the <code>request</code>.</p>
+request, either close the loader interface or close the peer to the
+<code>event</code> included in the <code>request</code>.</p>
 
 #### Request
 <table>
@@ -48,8 +48,8 @@
 <p>Initiate the given HTTP request and return all intermediate responses to
 the given client.</p>
 <p>Unlike <code>Fetch</code>, <code>Start</code> does not automatically follow all redirects.
-Instead, each individual response along the redirect chain is delivered to
-the <code>LoaderClient</code>.</p>
+Instead, each individual response along the redirect chain is delivered
+to the <code>LoaderClient</code>.</p>
 
 #### Request
 <table>
@@ -69,7 +69,7 @@
 
 
 ## LoaderClient {#LoaderClient}
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#177)*
+*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#128)*
 
 <p>A client interface used with <code>Loader.Start</code>.</p>
 <p>Closing the underlying channel will cancel the associated HTTP transaction.</p>
@@ -77,9 +77,10 @@
 ### OnResponse {#OnResponse}
 
 <p>Called by the loader when the loader receives an HTTP response.</p>
-<p>If the server has requested a redirect, then <code>redirect</code> will be non-null
-and describe the target the server requested. To follow the redirect, reply
-to this message. To not follow the redirect, close the underlying channel.</p>
+<p>If the server has requested a redirect, then <code>redirect</code> in <code>response</code>
+table will describe the target the server requested. To follow the
+redirect, reply to this message. To not follow the redirect, close the
+underlying channel.</p>
 
 #### Request
 <table>
@@ -89,11 +90,6 @@
             <td>
                 <code><a class='link' href='#Response'>Response</a></code>
             </td>
-        </tr><tr>
-            <td><code>redirect</code></td>
-            <td>
-                <code><a class='link' href='#RedirectTarget'>RedirectTarget</a>?</code>
-            </td>
         </tr></table>
 
 
@@ -106,38 +102,8 @@
 
 ## **STRUCTS**
 
-### Error {#Error}
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#10)*
-
-
-
-<p>An error occurred during the HTTP transaction.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>code</code></td>
-            <td>
-                <code>int32</code>
-            </td>
-            <td><p>The numerical error code.</p>
-<p>These error codes correspond to
-<a href="https://fuchsia.googlesource.com/fuchsia/+/master/garnet/bin/network/net_error_list.h">https://fuchsia.googlesource.com/fuchsia/+/master/garnet/bin/network/net_error_list.h</a></p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>description</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-            <td><p>A textual description of the error in en-US.</p>
-</td>
-            <td>No default</td>
-        </tr>
-</table>
-
 ### Header {#Header}
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#22)*
+*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#21)*
 
 
 
@@ -164,82 +130,83 @@
         </tr>
 </table>
 
+
+
+## **ENUMS**
+
+### Error {#Error}
+Type: <code>uint32</code>
+
+*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#12)*
+
+<p>An error occurred during the HTTP transaction.</p>
+
+
+<table>
+    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
+            <td><code>INTERNAL</code></td>
+            <td><code>1</code></td>
+            <td><p>Some other problem occurred that cannot be classified using one of the
+more specific statuses. Retry is optional.</p>
+</td>
+        </tr></table>
+
+
+
+## **TABLES**
+
 ### Request {#Request}
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#76)*
 
 
+*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#39)*
 
 <p>An HTTP request.</p>
 
 
 <table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
             <td><code>method</code></td>
             <td>
-                <code>string</code>
+                <code><a class='link' href='#Method'>Method</a></code>
             </td>
             <td><p>The HTTP method if applicable.</p>
+<p>Defaults to &quot;GET&quot;.</p>
 </td>
-            <td>GET</td>
         </tr><tr>
+            <td>2</td>
             <td><code>url</code></td>
             <td>
                 <code>vector&lt;uint8&gt;</code>
             </td>
             <td><p>The URL to load.</p>
+<p>Required.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
+            <td>3</td>
             <td><code>headers</code></td>
             <td>
-                <code>vector&lt;<a class='link' href='#Header'>Header</a>&gt;?</code>
+                <code>vector&lt;<a class='link' href='#Header'>Header</a>&gt;</code>
             </td>
             <td><p>Additional HTTP request headers.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
+            <td>4</td>
             <td><code>body</code></td>
             <td>
-                <code><a class='link' href='#Body'>Body</a>?</code>
+                <code><a class='link' href='#Body'>Body</a></code>
             </td>
-            <td><p>The payload for the request body. For HTTP requests, the method must be set
-to &quot;POST&quot; or &quot;PUT&quot;. If a buffer is used for the body, a Content-Length
-header will automatically be added.</p>
+            <td><p>The payload for the request body. For HTTP requests, the method must be
+set to &quot;POST&quot; or &quot;PUT&quot;. If a buffer is used for the body, a
+Content-Length header will automatically be added.</p>
 </td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>event</code></td>
-            <td>
-                <code>handle&lt;eventpair&gt;?</code>
-            </td>
-            <td><p>The loader will cancel the request if the peer for this event is closed.</p>
-<p>When this happens, the loader will send a Response with the appropriate
-error code.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>cache_mode</code></td>
-            <td>
-                <code><a class='link' href='#CacheMode'>CacheMode</a></code>
-            </td>
-            <td><p>The cache behavior for the request.</p>
-</td>
-            <td><a class='link' href='#CacheMode.DEFAULT'>CacheMode.DEFAULT</a></td>
-        </tr><tr>
-            <td><code>response_body_mode</code></td>
-            <td>
-                <code><a class='link' href='#ResponseBodyMode'>ResponseBodyMode</a></code>
-            </td>
-            <td><p>The response body mode.</p>
-</td>
-            <td><a class='link' href='#ResponseBodyMode.BUFFER'>ResponseBodyMode.BUFFER</a></td>
-        </tr>
-</table>
+        </tr></table>
 
 ### RedirectTarget {#RedirectTarget}
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#109)*
 
 
+*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#64)*
 
 <p>A description of the redirect the server requested.</p>
 <p>The semantics of an HTTP redirect vary according to the status code use to
@@ -248,183 +215,110 @@
 
 
 <table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
             <td><code>method</code></td>
             <td>
-                <code>string</code>
+                <code><a class='link' href='#Method'>Method</a></code>
             </td>
             <td><p>The HTTP method the server suggested for the redirect.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
+            <td>2</td>
             <td><code>url</code></td>
             <td>
                 <code>vector&lt;uint8&gt;</code>
             </td>
             <td><p>The URL the server suggested for the redirect.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
+            <td>3</td>
             <td><code>referrer</code></td>
             <td>
                 <code>vector&lt;uint8&gt;</code>
             </td>
             <td><p>The referrer the server suggested for the redirect.</p>
 </td>
-            <td>No default</td>
-        </tr>
-</table>
+        </tr></table>
 
 ### Response {#Response}
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#121)*
 
 
+*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#76)*
 
 <p>A response to an HTTP request.</p>
 
 
 <table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
+    <tr>
+            <td>1</td>
             <td><code>error</code></td>
             <td>
-                <code><a class='link' href='#Error'>Error</a>?</code>
+                <code><a class='link' href='#Error'>Error</a></code>
             </td>
-            <td><p>If the response resulted in a network level error, this field will be set.</p>
+            <td><p>If the response resulted in a network level error, this field will be
+set.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
+            <td>2</td>
             <td><code>body</code></td>
             <td>
-                <code><a class='link' href='#Body'>Body</a>?</code>
+                <code>handle&lt;socket&gt;</code>
             </td>
             <td><p>The response body.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
-            <td><code>url</code></td>
+            <td>3</td>
+            <td><code>final_url</code></td>
             <td>
-                <code>vector&lt;uint8&gt;?</code>
+                <code>vector&lt;uint8&gt;</code>
             </td>
             <td><p>The final URL of the response, after redirects have been followed.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
+            <td>4</td>
             <td><code>status_code</code></td>
             <td>
                 <code>uint32</code>
             </td>
             <td><p>The HTTP status code.</p>
-<p>0 if not applicable.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
+            <td>5</td>
             <td><code>status_line</code></td>
             <td>
-                <code>string?</code>
+                <code>vector&lt;uint8&gt;</code>
             </td>
             <td><p>The HTTP status line.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
+            <td>6</td>
             <td><code>headers</code></td>
             <td>
-                <code>vector&lt;<a class='link' href='#Header'>Header</a>&gt;?</code>
+                <code>vector&lt;<a class='link' href='#Header'>Header</a>&gt;</code>
             </td>
             <td><p>The HTTP response headers.</p>
 </td>
-            <td>No default</td>
         </tr><tr>
-            <td><code>mime_type</code></td>
+            <td>7</td>
+            <td><code>redirect</code></td>
             <td>
-                <code>string?</code>
+                <code><a class='link' href='#RedirectTarget'>RedirectTarget</a></code>
             </td>
-            <td><p>The MIME type of the response body.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>charset</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-            <td><p>The character set of the response body.</p>
-</td>
-            <td>No default</td>
-        </tr>
-</table>
-
-
-
-## **ENUMS**
-
-### CacheMode {#CacheMode}
-Type: <code>uint32</code>
-
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#40)*
-
-<p>Specify the cache behavior of the request.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
-            <td><code>DEFAULT</code></td>
-            <td><code>0</code></td>
-            <td><p>Default behavior.</p>
-</td>
-        </tr><tr>
-            <td><code>BYPASS_CACHE</code></td>
-            <td><code>1</code></td>
-            <td><p>The HTTP request will bypass the local cache and will have a
-'Cache-Control: nocache' header added in that causes any proxy servers
-to also not satisfy the request from their cache.  This has the effect
-of forcing a full end-to-end fetch.</p>
-</td>
-        </tr><tr>
-            <td><code>ONLY_FROM_CACHE</code></td>
-            <td><code>2</code></td>
-            <td><p>The HTTP request will fail if it cannot serve the requested resource
-from the cache (or some equivalent local store).</p>
+            <td><p>A description of the redirect the server requested, if any.</p>
 </td>
         </tr></table>
 
-### ResponseBodyMode {#ResponseBodyMode}
-Type: <code>uint32</code>
-
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#62)*
-
-<p>Specify the mechanism used to return the response body.</p>
-<p>Streaming the response can be more efficient if the response body is large
-and can be processed incrementally (e.g., by an image decoder).</p>
-<p>Buffering the response can be more efficient if the response body is in cache
-and the cache entry can be directly mapped into the resulting buffer.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
-            <td><code>BUFFER</code></td>
-            <td><code>0</code></td>
-            <td><p>The complete response body should be returned in the <code>buffer</code> field of
-the response body.</p>
-<p>The loader MAY abort the transation if the buffer size exceeds an
-implementation-defined limit.</p>
-</td>
-        </tr><tr>
-            <td><code>STREAM</code></td>
-            <td><code>1</code></td>
-            <td><p>The response body should be streamed through the <code>stream</code> field of the
-response body.</p>
-</td>
-        </tr></table>
-
-
-
 
 
 ## **UNIONS**
 
 ### Body {#Body}
-*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#31)*
+*Defined in [fuchsia.net.http/client.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#30)*
 
-<p>The body of either an HTTP request or an HTTP response.</p>
+<p>The body of an HTTP request.</p>
 
 <table>
     <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
@@ -451,3 +345,13 @@
 
 
 
+## **TYPE ALIASES**
+
+<table>
+    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr id="Method">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.http/client.fidl#9">Method</a></td>
+            <td>
+                <code>string</code></td>
+            <td></td>
+        </tr></table>
+
diff --git a/all/fidl/fuchsia.posix.socket/README.md b/all/fidl/fuchsia.posix.socket/README.md
index 3b7629b..6297e8c 100644
--- a/all/fidl/fuchsia.posix.socket/README.md
+++ b/all/fidl/fuchsia.posix.socket/README.md
@@ -484,8 +484,1385 @@
             </td>
         </tr></table>
 
+## BaseSocket {#BaseSocket}
+*Defined in [fuchsia.posix.socket/socket.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-posix-socket/socket.fidl#60)*
+
+<p>A network socket.</p>
+<p>Once a socket has been retrieved from a <code>Provider</code>, this interface is then used to further
+configure and use the socket. This interface is essentially POSIX. Its implementation must
+support Linux-specific arguments to {Get,Set}SockOpt.</p>
+<p>All methods on this type are nonblocking; their exact behaviors match their Linux counterparts.</p>
+<p><em>Warning:</em> This protocol is not yet ready for direct use by clients. Instead, clients should
+use the BSD sockets API to interact with sockets. We plan to change this protocol substantially
+and clients that couple directly to this protocol will make those changes more difficult.</p>
+
+### Clone {#Clone}
+
+<p>Create another connection to the same remote object.</p>
+<p><code>flags</code> may be any of:</p>
+<ul>
+<li><code>OPEN_RIGHT_*</code></li>
+<li><code>OPEN_FLAG_APPEND</code></li>
+<li><code>OPEN_FLAG_NO_REMOTE</code></li>
+<li><code>OPEN_FLAG_DESCRIBE</code></li>
+<li><code>CLONE_FLAG_SAME_RIGHTS</code></li>
+</ul>
+<p>All other flags are ignored.</p>
+<p>The <code>OPEN_RIGHT_*</code> bits in <code>flags</code> request corresponding rights over the resulting
+cloned object.
+The cloned object must have rights less than or equal to the original object.
+Alternatively, pass <code>CLONE_FLAG_SAME_RIGHTS</code> to inherit the rights on the source connection.
+It is invalid to pass any of the <code>OPEN_RIGHT_*</code> flags together with
+<code>CLONE_FLAG_SAME_RIGHTS</code>.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>object</code></td>
+            <td>
+                <code>request&lt;<a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#Node'>Node</a>&gt;</code>
+            </td>
+        </tr></table>
+
+
+
+### Close {#Close}
+
+<p>Terminates connection with object.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### Describe {#Describe}
+
+<p>Returns extra information about the type of the object.
+If the <code>Describe</code> operation fails, the connection is closed.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>info</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeInfo'>NodeInfo</a></code>
+            </td>
+        </tr></table>
+
+### OnOpen {#OnOpen}
+
+<p>An event produced eagerly by a FIDL server if requested by <code>OPEN_FLAG_DESCRIBE</code>.</p>
+<p>Indicates the success or failure of the open operation, and optionally describes the
+object. If the status is <code>ZX_OK</code>, <code>info</code> contains descriptive information about the object
+(the same as would be returned by <code>Describe</code>).</p>
+
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>info</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeInfo'>NodeInfo</a>?</code>
+            </td>
+        </tr></table>
+
+### Sync {#Sync}
+
+<p>Synchronizes updates to the node to the underlying media, if it exists.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### GetAttr {#GetAttr}
+
+<p>Acquires information about the node.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>attributes</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeAttributes'>NodeAttributes</a></code>
+            </td>
+        </tr></table>
+
+### SetAttr {#SetAttr}
+
+<p>Updates information about the node.
+<code>flags</code> may be any of <code>NODE_ATTRIBUTE_FLAG_*</code>.</p>
+<p>This method requires following rights: <code>OPEN_RIGHT_WRITABLE</code>.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>attributes</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeAttributes'>NodeAttributes</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### NodeGetFlags {#NodeGetFlags}
+
+<p>Acquires the <code>Directory.Open</code> rights and flags used to access this file.</p>
+<p>This method does not require any rights.
+This method has the same functionality as GetFlags for File and is
+meant as an in-progress replacement.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr></table>
+
+### NodeSetFlags {#NodeSetFlags}
+
+<p>Changes the <code>Directory.Open</code> flags used to access the file.
+Supported flags which can be turned on / off:</p>
+<ul>
+<li><code>OPEN_FLAG_APPEND</code></li>
+</ul>
+<p>This method does not require any rights.
+This method has the same functionality as SetFlags for File and is
+meant as an in-progress replacement.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### Bind {#Bind}
+
+<p>Sets the local address used for the socket.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_Bind_Result'>BaseSocket_Bind_Result</a></code>
+            </td>
+        </tr></table>
+
+### Connect {#Connect}
+
+<p>Initiates a connection to a remote address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_Connect_Result'>BaseSocket_Connect_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetSockName {#GetSockName}
+
+<p>Retrieves the local socket address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetSockName_Result'>BaseSocket_GetSockName_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetPeerName {#GetPeerName}
+
+<p>Retrieves the remote socket address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetPeerName_Result'>BaseSocket_GetPeerName_Result</a></code>
+            </td>
+        </tr></table>
+
+### SetSockOpt {#SetSockOpt}
+
+<p>Sets the value of a socket option.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>level</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optname</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optval</code></td>
+            <td>
+                <code><a class='link' href='#sockopt'>sockopt</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_SetSockOpt_Result'>BaseSocket_SetSockOpt_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetSockOpt {#GetSockOpt}
+
+<p>Retrieves the value of a socket option.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>level</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optname</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetSockOpt_Result'>BaseSocket_GetSockOpt_Result</a></code>
+            </td>
+        </tr></table>
+
+## DatagramSocket {#DatagramSocket}
+*Defined in [fuchsia.posix.socket/socket.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-posix-socket/socket.fidl#83)*
+
+<p>A datagram socket.</p>
+<p>This type's <a class='link' href='../fuchsia.io.Node/'>fuchsia.io.Node</a>/<a class='link' href='../fuchsia.io.Node/#Describe'>Describe</a> method returns an eventpair which is used to signal
+additional information about the state of the socket such as readiness or shutdown-ness.</p>
+<p>All methods on this type are nonblocking; their exact behaviors match their Linux counterparts.</p>
+
+### Clone {#Clone}
+
+<p>Create another connection to the same remote object.</p>
+<p><code>flags</code> may be any of:</p>
+<ul>
+<li><code>OPEN_RIGHT_*</code></li>
+<li><code>OPEN_FLAG_APPEND</code></li>
+<li><code>OPEN_FLAG_NO_REMOTE</code></li>
+<li><code>OPEN_FLAG_DESCRIBE</code></li>
+<li><code>CLONE_FLAG_SAME_RIGHTS</code></li>
+</ul>
+<p>All other flags are ignored.</p>
+<p>The <code>OPEN_RIGHT_*</code> bits in <code>flags</code> request corresponding rights over the resulting
+cloned object.
+The cloned object must have rights less than or equal to the original object.
+Alternatively, pass <code>CLONE_FLAG_SAME_RIGHTS</code> to inherit the rights on the source connection.
+It is invalid to pass any of the <code>OPEN_RIGHT_*</code> flags together with
+<code>CLONE_FLAG_SAME_RIGHTS</code>.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>object</code></td>
+            <td>
+                <code>request&lt;<a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#Node'>Node</a>&gt;</code>
+            </td>
+        </tr></table>
+
+
+
+### Close {#Close}
+
+<p>Terminates connection with object.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### Describe {#Describe}
+
+<p>Returns extra information about the type of the object.
+If the <code>Describe</code> operation fails, the connection is closed.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>info</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeInfo'>NodeInfo</a></code>
+            </td>
+        </tr></table>
+
+### OnOpen {#OnOpen}
+
+<p>An event produced eagerly by a FIDL server if requested by <code>OPEN_FLAG_DESCRIBE</code>.</p>
+<p>Indicates the success or failure of the open operation, and optionally describes the
+object. If the status is <code>ZX_OK</code>, <code>info</code> contains descriptive information about the object
+(the same as would be returned by <code>Describe</code>).</p>
+
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>info</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeInfo'>NodeInfo</a>?</code>
+            </td>
+        </tr></table>
+
+### Sync {#Sync}
+
+<p>Synchronizes updates to the node to the underlying media, if it exists.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### GetAttr {#GetAttr}
+
+<p>Acquires information about the node.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>attributes</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeAttributes'>NodeAttributes</a></code>
+            </td>
+        </tr></table>
+
+### SetAttr {#SetAttr}
+
+<p>Updates information about the node.
+<code>flags</code> may be any of <code>NODE_ATTRIBUTE_FLAG_*</code>.</p>
+<p>This method requires following rights: <code>OPEN_RIGHT_WRITABLE</code>.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>attributes</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeAttributes'>NodeAttributes</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### NodeGetFlags {#NodeGetFlags}
+
+<p>Acquires the <code>Directory.Open</code> rights and flags used to access this file.</p>
+<p>This method does not require any rights.
+This method has the same functionality as GetFlags for File and is
+meant as an in-progress replacement.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr></table>
+
+### NodeSetFlags {#NodeSetFlags}
+
+<p>Changes the <code>Directory.Open</code> flags used to access the file.
+Supported flags which can be turned on / off:</p>
+<ul>
+<li><code>OPEN_FLAG_APPEND</code></li>
+</ul>
+<p>This method does not require any rights.
+This method has the same functionality as SetFlags for File and is
+meant as an in-progress replacement.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### Bind {#Bind}
+
+<p>Sets the local address used for the socket.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_Bind_Result'>BaseSocket_Bind_Result</a></code>
+            </td>
+        </tr></table>
+
+### Connect {#Connect}
+
+<p>Initiates a connection to a remote address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_Connect_Result'>BaseSocket_Connect_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetSockName {#GetSockName}
+
+<p>Retrieves the local socket address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetSockName_Result'>BaseSocket_GetSockName_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetPeerName {#GetPeerName}
+
+<p>Retrieves the remote socket address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetPeerName_Result'>BaseSocket_GetPeerName_Result</a></code>
+            </td>
+        </tr></table>
+
+### SetSockOpt {#SetSockOpt}
+
+<p>Sets the value of a socket option.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>level</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optname</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optval</code></td>
+            <td>
+                <code><a class='link' href='#sockopt'>sockopt</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_SetSockOpt_Result'>BaseSocket_SetSockOpt_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetSockOpt {#GetSockOpt}
+
+<p>Retrieves the value of a socket option.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>level</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optname</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetSockOpt_Result'>BaseSocket_GetSockOpt_Result</a></code>
+            </td>
+        </tr></table>
+
+### Shutdown {#Shutdown}
+
+<p>Shuts down part of the socket.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>how</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#DatagramSocket_Shutdown_Result'>DatagramSocket_Shutdown_Result</a></code>
+            </td>
+        </tr></table>
+
+### RecvMsg {#RecvMsg}
+
+<p>Receives a message from the socket.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>addr_len</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>data_len</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>control_len</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#DatagramSocket_RecvMsg_Result'>DatagramSocket_RecvMsg_Result</a></code>
+            </td>
+        </tr></table>
+
+### SendMsg {#SendMsg}
+
+<p>Sends a message on the socket.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+        </tr><tr>
+            <td><code>data</code></td>
+            <td>
+                <code>vector&lt;vector&gt;</code>
+            </td>
+        </tr><tr>
+            <td><code>control</code></td>
+            <td>
+                <code>vector&lt;uint8&gt;</code>
+            </td>
+        </tr><tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#DatagramSocket_SendMsg_Result'>DatagramSocket_SendMsg_Result</a></code>
+            </td>
+        </tr></table>
+
+## StreamSocket {#StreamSocket}
+*Defined in [fuchsia.posix.socket/socket.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-posix-socket/socket.fidl#102)*
+
+<p>A stream socket.</p>
+<p>This type's <a class='link' href='../fuchsia.io.Node/'>fuchsia.io.Node</a>/<a class='link' href='../fuchsia.io.Node/#Describe'>Describe</a> method returns a socket which is used to transfer data
+to and from the caller. Signals are used to communicate additional information about the state
+of the socket such as connectedness and the presence of incoming connections in the case of a
+listening socket.</p>
+<p>All methods on this type are nonblocking; their exact behaviors match their Linux counterparts.</p>
+
+### Clone {#Clone}
+
+<p>Create another connection to the same remote object.</p>
+<p><code>flags</code> may be any of:</p>
+<ul>
+<li><code>OPEN_RIGHT_*</code></li>
+<li><code>OPEN_FLAG_APPEND</code></li>
+<li><code>OPEN_FLAG_NO_REMOTE</code></li>
+<li><code>OPEN_FLAG_DESCRIBE</code></li>
+<li><code>CLONE_FLAG_SAME_RIGHTS</code></li>
+</ul>
+<p>All other flags are ignored.</p>
+<p>The <code>OPEN_RIGHT_*</code> bits in <code>flags</code> request corresponding rights over the resulting
+cloned object.
+The cloned object must have rights less than or equal to the original object.
+Alternatively, pass <code>CLONE_FLAG_SAME_RIGHTS</code> to inherit the rights on the source connection.
+It is invalid to pass any of the <code>OPEN_RIGHT_*</code> flags together with
+<code>CLONE_FLAG_SAME_RIGHTS</code>.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>object</code></td>
+            <td>
+                <code>request&lt;<a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#Node'>Node</a>&gt;</code>
+            </td>
+        </tr></table>
+
+
+
+### Close {#Close}
+
+<p>Terminates connection with object.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### Describe {#Describe}
+
+<p>Returns extra information about the type of the object.
+If the <code>Describe</code> operation fails, the connection is closed.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>info</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeInfo'>NodeInfo</a></code>
+            </td>
+        </tr></table>
+
+### OnOpen {#OnOpen}
+
+<p>An event produced eagerly by a FIDL server if requested by <code>OPEN_FLAG_DESCRIBE</code>.</p>
+<p>Indicates the success or failure of the open operation, and optionally describes the
+object. If the status is <code>ZX_OK</code>, <code>info</code> contains descriptive information about the object
+(the same as would be returned by <code>Describe</code>).</p>
+
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>info</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeInfo'>NodeInfo</a>?</code>
+            </td>
+        </tr></table>
+
+### Sync {#Sync}
+
+<p>Synchronizes updates to the node to the underlying media, if it exists.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### GetAttr {#GetAttr}
+
+<p>Acquires information about the node.</p>
+<p>This method does not require any rights.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>attributes</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeAttributes'>NodeAttributes</a></code>
+            </td>
+        </tr></table>
+
+### SetAttr {#SetAttr}
+
+<p>Updates information about the node.
+<code>flags</code> may be any of <code>NODE_ATTRIBUTE_FLAG_*</code>.</p>
+<p>This method requires following rights: <code>OPEN_RIGHT_WRITABLE</code>.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr><tr>
+            <td><code>attributes</code></td>
+            <td>
+                <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#NodeAttributes'>NodeAttributes</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### NodeGetFlags {#NodeGetFlags}
+
+<p>Acquires the <code>Directory.Open</code> rights and flags used to access this file.</p>
+<p>This method does not require any rights.
+This method has the same functionality as GetFlags for File and is
+meant as an in-progress replacement.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr></table>
+
+### NodeSetFlags {#NodeSetFlags}
+
+<p>Changes the <code>Directory.Open</code> flags used to access the file.
+Supported flags which can be turned on / off:</p>
+<ul>
+<li><code>OPEN_FLAG_APPEND</code></li>
+</ul>
+<p>This method does not require any rights.
+This method has the same functionality as SetFlags for File and is
+meant as an in-progress replacement.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr></table>
+
+### Bind {#Bind}
+
+<p>Sets the local address used for the socket.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_Bind_Result'>BaseSocket_Bind_Result</a></code>
+            </td>
+        </tr></table>
+
+### Connect {#Connect}
+
+<p>Initiates a connection to a remote address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_Connect_Result'>BaseSocket_Connect_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetSockName {#GetSockName}
+
+<p>Retrieves the local socket address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetSockName_Result'>BaseSocket_GetSockName_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetPeerName {#GetPeerName}
+
+<p>Retrieves the remote socket address.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetPeerName_Result'>BaseSocket_GetPeerName_Result</a></code>
+            </td>
+        </tr></table>
+
+### SetSockOpt {#SetSockOpt}
+
+<p>Sets the value of a socket option.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>level</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optname</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optval</code></td>
+            <td>
+                <code><a class='link' href='#sockopt'>sockopt</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_SetSockOpt_Result'>BaseSocket_SetSockOpt_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetSockOpt {#GetSockOpt}
+
+<p>Retrieves the value of a socket option.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>level</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>optname</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetSockOpt_Result'>BaseSocket_GetSockOpt_Result</a></code>
+            </td>
+        </tr></table>
+
+### Listen {#Listen}
+
+<p>Begins listening for new incoming connections. At most <code>backlog</code> connections will be
+buffered.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>backlog</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#StreamSocket_Listen_Result'>StreamSocket_Listen_Result</a></code>
+            </td>
+        </tr></table>
+
+### Accept {#Accept}
+
+<p>Accepts a buffered incoming connection.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>flags</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#StreamSocket_Accept_Result'>StreamSocket_Accept_Result</a></code>
+            </td>
+        </tr></table>
+
 ## Provider {#Provider}
-*Defined in [fuchsia.posix.socket/socket.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-posix-socket/socket.fidl#50)*
+*Defined in [fuchsia.posix.socket/socket.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-posix-socket/socket.fidl#114)*
 
 <p>Provider implements the POSIX sockets API.</p>
 
@@ -529,6 +1906,246 @@
             </td>
         </tr></table>
 
+### Socket2 {#Socket2}
+
+<p>Requests a socket with the specified parameters. Error values are defined in errno.h.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>domain</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>type</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr><tr>
+            <td><code>protocol</code></td>
+            <td>
+                <code>int16</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#Provider_Socket2_Result'>Provider_Socket2_Result</a></code>
+            </td>
+        </tr></table>
+
+
+
+## **STRUCTS**
+
+### BaseSocket_Bind_Response {#BaseSocket_Bind_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### BaseSocket_Connect_Response {#BaseSocket_Connect_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### BaseSocket_GetSockName_Response {#BaseSocket_GetSockName_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### BaseSocket_GetPeerName_Response {#BaseSocket_GetPeerName_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### BaseSocket_SetSockOpt_Response {#BaseSocket_SetSockOpt_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### BaseSocket_GetSockOpt_Response {#BaseSocket_GetSockOpt_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>optval</code></td>
+            <td>
+                <code><a class='link' href='#sockopt'>sockopt</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### DatagramSocket_Shutdown_Response {#DatagramSocket_Shutdown_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### DatagramSocket_RecvMsg_Response {#DatagramSocket_RecvMsg_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>addr</code></td>
+            <td>
+                <code><a class='link' href='#sockaddr'>sockaddr</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>data</code></td>
+            <td>
+                <code>vector&lt;uint8&gt;</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>control</code></td>
+            <td>
+                <code>vector&lt;uint8&gt;</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>truncated</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### DatagramSocket_SendMsg_Response {#DatagramSocket_SendMsg_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>len</code></td>
+            <td>
+                <code>int64</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### StreamSocket_Listen_Response {#StreamSocket_Listen_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### StreamSocket_Accept_Response {#StreamSocket_Accept_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='#StreamSocket'>StreamSocket</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### Provider_Socket2_Response {#Provider_Socket2_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket'>BaseSocket</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
 
 
 
@@ -536,6 +2153,235 @@
 
 
 
+## **UNIONS**
+
+### BaseSocket_Bind_Result {#BaseSocket_Bind_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_Bind_Response'>BaseSocket_Bind_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### BaseSocket_Connect_Result {#BaseSocket_Connect_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_Connect_Response'>BaseSocket_Connect_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### BaseSocket_GetSockName_Result {#BaseSocket_GetSockName_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetSockName_Response'>BaseSocket_GetSockName_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### BaseSocket_GetPeerName_Result {#BaseSocket_GetPeerName_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetPeerName_Response'>BaseSocket_GetPeerName_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### BaseSocket_SetSockOpt_Result {#BaseSocket_SetSockOpt_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_SetSockOpt_Response'>BaseSocket_SetSockOpt_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### BaseSocket_GetSockOpt_Result {#BaseSocket_GetSockOpt_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#BaseSocket_GetSockOpt_Response'>BaseSocket_GetSockOpt_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### DatagramSocket_Shutdown_Result {#DatagramSocket_Shutdown_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#DatagramSocket_Shutdown_Response'>DatagramSocket_Shutdown_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### DatagramSocket_RecvMsg_Result {#DatagramSocket_RecvMsg_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#DatagramSocket_RecvMsg_Response'>DatagramSocket_RecvMsg_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### DatagramSocket_SendMsg_Result {#DatagramSocket_SendMsg_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#DatagramSocket_SendMsg_Response'>DatagramSocket_SendMsg_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### StreamSocket_Listen_Result {#StreamSocket_Listen_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#StreamSocket_Listen_Response'>StreamSocket_Listen_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### StreamSocket_Accept_Result {#StreamSocket_Accept_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#StreamSocket_Accept_Response'>StreamSocket_Accept_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### Provider_Socket2_Result {#Provider_Socket2_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#Provider_Socket2_Response'>Provider_Socket2_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code>int32</code>
+            </td>
+            <td></td>
+        </tr></table>
 
 
 
diff --git a/all/fidl/fuchsia.storage.ext4server/README.md b/all/fidl/fuchsia.storage.ext4/README.md
similarity index 79%
rename from all/fidl/fuchsia.storage.ext4server/README.md
rename to all/fidl/fuchsia.storage.ext4/README.md
index 25e133e..880baf5 100644
--- a/all/fidl/fuchsia.storage.ext4server/README.md
+++ b/all/fidl/fuchsia.storage.ext4/README.md
@@ -1,12 +1,12 @@
 [TOC]
 
-# fuchsia.storage.ext4server
+# fuchsia.storage.ext4
 
 
 ## **PROTOCOLS**
 
-## Ext4Server {#Ext4Server}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#178)*
+## Server {#Server}
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#178)*
 
 
 ### MountVmo {#MountVmo}
@@ -70,7 +70,7 @@
 ## **STRUCTS**
 
 ### Success {#Success}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#11)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#11)*
 
 
 
@@ -81,7 +81,7 @@
 </table>
 
 ### InvalidSuperBlock {#InvalidSuperBlock}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#14)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#14)*
 
 
 
@@ -100,7 +100,7 @@
 </table>
 
 ### InvalidSuperBlockMagic {#InvalidSuperBlockMagic}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#19)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#19)*
 
 
 
@@ -119,7 +119,7 @@
 </table>
 
 ### BlockNumberOutOfBounds {#BlockNumberOutOfBounds}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#24)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#24)*
 
 
 
@@ -138,7 +138,7 @@
 </table>
 
 ### BlockSizeInvalid {#BlockSizeInvalid}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#29)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#29)*
 
 
 
@@ -157,7 +157,7 @@
 </table>
 
 ### InvalidBlockGroupDesc {#InvalidBlockGroupDesc}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#34)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#34)*
 
 
 
@@ -176,7 +176,7 @@
 </table>
 
 ### InvalidINode {#InvalidINode}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#39)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#39)*
 
 
 
@@ -195,7 +195,7 @@
 </table>
 
 ### InvalidExtentHeader {#InvalidExtentHeader}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#44)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#44)*
 
 
 
@@ -206,7 +206,7 @@
 </table>
 
 ### InvalidExtentHeaderMagic {#InvalidExtentHeaderMagic}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#48)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#48)*
 
 
 
@@ -225,7 +225,7 @@
 </table>
 
 ### InvalidExtent {#InvalidExtent}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#53)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#53)*
 
 
 
@@ -244,7 +244,7 @@
 </table>
 
 ### ExtentUnexpectedLength {#ExtentUnexpectedLength}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#58)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#58)*
 
 
 
@@ -271,7 +271,7 @@
 </table>
 
 ### InvalidDirEntry2 {#InvalidDirEntry2}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#65)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#65)*
 
 
 
@@ -290,7 +290,7 @@
 </table>
 
 ### DirEntry2NonUtf8 {#DirEntry2NonUtf8}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#70)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#70)*
 
 
 
@@ -310,7 +310,7 @@
 </table>
 
 ### InvalidInputPath {#InvalidInputPath}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#76)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#76)*
 
 
 
@@ -329,7 +329,7 @@
 </table>
 
 ### PathNotFound {#PathNotFound}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#81)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#81)*
 
 
 
@@ -348,7 +348,7 @@
 </table>
 
 ### BadEntryType {#BadEntryType}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#87)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#87)*
 
 
 
@@ -368,7 +368,7 @@
 </table>
 
 ### BannedFeatureIncompat {#BannedFeatureIncompat}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#93)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#93)*
 
 
 
@@ -388,7 +388,7 @@
 </table>
 
 ### RequiredFeatureIncompat {#RequiredFeatureIncompat}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#99)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#99)*
 
 
 
@@ -408,7 +408,7 @@
 </table>
 
 ### Incompatible {#Incompatible}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#104)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#104)*
 
 
 
@@ -427,7 +427,7 @@
 </table>
 
 ### BadFile {#BadFile}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#109)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#109)*
 
 
 
@@ -446,7 +446,7 @@
 </table>
 
 ### BadDirectory {#BadDirectory}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#114)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#114)*
 
 
 
@@ -465,7 +465,7 @@
 </table>
 
 ### ReaderReadError {#ReaderReadError}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#119)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#119)*
 
 
 
@@ -484,7 +484,7 @@
 </table>
 
 ### ReaderOutOfBounds {#ReaderOutOfBounds}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#124)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#124)*
 
 
 
@@ -521,7 +521,7 @@
 ## **XUNIONS**
 
 ### ParseError {#ParseError}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#133)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#133)*
 
 <p>Sub-result of an <a class='link' href='#Ext4Server.MountVmo'>Ext4Server.MountVmo</a> call denoting the actual error
 that occurred in the reader.</p>
@@ -662,7 +662,7 @@
         </tr></table>
 
 ### MountVmoResult {#MountVmoResult}
-*Defined in [fuchsia.storage.ext4server/ext4_server.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_server.fidl#161)*
+*Defined in [fuchsia.storage.ext4/ext4_readonly.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/storage/ext4/server/fidl/ext4_readonly.fidl#161)*
 
 <p>Result of an <a class='link' href='#Ext4Server.MountVmo'>Ext4Server.MountVmo</a> call.</p>
 
diff --git a/all/fidl/fuchsia.sys.internal/README.md b/all/fidl/fuchsia.sys.internal/README.md
index c945e44..949fd73 100644
--- a/all/fidl/fuchsia.sys.internal/README.md
+++ b/all/fidl/fuchsia.sys.internal/README.md
@@ -103,7 +103,7 @@
 *Defined in [fuchsia.sys.internal/source_identity.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.sys.internal/source_identity.fidl#18)*
 
 <p>Identifies a component uniquely within the observing realm.
-Example: hub/r/sys/4566/c/http.cmx/19226/out/objects
+Example: hub/r/sys/4566/c/http.cmx/19226
 moniker: [root, sys, http.cmx]
 component_url: &quot;fuchsia-pkg://fuchsia.com/http#meta/http.cmx&quot;
 component_name: &quot;http.cmx&quot;
diff --git a/all/fidl/fuchsia.sysinfo/README.md b/all/fidl/fuchsia.sysinfo/README.md
index ee3119c..1974eff 100644
--- a/all/fidl/fuchsia.sysinfo/README.md
+++ b/all/fidl/fuchsia.sysinfo/README.md
@@ -5,12 +5,115 @@
 
 ## **PROTOCOLS**
 
-## Device {#Device}
+## SysInfo {#SysInfo}
 *Defined in [fuchsia.sysinfo/sysinfo.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-sysinfo/sysinfo.fidl#23)*
 
 
 ### GetHypervisorResource {#GetHypervisorResource}
 
+<p>Return the hypervisor resource (with only ZX_RIGHT_TRANSFER).</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>status</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>resource</code></td>
+            <td>
+                <code>handle&lt;resource&gt;?</code>
+            </td>
+        </tr></table>
+
+### GetBoardName {#GetBoardName}
+
+<p>Return the board name for the platform we are running on.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>status</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>name</code></td>
+            <td>
+                <code>string[32]?</code>
+            </td>
+        </tr></table>
+
+### GetBoardRevision {#GetBoardRevision}
+
+<p>Return the board revision for the board we are running on.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>status</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>revision</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+        </tr></table>
+
+### GetInterruptControllerInfo {#GetInterruptControllerInfo}
+
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>status</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+        </tr><tr>
+            <td><code>info</code></td>
+            <td>
+                <code><a class='link' href='#InterruptControllerInfo'>InterruptControllerInfo</a>?</code>
+            </td>
+        </tr></table>
+
+## Device {#Device}
+*Defined in [fuchsia.sysinfo/sysinfo.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-sysinfo/sysinfo.fidl#42)*
+
+
+### GetHypervisorResource {#GetHypervisorResource}
+
 
 #### Request
 <table>
diff --git a/all/fidl/fuchsia.testing/README.md b/all/fidl/fuchsia.testing/README.md
new file mode 100644
index 0000000..7eeecdd
--- /dev/null
+++ b/all/fidl/fuchsia.testing/README.md
@@ -0,0 +1,323 @@
+[TOC]
+
+# fuchsia.testing
+
+
+## **PROTOCOLS**
+
+## FakeClock {#FakeClock}
+*Defined in [fuchsia.testing/fake_clock.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fake-clock/fidl/fake_clock.fidl#10)*
+
+<p>Allows access to fake clocks managed by <code>FakeClockControl</code>.</p>
+
+### Get {#Get}
+
+<p>Gets the current time.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>time</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
+            </td>
+        </tr></table>
+
+### RegisterEvent {#RegisterEvent}
+
+<p>Registers the event handle <code>event</code> to be signaled with <code>ZX_EVENTPAIR_SIGNALED</code> when the
+provided <code>time</code> is reached by the fake clock.
+The <code>FakeClock</code> instance will retain this event (even after it's fired) for as long as the
+client-side of the provided event pair <code>event</code> is open.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>event</code></td>
+            <td>
+                <code>handle&lt;eventpair&gt;</code>
+            </td>
+        </tr><tr>
+            <td><code>time</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
+            </td>
+        </tr></table>
+
+
+
+### RescheduleEvent {#RescheduleEvent}
+
+<p>Reschedules an event to be signalled with <code>ZX_EVENTPAIR_SIGNALED</code> at the new deadline in
+<code>time</code>.
+<code>event</code> is a duplicate of the client-side of the event pair, and it's used to retrieve the
+originally registered event through its kernel object identifier.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>event</code></td>
+            <td>
+                <code>handle&lt;eventpair&gt;</code>
+            </td>
+        </tr><tr>
+            <td><code>time</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+### CancelEvent {#CancelEvent}
+
+<p>Cancels a previously registered event.
+<code>event</code> is a duplicate of the client-side of the event pair, and it's used to retrieve the
+originally registered event through its kernel object identifier.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>event</code></td>
+            <td>
+                <code>handle&lt;eventpair&gt;</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+## FakeClockControl {#FakeClockControl}
+*Defined in [fuchsia.testing/fake_clock.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fake-clock/fidl/fake_clock.fidl#57)*
+
+<p>Provides control over fake clocks.</p>
+<p><code>FakeClockControl</code> provides complete control of the fake clocks that it provides, and serves
+over <code>FakeClock</code>.</p>
+<p>Upon start up, all the clocks are set to free-running with increments set to 1ms:1ms (same as
+calling <code>SetIncrements</code> with a <code>real</code> duration of 1ms and a <code>determined</code> <code>increment</code> of 1ms as
+well).</p>
+<p>The initial time value for every fake clock is read from the corresponding real clock at start
+up.</p>
+
+### Advance {#Advance}
+
+<p>Advances the fake clock <code>increment</code> once.
+Returns <code>ZX_ERR_INVALID_ARGS</code> if the provided <code>increment</code> is invalid (such as a badly formed
+RandomRange). Returns <code>ZX_ERR_ACCESS_DENIED</code> if called while the FakeClock is free-running.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>increment</code></td>
+            <td>
+                <code><a class='link' href='#Increment'>Increment</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#FakeClockControl_Advance_Result'>FakeClockControl_Advance_Result</a></code>
+            </td>
+        </tr></table>
+
+### ResumeWithIncrements {#ResumeWithIncrements}
+
+<p>Resumes free-running increments on the fake clock.
+<code>real</code> is the period based on the real monotonic clock over which <code>increment</code> is going to be
+applied. Returns <code>ZX_ERR_INVALID_ARGS</code> if the provided <code>increment</code> is invalid (such as a
+badly formed RandomRange).</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>real</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code>
+            </td>
+        </tr><tr>
+            <td><code>increment</code></td>
+            <td>
+                <code><a class='link' href='#Increment'>Increment</a></code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>result</code></td>
+            <td>
+                <code><a class='link' href='#FakeClockControl_ResumeWithIncrements_Result'>FakeClockControl_ResumeWithIncrements_Result</a></code>
+            </td>
+        </tr></table>
+
+### Pause {#Pause}
+
+<p>Pauses free-running increments on the fake clock.</p>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+
+## **STRUCTS**
+
+### FakeClockControl_Advance_Response {#FakeClockControl_Advance_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### FakeClockControl_ResumeWithIncrements_Response {#FakeClockControl_ResumeWithIncrements_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### RandomRange {#RandomRange}
+*Defined in [fuchsia.testing/fake_clock.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fake-clock/fidl/fake_clock.fidl#30)*
+
+
+
+<p>A fake clock increment in a uniform random range.</p>
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>min_rand</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code>
+            </td>
+            <td><p>The lower bound (inclusive) for the random duration.</p>
+</td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>max_rand</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code>
+            </td>
+            <td><p>The upper bound (exclusive) for the random duration.</p>
+</td>
+            <td>No default</td>
+        </tr>
+</table>
+
+
+
+
+
+
+
+## **UNIONS**
+
+### FakeClockControl_Advance_Result {#FakeClockControl_Advance_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#FakeClockControl_Advance_Response'>FakeClockControl_Advance_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### FakeClockControl_ResumeWithIncrements_Result {#FakeClockControl_ResumeWithIncrements_Result}
+*generated*
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>response</code></td>
+            <td>
+                <code><a class='link' href='#FakeClockControl_ResumeWithIncrements_Response'>FakeClockControl_ResumeWithIncrements_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### Increment {#Increment}
+*Defined in [fuchsia.testing/fake_clock.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fake-clock/fidl/fake_clock.fidl#38)*
+
+<p>A fake clock increment step.</p>
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
+            <td><code>determined</code></td>
+            <td>
+                <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code>
+            </td>
+            <td><p>Increments the fake clock by the <code>determined</code> duration.</p>
+</td>
+        </tr><tr>
+            <td><code>random</code></td>
+            <td>
+                <code><a class='link' href='#RandomRange'>RandomRange</a></code>
+            </td>
+            <td><p>Increments the fake clock by a random duration chosen uniformly from the range in <code>random</code>.</p>
+</td>
+        </tr></table>
+
+
+
+
+
+
+
+
+
diff --git a/all/fidl/test.fidlcodec.examples/README.md b/all/fidl/test.fidlcodec.examples/README.md
index c1e4e66..cbb715b 100644
--- a/all/fidl/test.fidlcodec.examples/README.md
+++ b/all/fidl/test.fidlcodec.examples/README.md
@@ -1062,6 +1062,26 @@
 
 
 
+### TraversalMainMessage {#TraversalMainMessage}
+
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>v</code></td>
+            <td>
+                <code>vector&lt;<a class='link' href='#TraversalMain'>TraversalMain</a>&gt;[3]</code>
+            </td>
+        </tr><tr>
+            <td><code>s</code></td>
+            <td>
+                <code><a class='link' href='#TraversalStruct'>TraversalStruct</a>?</code>
+            </td>
+        </tr></table>
+
+
+
 ### Protocol {#Protocol}
 
 
@@ -1078,7 +1098,7 @@
 
 
 ## ParamProtocol {#ParamProtocol}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#242)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#253)*
 
 
 ### Method {#Method}
@@ -1120,7 +1140,7 @@
 ## **STRUCTS**
 
 ### BoolStructType {#BoolStructType}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#92)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#93)*
 
 
 
@@ -1138,7 +1158,7 @@
 </table>
 
 ### PrimitiveTypes {#PrimitiveTypes}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#96)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#97)*
 
 
 
@@ -1233,7 +1253,7 @@
 </table>
 
 ### SmallStruct {#SmallStruct}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#111)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#112)*
 
 
 
@@ -1265,7 +1285,7 @@
 </table>
 
 ### SmallUnevenStruct {#SmallUnevenStruct}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#117)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#118)*
 
 
 
@@ -1290,7 +1310,7 @@
 </table>
 
 ### TwoStringStruct {#TwoStringStruct}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#122)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#123)*
 
 
 
@@ -1315,7 +1335,7 @@
 </table>
 
 ### U8U16UnionStructType {#U8U16UnionStructType}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#153)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#154)*
 
 
 
@@ -1333,7 +1353,7 @@
 </table>
 
 ### HandleStruct {#HandleStruct}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#219)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#220)*
 
 
 
@@ -1365,7 +1385,7 @@
 </table>
 
 ### OptHandleStruct {#OptHandleStruct}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#225)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#226)*
 
 
 
@@ -1390,7 +1410,7 @@
 </table>
 
 ### TraversalOrder {#TraversalOrder}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#235)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#236)*
 
 
 
@@ -1421,6 +1441,56 @@
         </tr>
 </table>
 
+### TraversalStruct {#TraversalStruct}
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#242)*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>a</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>b</code></td>
+            <td>
+                <code>handle&lt;channel&gt;?</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### TraversalMain {#TraversalMain}
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#247)*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>x</code></td>
+            <td>
+                <code>uint32</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr><tr>
+            <td><code>y</code></td>
+            <td>
+                <code><a class='link' href='#TraversalStruct'>TraversalStruct</a>?</code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
 
 
 ## **ENUMS**
@@ -1428,7 +1498,7 @@
 ### DefaultEnum {#DefaultEnum}
 Type: <code>uint32</code>
 
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#157)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#158)*
 
 
 
@@ -1442,7 +1512,7 @@
 ### I8Enum {#I8Enum}
 Type: <code>int8</code>
 
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#161)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#162)*
 
 
 
@@ -1456,7 +1526,7 @@
 ### I16Enum {#I16Enum}
 Type: <code>int16</code>
 
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#165)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#166)*
 
 
 
@@ -1470,7 +1540,7 @@
 ### I32Enum {#I32Enum}
 Type: <code>int32</code>
 
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#169)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#170)*
 
 
 
@@ -1484,7 +1554,7 @@
 ### I64Enum {#I64Enum}
 Type: <code>int64</code>
 
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#173)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#174)*
 
 
 
@@ -1527,7 +1597,7 @@
 ### ValueTable {#ValueTable}
 
 
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#212)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#213)*
 
 
 
@@ -1566,7 +1636,7 @@
 ### HandleTable {#HandleTable}
 
 
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#230)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#231)*
 
 
 
@@ -1593,7 +1663,7 @@
 ## **UNIONS**
 
 ### IntStructUnion {#IntStructUnion}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#127)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#128)*
 
 
 <table>
@@ -1612,7 +1682,7 @@
         </tr></table>
 
 ### U8U16Union {#U8U16Union}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#137)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#138)*
 
 
 <table>
@@ -1631,7 +1701,7 @@
         </tr></table>
 
 ### U8U16UnionReserved {#U8U16UnionReserved}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#142)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#143)*
 
 
 <table>
@@ -1679,7 +1749,7 @@
 ## **XUNIONS**
 
 ### IntStructXunion {#IntStructXunion}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#132)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#133)*
 
 
 <table>
@@ -1698,7 +1768,7 @@
         </tr></table>
 
 ### U8U16Xunion {#U8U16Xunion}
-*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#148)*
+*Defined in [test.fidlcodec.examples/types.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fidl_codec/testdata/types.test.fidl#149)*
 
 
 <table>
diff --git a/all/fidl/test.pkg.eventqueue/README.md b/all/fidl/test.pkg.eventqueue/README.md
new file mode 100644
index 0000000..cda0240
--- /dev/null
+++ b/all/fidl/test.pkg.eventqueue/README.md
@@ -0,0 +1,46 @@
+[TOC]
+
+# test.pkg.eventqueue
+
+
+## **PROTOCOLS**
+
+## ExampleEventMonitor {#ExampleEventMonitor}
+*Defined in [test.pkg.eventqueue/test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/lib/event-queue/test.fidl#8)*
+
+
+### OnEvent {#OnEvent}
+
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>event</code></td>
+            <td>
+                <code>string[100]</code>
+            </td>
+        </tr></table>
+
+
+#### Response
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    </table>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+