diff --git a/all/fidl/README.md b/all/fidl/README.md
index 7bf8ac2..2404654 100644
--- a/all/fidl/README.md
+++ b/all/fidl/README.md
@@ -876,10 +876,6 @@
     <td></td>
 </tr>
 <tr>
-    <td><a href="fuchsia.net.policy/index">fuchsia.net.policy</a></td>
-    <td></td>
-</tr>
-<tr>
     <td><a href="fuchsia.net.ppp/index">fuchsia.net.ppp</a></td>
     <td></td>
 </tr>
diff --git a/all/fidl/_toc.yaml b/all/fidl/_toc.yaml
index 26a9061..7f183f1 100644
--- a/all/fidl/_toc.yaml
+++ b/all/fidl/_toc.yaml
@@ -429,8 +429,6 @@
   path: /reference/fidl/fuchsia.net.mdns
 - title: fuchsia.net.oldhttp
   path: /reference/fidl/fuchsia.net.oldhttp
-- title: fuchsia.net.policy
-  path: /reference/fidl/fuchsia.net.policy
 - title: fuchsia.net.ppp
   path: /reference/fidl/fuchsia.net.ppp
 - title: fuchsia.net.stack
diff --git a/all/fidl/fuchsia.auth/README.md b/all/fidl/fuchsia.auth/README.md
index fe18d2c..dc754d0 100644
--- a/all/fidl/fuchsia.auth/README.md
+++ b/all/fidl/fuchsia.auth/README.md
@@ -184,48 +184,6 @@
             </td>
         </tr></table>
 
-### GetAppIdToken {#GetAppIdToken}
-
-<p>Exchanges a persistent user <code>credential</code> for an OAuth Identity token for
-the specified <code>audience</code>. The audience is the intended recipient of the
-id_token. The <code>credential</code> is a long lived OAuth token as generated by the
-external identity provider in the above GetPersistentCredential() call.</p>
-<p>OAuth Id tokens are JSON Web Tokens (JWT) that contains digitally signed
-identity information about the user for the intended recipient.</p>
-<p>Returns an <code>auth_token</code> response containing an id token, if successful.
-Otherwise, an error status is returned.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>credential</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>audience</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-        </tr></table>
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='#AuthProviderStatus'>AuthProviderStatus</a></code>
-            </td>
-        </tr><tr>
-            <td><code>auth_token</code></td>
-            <td>
-                <code><a class='link' href='#AuthToken'>AuthToken</a>?</code>
-            </td>
-        </tr></table>
-
 ### GetAppFirebaseToken {#GetAppFirebaseToken}
 
 <p>Gets a firebase auth token for the user identified by <code>id_token</code> and the
diff --git a/all/fidl/fuchsia.cobalt/README.md b/all/fidl/fuchsia.cobalt/README.md
index ed66c46..1336dbf 100644
--- a/all/fidl/fuchsia.cobalt/README.md
+++ b/all/fidl/fuchsia.cobalt/README.md
@@ -6,7 +6,7 @@
 ## **PROTOCOLS**
 
 ## LoggerFactory {#LoggerFactory}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#113)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#110)*
 
 
 ### CreateLogger {#CreateLogger}
@@ -67,74 +67,6 @@
             </td>
         </tr></table>
 
-### CreateLoggerFromProjectName {#CreateLoggerFromProjectName}
-
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>project_name</code></td>
-            <td>
-                <code>string[64]</code>
-            </td>
-        </tr><tr>
-            <td><code>release_stage</code></td>
-            <td>
-                <code><a class='link' href='#ReleaseStage'>ReleaseStage</a></code>
-            </td>
-        </tr><tr>
-            <td><code>logger</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='#Logger'>Logger</a>&gt;</code>
-            </td>
-        </tr></table>
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='#Status'>Status</a></code>
-            </td>
-        </tr></table>
-
-### CreateLoggerSimpleFromProjectName {#CreateLoggerSimpleFromProjectName}
-
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>project_name</code></td>
-            <td>
-                <code>string[64]</code>
-            </td>
-        </tr><tr>
-            <td><code>release_stage</code></td>
-            <td>
-                <code><a class='link' href='#ReleaseStage'>ReleaseStage</a></code>
-            </td>
-        </tr><tr>
-            <td><code>logger</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='#LoggerSimple'>LoggerSimple</a>&gt;</code>
-            </td>
-        </tr></table>
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='#Status'>Status</a></code>
-            </td>
-        </tr></table>
-
 ### CreateLoggerFromProjectId {#CreateLoggerFromProjectId}
 
 
@@ -194,7 +126,7 @@
         </tr></table>
 
 ## LoggerBase {#LoggerBase}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#246)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#193)*
 
 <p>LoggerBase Interface</p>
 
@@ -472,7 +404,7 @@
         </tr></table>
 
 ## Logger {#Logger}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#561)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#508)*
 
 
 ### LogEvent {#LogEvent}
@@ -865,7 +797,7 @@
         </tr></table>
 
 ## LoggerSimple {#LoggerSimple}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#631)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#578)*
 
 <p>LoggerSimple Interface</p>
 
@@ -1187,7 +1119,7 @@
         </tr></table>
 
 ## SystemDataUpdater {#SystemDataUpdater}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#666)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#613)*
 
 
 ### SetExperimentState {#SetExperimentState}
@@ -1371,7 +1303,7 @@
 ## **STRUCTS**
 
 ### ProjectProfile {#ProjectProfile}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#101)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#98)*
 
 
 
@@ -1396,7 +1328,7 @@
 </table>
 
 ### CustomEventValue {#CustomEventValue}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#467)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#414)*
 
 
 
@@ -1422,7 +1354,7 @@
 </table>
 
 ### HistogramBucket {#HistogramBucket}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#484)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#431)*
 
 
 
@@ -1447,7 +1379,7 @@
 </table>
 
 ### CountEvent {#CountEvent}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#495)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#442)*
 
 
 
@@ -1472,7 +1404,7 @@
 </table>
 
 ### Event {#Event}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#505)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#452)*
 
 
 
@@ -1483,7 +1415,7 @@
 </table>
 
 ### CobaltEvent {#CobaltEvent}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#537)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#484)*
 
 
 
@@ -1522,7 +1454,7 @@
 </table>
 
 ### Experiment {#Experiment}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#655)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#602)*
 
 
 
@@ -1554,7 +1486,7 @@
 ### Status {#Status}
 Type: <code>int32</code>
 
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#66)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#63)*
 
 
 
@@ -1584,7 +1516,7 @@
 ### ReleaseStage {#ReleaseStage}
 Type: <code>int32</code>
 
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#86)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#83)*
 
 
 
@@ -1614,7 +1546,7 @@
 ## **UNIONS**
 
 ### Value {#Value}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#476)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#423)*
 
 
 <table>
@@ -1645,7 +1577,7 @@
         </tr></table>
 
 ### EventPayload {#EventPayload}
-*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#509)*
+*Defined in [fuchsia.cobalt/cobalt.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#456)*
 
 
 <table>
@@ -1734,16 +1666,8 @@
                 <td><code>uint32</code></td>
             <td></td>
         </tr>
-    <tr id="MAX_PROJECT_NAME_LENGTH">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#54">MAX_PROJECT_NAME_LENGTH</a></td>
-            <td>
-                    <code>64</code>
-                </td>
-                <td><code>uint32</code></td>
-            <td></td>
-        </tr>
     <tr id="MAX_TIMER_ID_LENGTH">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#57">MAX_TIMER_ID_LENGTH</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#54">MAX_TIMER_ID_LENGTH</a></td>
             <td>
                     <code>64</code>
                 </td>
@@ -1751,7 +1675,7 @@
             <td></td>
         </tr>
     <tr id="MAX_EVENT_CODE_COUNT">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#60">MAX_EVENT_CODE_COUNT</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#57">MAX_EVENT_CODE_COUNT</a></td>
             <td>
                     <code>5</code>
                 </td>
@@ -1759,7 +1683,7 @@
             <td></td>
         </tr>
     <tr id="MAX_CHANNEL_NAME_LENGTH">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#63">MAX_CHANNEL_NAME_LENGTH</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/zircon/system/fidl/fuchsia-cobalt/cobalt.fidl#60">MAX_CHANNEL_NAME_LENGTH</a></td>
             <td>
                     <code>256</code>
                 </td>
diff --git a/all/fidl/fuchsia.component.test/README.md b/all/fidl/fuchsia.component.test/README.md
index bb39480..b92d86a 100644
--- a/all/fidl/fuchsia.component.test/README.md
+++ b/all/fidl/fuchsia.component.test/README.md
@@ -6,7 +6,7 @@
 ## **PROTOCOLS**
 
 ## Counter {#Counter}
-*Defined in [fuchsia.component.test/test.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/garnet/public/rust/fuchsia-component/blackbox_unit_tests/test.test.fidl#8)*
+*Defined in [fuchsia.component.test/test.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fuchsia-component/blackbox_unit_tests/test.test.fidl#8)*
 
 <p>A 32-bit counter.</p>
 
@@ -31,7 +31,7 @@
         </tr></table>
 
 ## CounterV2 {#CounterV2}
-*Defined in [fuchsia.component.test/test.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/garnet/public/rust/fuchsia-component/blackbox_unit_tests/test.test.fidl#14)*
+*Defined in [fuchsia.component.test/test.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fuchsia-component/blackbox_unit_tests/test.test.fidl#14)*
 
 <p>A new, 64-bit counter.</p>
 
diff --git a/all/fidl/fuchsia.device.manager/README.md b/all/fidl/fuchsia.device.manager/README.md
index f51495d..8325a1a 100644
--- a/all/fidl/fuchsia.device.manager/README.md
+++ b/all/fidl/fuchsia.device.manager/README.md
@@ -432,6 +432,11 @@
                 <code><a class='link' href='#AddDeviceConfig'>AddDeviceConfig</a></code>
             </td>
         </tr><tr>
+            <td><code>has_init</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+        </tr><tr>
             <td><code>client_remote</code></td>
             <td>
                 <code>handle&lt;channel&gt;?</code>
@@ -494,6 +499,11 @@
                 <code>string[1024]?</code>
             </td>
         </tr><tr>
+            <td><code>has_init</code></td>
+            <td>
+                <code>bool</code>
+            </td>
+        </tr><tr>
             <td><code>client_remote</code></td>
             <td>
                 <code>handle&lt;channel&gt;?</code>
diff --git a/all/fidl/fuchsia.identity.external/README.md b/all/fidl/fuchsia.identity.external/README.md
index 0f7ce46..1918723 100644
--- a/all/fidl/fuchsia.identity.external/README.md
+++ b/all/fidl/fuchsia.identity.external/README.md
@@ -473,7 +473,7 @@
             <td>3</td>
             <td><code>scopes</code></td>
             <td>
-                <code>vector&lt;string&gt;[128]</code>
+                <code>vector&lt;string&gt;[64]</code>
             </td>
             <td><p>The list of OAuth scope strings to request. If absent or empty, a
 default set of scopes defined by the implementation will be used.</p>
diff --git a/all/fidl/fuchsia.identity.tokens/README.md b/all/fidl/fuchsia.identity.tokens/README.md
index 6462266..4417770 100644
--- a/all/fidl/fuchsia.identity.tokens/README.md
+++ b/all/fidl/fuchsia.identity.tokens/README.md
@@ -10,141 +10,58 @@
 
 ## **PROTOCOLS**
 
-## AuthenticationContextProvider {#AuthenticationContextProvider}
-*Defined in [fuchsia.identity.tokens/token_manager.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#97)*
-
-<p>Implemented by a privileged system component with the ability to display UI
-to the end user.</p>
-<p>This is provided during the initialization of TokenManager service and is
-used for any subsequent authorize calls. The UI contexts created by this
-interface are used to display OAuth login and permission screens to the end
-user.</p>
-
-### GetAuthenticationUIContext {#GetAuthenticationUIContext}
-
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>request</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='../fuchsia.auth/'>fuchsia.auth</a>/<a class='link' href='../fuchsia.auth/#AuthenticationUIContext'>AuthenticationUIContext</a>&gt;</code>
-            </td>
-        </tr></table>
-
-
-
-## TokenManagerFactory {#TokenManagerFactory}
-*Defined in [fuchsia.identity.tokens/token_manager.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#105)*
-
-<p>This interface provides a discoverable mechanism to create TokenManager
-instances for each user, and to supply auth provider configuration
-information using the structs defined in <code>auth_provider.fidl</code>.</p>
-
-### GetTokenManager {#GetTokenManager}
-
-<p>Creates an OAuth TokenManager instance scoped for the component specified
-by <code>application_url</code>, the Fuchsia user specified by <code>user_id</code>, and the list
-of auth providers specified in <code>auth_provider_configs</code>.</p>
-<p><code>auth_context_provider</code> is used to generate AuthenticationUIContexts during
-TokenManager methods that require UI, unless the caller of those methods
-supplies an alternative AuthenticationUIContext.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>user_id</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>application_url</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>auth_provider_configs</code></td>
-            <td>
-                <code>vector&lt;<a class='link' href='#AuthProviderConfig'>AuthProviderConfig</a>&gt;</code>
-            </td>
-        </tr><tr>
-            <td><code>auth_context_provider</code></td>
-            <td>
-                <code><a class='link' href='#AuthenticationContextProvider'>AuthenticationContextProvider</a></code>
-            </td>
-        </tr><tr>
-            <td><code>token_manager</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='#TokenManager'>TokenManager</a>&gt;</code>
-            </td>
-        </tr></table>
-
-
-
 ## TokenManager {#TokenManager}
-*Defined in [fuchsia.identity.tokens/token_manager.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#129)*
+*Defined in [fuchsia.identity.tokens/token_manager.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#26)*
 
-<p>This interface manages OAuth tokens at the Fuchsia system level for different
-auth identity providers.</p>
-<p>If user authorization is required for minting tokens, TokenManager uses the
-<code>auth_context_provider's</code> UI context for displaying OAuth UI to the end user.</p>
-<p>After initialization, TokenManager handles are typically handed out by
-Framework to components like Ledger and Agents. These components fetch
-OAuth tokens from any configured auth provider, and use the
-<code>auth_context_provider</code> initialized above for new authorizations.</p>
+<p><code>TokenManager</code> maintains a set of credentials for accounts with service
+providers (such as Google) and provides access to standard tokens based on
+these credentials (such as OAuth2 access tokens and OpenID Connect ID
+tokens). This provides a &quot;single sign-on&quot; experience for these services on
+Fuchsia, where multiple components can use a service without requiring that
+the user signs in multiple times.</p>
 
-### Authorize {#Authorize}
+### ListServiceProviders {#ListServiceProviders}
 
-<p>The first step of OAuth is to get authorization from the user. For Fuchsia
-components, this is accomplished by displaying OAuth permissions in a view
-provided by the caller. This view will use <code>auth_ui_context</code> if supplied,
-or the <code>auth_context_provider</code> supplied at TokenManager creation if not.
-The component's OAuth configuration is provided in <code>app_config</code> and
-<code>app_scopes</code>. An optional <code>user_profile_id</code> that uniquely identifies an
-account for a given auth provider may be provided to identify an existing
-account during a re-auth flow.</p>
-<p>IoT ID authorization includes a mode where the user authorizes on a second
-device and that device acquires an auth code from the auth provider.
-In this mode, the auth code may be supplied in <code>auth_code</code> and no local
-user interface will be displayed.</p>
-<p>After the user has successfully authorized, Token manager receives and
-securely stores a persistent credential, such as an OAuth refresh token,
-for the intended scopes. TokenManager later uses this credential for
-minting short lived tokens.</p>
-<p>If the operation is successful, an OK status is returned along with user
-profile information in <code>user_profile_info</code> such as the user's email,
-image_url, profile_url, and first and last names as configured on the auth
-provider backend system.</p>
+<p>Returns the list of service providers that are available through this
+<code>TokenManager</code>.</p>
+<ul>
+<li><code>service_providers</code> a vector of available service providers.</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='#TokenManager_ListServiceProviders_Result'>TokenManager_ListServiceProviders_Result</a></code>
+            </td>
+        </tr></table>
+
+### ListAccounts {#ListAccounts}
+
+<p>Returns the list of currently authorized accounts for a particular
+service provider.</p>
+<ul>
+<li><code>service_provider</code> the service provider to query.</li>
+</ul>
+<ul>
+<li><code>account_ids</code> a vector of authorized accounts for <code>service_provider</code>.</li>
+</ul>
 
 #### Request
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>app_config</code></td>
+            <td><code>service_provider</code></td>
             <td>
-                <code><a class='link' href='#AppConfig'>AppConfig</a></code>
-            </td>
-        </tr><tr>
-            <td><code>auth_ui_context</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.auth/'>fuchsia.auth</a>/<a class='link' href='../fuchsia.auth/#AuthenticationUIContext'>AuthenticationUIContext</a>?</code>
-            </td>
-        </tr><tr>
-            <td><code>app_scopes</code></td>
-            <td>
-                <code>vector&lt;string&gt;</code>
-            </td>
-        </tr><tr>
-            <td><code>user_profile_id</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-        </tr><tr>
-            <td><code>auth_code</code></td>
-            <td>
-                <code>string?</code>
+                <code><a class='link' href='#ServiceProvider'>ServiceProvider</a></code>
             </td>
         </tr></table>
 
@@ -153,48 +70,175 @@
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>status</code></td>
+            <td><code>result</code></td>
             <td>
-                <code><a class='link' href='#Status'>Status</a></code>
-            </td>
-        </tr><tr>
-            <td><code>user_profile_info</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.auth/'>fuchsia.auth</a>/<a class='link' href='../fuchsia.auth/#UserProfileInfo'>UserProfileInfo</a>?</code>
+                <code><a class='link' href='#TokenManager_ListAccounts_Result'>TokenManager_ListAccounts_Result</a></code>
             </td>
         </tr></table>
 
-### GetAccessToken {#GetAccessToken}
+### AddAccount {#AddAccount}
 
-<p>Returns a downscoped access token from an auth provider for the given user
-<code>user_profile_id</code> and <code>scopes</code> to a Fuchsia component. The component's
-OAuth configuration is provided in <code>app_config</code> and the <code>user_profile_id</code>
-is the unique user identifier returned by the Authorize() call.</p>
-<p>In the interests of performance, Token Manager does not place the supplied
-scopes in a canonical order during caching. To benefit from caching of
-tokens, clients must request the same scopes in the same order across
-calls.</p>
+<p>Acquires credentials for a new account from a service provider.</p>
+<p>This process typically requires the user to interactively authenticate
+with the service provider and authorize the requested access.</p>
+<p>Once <code>AddAccount</code> has succeeded, tokens for the account may be acquired
+using the other <code>TokenManager</code> methods.</p>
+<ul>
+<li><code>service_provider</code> The <code>ServiceProvider</code> used to authorize the new
+account.</li>
+<li><code>scopes</code> A list of OAuth scope strings that the caller wishes to
+subsequently use in <code>GetOauthAccessToken</code>. The AuthProvider
+component chooses if and how to combine these with any
+default or threshold scopes.</li>
+</ul>
+<ul>
+<li><code>account_id</code>  A unique identifier within this service provider for the
+newly authorized account.</li>
+</ul>
+<ul>
+<li>error <code>ABORTED</code> The user cancelled or failed an interactive flow.</li>
+<li>error <code>SERVICE_PROVIDER_DENIED</code> The service provider refused to grant
+the requested token.</li>
+</ul>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>service_provider</code></td>
+            <td>
+                <code><a class='link' href='#ServiceProvider'>ServiceProvider</a></code>
+            </td>
+        </tr><tr>
+            <td><code>scopes</code></td>
+            <td>
+                <code>vector&lt;string&gt;[64]</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='#TokenManager_AddAccount_Result'>TokenManager_AddAccount_Result</a></code>
+            </td>
+        </tr></table>
+
+### ReauthorizeAccount {#ReauthorizeAccount}
+
+<p>Refreshes credentials or changes credential scopes for an account that
+was previously authorized.</p>
+<p>This process may require the user to interactively authenticate with the
+service provider and authorize the requested access.</p>
+<ul>
+<li><code>service_provider</code> The <code>ServiceProvider</code> used to reauthorize the
+account.</li>
+<li><code>account_id</code>  An <code>AccountId</code> that has previously been authorized for
+this <code>ServiceProvider</code>.</li>
+<li><code>scopes</code> A list of OAuth scope strings that the caller wishes to
+subsequently use in <code>GetOauthAccessToken</code>. The AuthProvider
+component chooses if and how to combine these with any
+default or threshold scopes.</li>
+</ul>
+<ul>
+<li>error <code>ABORTED</code> The user cancelled or failed an interactive flow.</li>
+<li>error <code>SERVICE_PROVIDER_DENIED</code> The service provider refused to grant
+the requested token.</li>
+</ul>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>service_provider</code></td>
+            <td>
+                <code><a class='link' href='#ServiceProvider'>ServiceProvider</a></code>
+            </td>
+        </tr><tr>
+            <td><code>account_id</code></td>
+            <td>
+                <code><a class='link' href='#AccountId'>AccountId</a></code>
+            </td>
+        </tr><tr>
+            <td><code>scopes</code></td>
+            <td>
+                <code>vector&lt;string&gt;[64]</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='#TokenManager_ReauthorizeAccount_Result'>TokenManager_ReauthorizeAccount_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetOauthAccessToken {#GetOauthAccessToken}
+
+<p>Returns an OAuth 2.0 access token for the specified account.</p>
+<p>The access token may optionally be sidescoped (i.e. issued to a
+different <code>client_id</code> than the default <code>client_id</code> used during
+authorization) and may contain a smaller set of scopes than those
+acquired during authorization.</p>
 <p>The access token is returned from cache if possible, otherwise the auth
 provider is used to exchange the persistent credential for a new access
-token.</p>
+token. In the interests of performance, Token Manager does not place the
+supplied scopes in a canonical order during caching. To benefit from
+caching of tokens, clients must request the same scopes in the same
+order across calls.</p>
+<ul>
+<li><code>service_provider</code> The <code>ServiceProvider</code> from which the token should
+be requested.</li>
+<li><code>account_id</code> An <code>AccountId</code> that has previously been authorized for
+this <code>ServiceProvider</code>.</li>
+<li><code>client_id</code> The <code>ClientId</code> that the token will be used by. If ommitted
+(and if supported by the auth provider component) a
+default <code>client_id</code> is used.</li>
+<li><code>scopes</code> A list of OAuth scopes that should be included in the token,
+as defined by the service provider's API documention.</li>
+</ul>
+<ul>
+<li><code>access_token</code> An <code>OauthAccessToken</code>.</li>
+</ul>
+<ul>
+<li>error <code>ABORTED</code> The user rejected an interactive permission request.</li>
+<li>error <code>SERVICE_PROVIDER_DENIED</code> The service provider refused to grant
+the requested token.</li>
+<li>error <code>SERVICE_PROVIDER_REAUTHORIZE</code> The service provider requires
+that the user reauthenticate before supplying the requested
+token. The client should call the <code>ReauthorizeAccount</code> method
+before retrying the request.</li>
+</ul>
 
 #### Request
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>app_config</code></td>
+            <td><code>service_provider</code></td>
             <td>
-                <code><a class='link' href='#AppConfig'>AppConfig</a></code>
+                <code><a class='link' href='#ServiceProvider'>ServiceProvider</a></code>
             </td>
         </tr><tr>
-            <td><code>user_profile_id</code></td>
+            <td><code>account_id</code></td>
             <td>
-                <code>string</code>
+                <code><a class='link' href='#AccountId'>AccountId</a></code>
             </td>
         </tr><tr>
-            <td><code>app_scopes</code></td>
+            <td><code>client_id</code></td>
             <td>
-                <code>vector&lt;string&gt;</code>
+                <code><a class='link' href='#ClientId'>ClientId</a></code>
+            </td>
+        </tr><tr>
+            <td><code>scopes</code></td>
+            <td>
+                <code>vector&lt;string&gt;[64]</code>
             </td>
         </tr></table>
 
@@ -203,47 +247,104 @@
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>status</code></td>
+            <td><code>result</code></td>
             <td>
-                <code><a class='link' href='#Status'>Status</a></code>
-            </td>
-        </tr><tr>
-            <td><code>access_token</code></td>
-            <td>
-                <code>string?</code>
+                <code><a class='link' href='#TokenManager_GetOauthAccessToken_Result'>TokenManager_GetOauthAccessToken_Result</a></code>
             </td>
         </tr></table>
 
-### GetIdToken {#GetIdToken}
+### GetOpenIdUserInfo {#GetOpenIdUserInfo}
 
-<p>Returns a JWT identity token from an auth provider to a Fuchsia component
-intended for the given <code>audience</code>. The component's OAuth configuration is
-supplied in <code>app_config</code>, the intended recipient of the id_token is
-supplied in <code>audience</code>, and <code>user_profile_id</code> is a unique account
-identifier returned by the Authorize() or ListProfileIds() calls.</p>
-<p><code>user_profile_id</code> is the unique user identifier returned by the
-Authorize() call.</p>
-<p>The identity token is returned from cache if possible, otherwise the auth
-provider is used to exchange the persistant credential for a new identity
-token.</p>
+<p>Returns user information for the specified account as defined by
+OpenID Connect.</p>
+<ul>
+<li><code>service_provider</code> The <code>ServiceProvider</code> from which the token should
+be requested.</li>
+<li><code>account_id</code> An <code>AccountId</code> that has previously been authorized for
+this <code>ServiceProvider</code>.</li>
+</ul>
+<ul>
+<li><code>user_info</code> An <code>OpenIdUserInfo</code> containing account information.</li>
+</ul>
+<ul>
+<li>error <code>ABORTED</code> The user rejected an interactive permission request.</li>
+<li>error <code>SERVICE_PROVIDER_REAUTHORIZE</code> The service provider requires
+that the user reauthenticate before supplying the user info.</li>
+<li>error <code>UNSUPPORTED_OPERATION</code> The auth provider does not support
+OpenID Connect.</li>
+</ul>
 
 #### Request
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>app_config</code></td>
+            <td><code>service_provider</code></td>
             <td>
-                <code><a class='link' href='#AppConfig'>AppConfig</a></code>
+                <code><a class='link' href='#ServiceProvider'>ServiceProvider</a></code>
             </td>
         </tr><tr>
-            <td><code>user_profile_id</code></td>
+            <td><code>account_id</code></td>
             <td>
-                <code>string</code>
+                <code><a class='link' href='#AccountId'>AccountId</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='#TokenManager_GetOpenIdUserInfo_Result'>TokenManager_GetOpenIdUserInfo_Result</a></code>
+            </td>
+        </tr></table>
+
+### GetOpenIdToken {#GetOpenIdToken}
+
+<p>Returns an OpenID Connect ID token for the specified account.</p>
+<p>The identity token is returned from cache if possible, otherwise the
+auth provider is used to exchange the persistant credential for a new
+identity token.</p>
+<ul>
+<li><code>service_provider</code> The <code>ServiceProvider</code> from which the token should
+be requested.</li>
+<li><code>account_id</code> An <code>AccountId</code> that has previously been authorized for
+this <code>ServiceProvider</code>.</li>
+<li><code>audience</code> The <code>Audience</code> that the ID token will be used by. If
+ommitted (and if supported by the auth provider component)
+a default <code>audience</code> is used.</li>
+</ul>
+<ul>
+<li><code>id_token</code> An <code>OpenIdToken</code>.</li>
+</ul>
+<ul>
+<li>error <code>ABORTED</code> The user rejected an interactive permission request.</li>
+<li>error <code>SERVICE_PROVIDER_DENIED</code> The service provider refused to grant
+the requested token.</li>
+<li>error <code>SERVICE_PROVIDER_REAUTHORIZE</code> The service provider requires
+that the user reauthenticate before supplying the user info.</li>
+<li>error <code>UNSUPPORTED_OPERATION</code> The auth provider does not support
+OpenID Connect.</li>
+</ul>
+
+#### Request
+<table>
+    <tr><th>Name</th><th>Type</th></tr>
+    <tr>
+            <td><code>service_provider</code></td>
+            <td>
+                <code><a class='link' href='#ServiceProvider'>ServiceProvider</a></code>
+            </td>
+        </tr><tr>
+            <td><code>account_id</code></td>
+            <td>
+                <code><a class='link' href='#AccountId'>AccountId</a></code>
             </td>
         </tr><tr>
             <td><code>audience</code></td>
             <td>
-                <code>string?</code>
+                <code><a class='link' href='#Audience'>Audience</a></code>
             </td>
         </tr></table>
 
@@ -252,102 +353,48 @@
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>status</code></td>
+            <td><code>result</code></td>
             <td>
-                <code><a class='link' href='#Status'>Status</a></code>
-            </td>
-        </tr><tr>
-            <td><code>id_token</code></td>
-            <td>
-                <code>string?</code>
+                <code><a class='link' href='#TokenManager_GetOpenIdToken_Result'>TokenManager_GetOpenIdToken_Result</a></code>
             </td>
         </tr></table>
 
-### GetFirebaseToken {#GetFirebaseToken}
-
-<p>Returns a Firebase token from an auth provider for the given account and
-Fuchsia component, and Firebase client. The component's OAuth configuration
-is supplied in <code>app_config</code>, the Firebase client is supplied in
-<code>firebase_api_key</code>, and <code>user_profile_id</code> is a unique account identifier
-returned by the Authorize() or ListProfileIds() calls.</p>
-<p>This api invokes firebase auth's VerifyAssertion endpoint that takes an
-OAuth IdToken as the fuchsia.ui.input. Audience is the intended recipient
-of the firebase id token.</p>
-<p>The Firebase auth token is returned from cache if possible, otherwise it is
-refreshed from the auth provider.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>app_config</code></td>
-            <td>
-                <code><a class='link' href='#AppConfig'>AppConfig</a></code>
-            </td>
-        </tr><tr>
-            <td><code>user_profile_id</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>audience</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>firebase_api_key</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr></table>
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='#Status'>Status</a></code>
-            </td>
-        </tr><tr>
-            <td><code>firebase_token</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.auth/'>fuchsia.auth</a>/<a class='link' href='../fuchsia.auth/#FirebaseToken'>FirebaseToken</a>?</code>
-            </td>
-        </tr></table>
-
-### DeleteAllTokens {#DeleteAllTokens}
+### DeleteAccount {#DeleteAccount}
 
 <p>Deletes and revokes all long lived and short lived tokens generated for
-an account and on behalf of a Fuchsia component. The component's OAuth
-configuration is provided in <code>app_config</code> and <code>user_profile_id</code>
-is a unique account identifier returned by the Authorize() or
-ListProfileIds() calls.</p>
+an account.</p>
 <p>Deletion of tokens involves three steps:</p>
 <ol>
-<li>Revoking credentials remotely at the auth provider.</li>
+<li>Revoking credentials remotely at the service provider.</li>
 <li>Deleting short lived tokens from the in-memory cache.</li>
 <li>Deleting persistent credentials stored locally on disk.</li>
 </ol>
-<p>If <code>force</code> is false then a failure at step 1 will terminate the method,
+<p>If <code>force</code> is false then a failure at step 1 terminates the method,
 ensuring client and server state remain consistent. If <code>force</code> is true
-then steps 2&amp;3 will be performed and the method will return OK even if
+then steps 2&amp;3 are performed and the method returns success even if
 step 1 fails, ensuring the local credentials are wiped in all
 circumstances.</p>
+<ul>
+<li><code>service_provider</code> The <code>ServiceProvider</code> from which the token should
+be requested.</li>
+<li><code>account_id</code> An <code>AccountId</code> that has previously been authorized for
+this <code>ServiceProvider</code>.</li>
+<li><code>force</code> Whether to force local deletion even when the remote
+revocation cannot be completed.</li>
+</ul>
 
 #### Request
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>app_config</code></td>
+            <td><code>service_provider</code></td>
             <td>
-                <code><a class='link' href='#AppConfig'>AppConfig</a></code>
+                <code><a class='link' href='#ServiceProvider'>ServiceProvider</a></code>
             </td>
         </tr><tr>
-            <td><code>user_profile_id</code></td>
+            <td><code>account_id</code></td>
             <td>
-                <code>string</code>
+                <code><a class='link' href='#AccountId'>AccountId</a></code>
             </td>
         </tr><tr>
             <td><code>force</code></td>
@@ -361,224 +408,268 @@
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>status</code></td>
+            <td><code>result</code></td>
             <td>
-                <code><a class='link' href='#Status'>Status</a></code>
+                <code><a class='link' href='#TokenManager_DeleteAccount_Result'>TokenManager_DeleteAccount_Result</a></code>
             </td>
         </tr></table>
 
-### ListProfileIds {#ListProfileIds}
+## TokenManagerFactory {#TokenManagerFactory}
+*Defined in [fuchsia.identity.tokens/token_manager_factory.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager_factory.fidl#15)*
 
-<p>Returns a vector of all currently authorized user_profile_ids for a
-component's OAuth configuration provided in <code>app_config</code>.</p>
+<p><code>TokenManagerFactory</code> provides access to a global <code>TokenManager</code> on systems
+that do not include an <code>AccountManager</code>.</p>
+<p>On systems that do include <code>AccountManager</code>, that API should be used to
+acquire a separate <code>TokenManager</code> instance for each system account.</p>
+
+### GetTokenManager {#GetTokenManager}
+
+<p>Connects a new <code>TokenManager</code> channel.</p>
+<ul>
+<li><code>ui_context_provider</code> An <code>AuthenticationContextProvider</code> capable of
+generating the <code>AuthenticationUiContext</code>
+channels used to display interactive
+authentication and authorization flows.</li>
+<li><code>token_manager</code> The server end of a <code>TokenManager</code> channel.</li>
+</ul>
 
 #### Request
 <table>
     <tr><th>Name</th><th>Type</th></tr>
     <tr>
-            <td><code>app_config</code></td>
+            <td><code>ui_context_provider</code></td>
             <td>
-                <code><a class='link' href='#AppConfig'>AppConfig</a></code>
-            </td>
-        </tr></table>
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='#Status'>Status</a></code>
+                <code><a class='link' href='../fuchsia.auth/'>fuchsia.auth</a>/<a class='link' href='../fuchsia.auth/#AuthenticationContextProvider'>AuthenticationContextProvider</a></code>
             </td>
         </tr><tr>
-            <td><code>user_profile_ids</code></td>
+            <td><code>token_manager</code></td>
             <td>
-                <code>vector&lt;string&gt;</code>
+                <code>request&lt;<a class='link' href='#TokenManager'>TokenManager</a>&gt;</code>
             </td>
         </tr></table>
 
 
 
+
+
 ## **STRUCTS**
 
-### AuthProviderConfig {#AuthProviderConfig}
-*Defined in [fuchsia.identity.tokens/token_manager.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#51)*
+### TokenManager_ListServiceProviders_Response {#TokenManager_ListServiceProviders_Response}
+*generated*
 
 
 
-<p>Stores configuration parameters required to connect to available
-<code>AuthProvider</code>s. It is used by TokenManager to instantiate all auth providers
-during startup.</p>
 
 
 <table>
     <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>auth_provider_type</code></td>
+            <td><code>service_providers</code></td>
             <td>
-                <code>string</code>
+                <code>vector&lt;string&gt;[128]</code>
             </td>
-            <td><p>Type of OAuth Identity provider. An identity provider authenticates and
-authorizes users for accessing their services. They also provide unique
-identifiers for users to interact with the system and may provide
-information about the user that is known to the provider.</p>
-<p>Sample auth provider types include:
-Dev : An identity provider that's used for development and testing.
-Google: Uses Google as the identity provider. Authorization from Google
-requires a working network connection and a web view.
-Spotify: Uses Spotify as an identity provider.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>url</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>Url of the Fuchsia component implementing the AuthProvider.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>params</code></td>
-            <td>
-                <code>vector&lt;string&gt;?</code>
-            </td>
-            <td><p>Optional parameters specified during AuthProvider startup.</p>
-</td>
+            <td></td>
             <td>No default</td>
         </tr>
 </table>
 
-### AppConfig {#AppConfig}
-*Defined in [fuchsia.identity.tokens/token_manager.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#73)*
+### TokenManager_ListAccounts_Response {#TokenManager_ListAccounts_Response}
+*generated*
 
 
 
-<p>Stores OAuth configuration details for a given client application. These
-details are used in the OAuth authorization step.</p>
 
 
 <table>
     <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>auth_provider_type</code></td>
+            <td><code>account_ids</code></td>
             <td>
-                <code>string</code>
+                <code>vector&lt;string&gt;[128]</code>
             </td>
-            <td><p>An OAuth identity provider matching a configuration set in
-AuthProviderConfig.auth_provider_type.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>client_id</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-            <td><p>OAuth client id.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>client_secret</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-            <td><p>OAuth client secret.
-This field is optional and will only be used on calls to Authorize.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>redirect_uri</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-            <td><p>OAuth application's redirect uri.
-This field is optional and will only be used on calls to Authorize.</p>
-</td>
+            <td></td>
             <td>No default</td>
         </tr>
 </table>
 
+### TokenManager_AddAccount_Response {#TokenManager_AddAccount_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>account_id</code></td>
+            <td>
+                <code><a class='link' href='#AccountId'>AccountId</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### TokenManager_ReauthorizeAccount_Response {#TokenManager_ReauthorizeAccount_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
+### TokenManager_GetOauthAccessToken_Response {#TokenManager_GetOauthAccessToken_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>access_token</code></td>
+            <td>
+                <code><a class='link' href='#OauthAccessToken'>OauthAccessToken</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### TokenManager_GetOpenIdUserInfo_Response {#TokenManager_GetOpenIdUserInfo_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>user_info</code></td>
+            <td>
+                <code><a class='link' href='#OpenIdUserInfo'>OpenIdUserInfo</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### TokenManager_GetOpenIdToken_Response {#TokenManager_GetOpenIdToken_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
+            <td><code>id_token</code></td>
+            <td>
+                <code><a class='link' href='#OpenIdToken'>OpenIdToken</a></code>
+            </td>
+            <td></td>
+            <td>No default</td>
+        </tr>
+</table>
+
+### TokenManager_DeleteAccount_Response {#TokenManager_DeleteAccount_Response}
+*generated*
+
+
+
+
+
+<table>
+    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
+</table>
+
 
 
 ## **ENUMS**
 
-### Status {#Status}
+### Error {#Error}
 Type: <code>uint32</code>
 
-*Defined in [fuchsia.identity.tokens/token_manager.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#10)*
+*Defined in [fuchsia.identity.tokens/common.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#40)*
 
-<p>Specifies the success/failure status of TokenManager calls.</p>
+<p>Specifies the reason that a fuchsia.identity.tokens method failed.</p>
 
 
 <table>
     <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
-            <td><code>OK</code></td>
-            <td><code>0</code></td>
-            <td><p>The command completed successfully</p>
-</td>
-        </tr><tr>
-            <td><code>AUTH_PROVIDER_SERVICE_UNAVAILABLE</code></td>
+            <td><code>UNKNOWN</code></td>
             <td><code>1</code></td>
-            <td><p>The command referred to a missing, misconfigured, or failed auth provider.
-Retrying is not recommended.</p>
+            <td><p>Some other problem occurred that cannot be classified using one of the
+more specific statuses. Retry is optional.</p>
 </td>
         </tr><tr>
-            <td><code>AUTH_PROVIDER_SERVER_ERROR</code></td>
+            <td><code>INTERNAL</code></td>
             <td><code>2</code></td>
-            <td><p>The auth server was reachable but responded with an error. These errors
-are typically caused by a configuration problem or a revoked token and so
-should not be retried.</p>
+            <td><p>An internal error occurred. This usually indicates a bug within the
+Token Manager itself. Retry is optional.</p>
 </td>
         </tr><tr>
-            <td><code>INTERNAL_ERROR</code></td>
+            <td><code>UNSUPPORTED_OPERATION</code></td>
             <td><code>3</code></td>
-            <td><p>An internal error occurred. This usually indicates a bug within the Token
-Manager itself. Retry is optional.</p>
-</td>
-        </tr><tr>
-            <td><code>INVALID_AUTH_CONTEXT</code></td>
-            <td><code>4</code></td>
-            <td><p>An invalid or non-functional AuthContextProvider was provided. Retrying is
-unlikely to correct this error.</p>
+            <td><p>The requested operation is not supported for the requested entity. For
+example, some service providers may not support some types of token.
+The request should not be retried.</p>
 </td>
         </tr><tr>
             <td><code>INVALID_REQUEST</code></td>
-            <td><code>5</code></td>
+            <td><code>4</code></td>
             <td><p>The request was malformed in some way, such as using an empty string for
-the user_profile_id. The request should not be retried.</p>
+service provider. The request should not be retried.</p>
 </td>
         </tr><tr>
-            <td><code>USER_NOT_FOUND</code></td>
+            <td><code>RESOURCE</code></td>
+            <td><code>5</code></td>
+            <td><p>A local resource error occurred such as I/O, FIDL, or memory allocation
+failure. Retry, after a delay, is recommended.</p>
+</td>
+        </tr><tr>
+            <td><code>NETWORK</code></td>
             <td><code>6</code></td>
-            <td><p>The requested user profile could not be found in the database. The request
+            <td><p>A network error occurred while communicating with a server or the server
+was unreachable.  Retry, after a delay, is recommended.</p>
+</td>
+        </tr><tr>
+            <td><code>INVALID_SERVICE_PROVIDER</code></td>
+            <td><code>7</code></td>
+            <td><p>The request referred to a missing service provider or one where the auth
+provider component is misconfigured or failed.</p>
+</td>
+        </tr><tr>
+            <td><code>INVALID_ACCOUNT</code></td>
+            <td><code>8</code></td>
+            <td><p>The request referred to an account that is not found for the specified
+service provider. The request should not be retried.</p>
+</td>
+        </tr><tr>
+            <td><code>SERVICE_PROVIDER_ERROR</code></td>
+            <td><code>10</code></td>
+            <td><p>The service provider returned a error that indicates a failure within
+the service provider itself. Retry, after a delay, is recommended.</p>
+</td>
+        </tr><tr>
+            <td><code>SERVICE_PROVIDER_DENIED</code></td>
+            <td><code>11</code></td>
+            <td><p>The service provider refused to grant the requested token. The request
 should not be retried.</p>
 </td>
         </tr><tr>
-            <td><code>IO_ERROR</code></td>
-            <td><code>7</code></td>
-            <td><p>A local error occurred such as disk I/O or memory allocation. Retry, after
-a delay, is recommended.</p>
+            <td><code>SERVICE_PROVIDER_REAUTHORIZE</code></td>
+            <td><code>12</code></td>
+            <td><p>The service provider requires that the user reauthenticate before
+supplying the requested token. The client should call the
+<code>ReauthorizeAccount</code> method before retrying the request.</p>
 </td>
         </tr><tr>
-            <td><code>UNKNOWN_ERROR</code></td>
-            <td><code>8</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><tr>
-            <td><code>REAUTH_REQUIRED</code></td>
-            <td><code>9</code></td>
-            <td><p>The auth server requires that the user reauthenticate. The client should
-call the Authorize method.</p>
-</td>
-        </tr><tr>
-            <td><code>USER_CANCELLED</code></td>
-            <td><code>10</code></td>
-            <td><p>The user cancelled the flow. User consent is required before any retry.</p>
-</td>
-        </tr><tr>
-            <td><code>NETWORK_ERROR</code></td>
-            <td><code>11</code></td>
-            <td><p>A network error occurred while communicating with the auth server. Retry,
-after a delay, is recommended.</p>
+            <td><code>ABORTED</code></td>
+            <td><code>13</code></td>
+            <td><p>The user cancelled or failed an interactive flow. The caller should
+gather user consent before any retry of the request.</p>
 </td>
         </tr></table>
 
@@ -639,8 +730,8 @@
             <td>
                 <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
             </td>
-            <td><p>The time on <code>ZX_CLOCK_UTC</code> at which the token will expire. If the field is
-absent the token does not have a fixed expiry time.</p>
+            <td><p>The time on <code>ZX_CLOCK_UTC</code> at which the token will expire. If the field
+is absent the token does not have a fixed expiry time.</p>
 </td>
         </tr></table>
 
@@ -668,8 +759,8 @@
             <td>
                 <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
             </td>
-            <td><p>The time on <code>ZX_CLOCK_UTC</code> at which the token will expire. If the field is
-absent the token does not have a fixed expiry time.</p>
+            <td><p>The time on <code>ZX_CLOCK_UTC</code> at which the token will expire. If the field
+is absent the token does not have a fixed expiry time.</p>
 </td>
         </tr></table>
 
@@ -719,6 +810,160 @@
 
 
 
+## **UNIONS**
+
+### TokenManager_ListServiceProviders_Result {#TokenManager_ListServiceProviders_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='#TokenManager_ListServiceProviders_Response'>TokenManager_ListServiceProviders_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### TokenManager_ListAccounts_Result {#TokenManager_ListAccounts_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='#TokenManager_ListAccounts_Response'>TokenManager_ListAccounts_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### TokenManager_AddAccount_Result {#TokenManager_AddAccount_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='#TokenManager_AddAccount_Response'>TokenManager_AddAccount_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### TokenManager_ReauthorizeAccount_Result {#TokenManager_ReauthorizeAccount_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='#TokenManager_ReauthorizeAccount_Response'>TokenManager_ReauthorizeAccount_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### TokenManager_GetOauthAccessToken_Result {#TokenManager_GetOauthAccessToken_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='#TokenManager_GetOauthAccessToken_Response'>TokenManager_GetOauthAccessToken_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### TokenManager_GetOpenIdUserInfo_Result {#TokenManager_GetOpenIdUserInfo_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='#TokenManager_GetOpenIdUserInfo_Response'>TokenManager_GetOpenIdUserInfo_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### TokenManager_GetOpenIdToken_Result {#TokenManager_GetOpenIdToken_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='#TokenManager_GetOpenIdToken_Response'>TokenManager_GetOpenIdToken_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
+### TokenManager_DeleteAccount_Result {#TokenManager_DeleteAccount_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='#TokenManager_DeleteAccount_Response'>TokenManager_DeleteAccount_Response</a></code>
+            </td>
+            <td></td>
+        </tr><tr>
+            <td><code>err</code></td>
+            <td>
+                <code><a class='link' href='#Error'>Error</a></code>
+            </td>
+            <td></td>
+        </tr></table>
+
 
 
 
@@ -731,60 +976,75 @@
     <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr><tr id="MAX_ACCOUNT_ID_SIZE">
             <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#8">MAX_ACCOUNT_ID_SIZE</a></td>
             <td>
-                    <code>1024</code>
+                    <code>256</code>
                 </td>
                 <td><code>uint32</code></td>
             <td><p>The maximum length of an account ID string, in bytes.</p>
 </td>
         </tr>
     <tr id="MAX_CLIENT_ID_SIZE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#17">MAX_CLIENT_ID_SIZE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#16">MAX_CLIENT_ID_SIZE</a></td>
             <td>
-                    <code>1024</code>
+                    <code>256</code>
                 </td>
                 <td><code>uint32</code></td>
-            <td><p>The maximum length of an OAuth client ID, in bytes.
-We reserve the right to increase this size in future.</p>
+            <td><p>The maximum length of an OAuth client ID, in bytes.</p>
 </td>
         </tr>
     <tr id="MAX_SCOPE_SIZE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#24">MAX_SCOPE_SIZE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#22">MAX_SCOPE_SIZE</a></td>
             <td>
-                    <code>1024</code>
+                    <code>256</code>
                 </td>
                 <td><code>uint32</code></td>
-            <td><p>The maximum length of an OAuth scope, in bytes.
-We reserve the right to increase this size in future.</p>
+            <td><p>The maximum length of an OAuth scope, in bytes.</p>
 </td>
         </tr>
     <tr id="MAX_SCOPE_COUNT">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#31">MAX_SCOPE_COUNT</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#28">MAX_SCOPE_COUNT</a></td>
             <td>
-                    <code>128</code>
+                    <code>64</code>
                 </td>
                 <td><code>uint32</code></td>
-            <td><p>The maximum number of OAuth scopes that may be requested for a single token.
-We reserve the right to increase this value in future.</p>
+            <td><p>The maximum number of OAuth scopes that may be requested for a single token.</p>
 </td>
         </tr>
     <tr id="MAX_AUDIENCE_SIZE">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#35">MAX_AUDIENCE_SIZE</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#31">MAX_AUDIENCE_SIZE</a></td>
             <td>
-                    <code>1024</code>
+                    <code>256</code>
                 </td>
                 <td><code>uint32</code></td>
-            <td><p>The maximum length of an OpenID audience string, in bytes.
-We reserve the right to increase this size in future.</p>
+            <td><p>The maximum length of an OpenID audience string, in bytes.</p>
 </td>
         </tr>
     <tr id="MAX_AUDIENCE_COUNT">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#42">MAX_AUDIENCE_COUNT</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#37">MAX_AUDIENCE_COUNT</a></td>
             <td>
                     <code>16</code>
                 </td>
                 <td><code>uint32</code></td>
-            <td><p>The maximum number of audiences that may be requested for a single ID token.
-We reserve the right to increase this value in future.</p>
+            <td><p>The maximum number of audiences that may be requested for a single ID token.</p>
+</td>
+        </tr>
+    <tr id="MAX_SERVICE_PROVIDER_COUNT">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#9">MAX_SERVICE_PROVIDER_COUNT</a></td>
+            <td>
+                    <code>128</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td><p>The maximum number of service providers for which <code>AuthProvider</code> components
+can be simultaneously installed.</p>
+</td>
+        </tr>
+    <tr id="MAX_ACCOUNT_COUNT">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#13">MAX_ACCOUNT_COUNT</a></td>
+            <td>
+                    <code>128</code>
+                </td>
+                <td><code>uint32</code></td>
+            <td><p>The maximum number of Accounts that can be authorized within a service
+provider for a single instance of TokenManager.</p>
 </td>
         </tr>
     
@@ -804,22 +1064,30 @@
 within an auth provider type.</p>
 </td>
         </tr><tr id="ClientId">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#20">ClientId</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#19">ClientId</a></td>
             <td>
                 <code>string</code>[<code><a class='link' href='#MAX_CLIENT_ID_SIZE'>MAX_CLIENT_ID_SIZE</a></code>]</td>
             <td><p>An OAuth client ID string.</p>
 </td>
         </tr><tr id="Scope">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#27">Scope</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#25">Scope</a></td>
             <td>
                 <code>string</code>[<code><a class='link' href='#MAX_SCOPE_SIZE'>MAX_SCOPE_SIZE</a></code>]</td>
             <td><p>An OAuth scope string.</p>
 </td>
         </tr><tr id="Audience">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#38">Audience</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/common.fidl#34">Audience</a></td>
             <td>
                 <code>string</code>[<code><a class='link' href='#MAX_AUDIENCE_SIZE'>MAX_AUDIENCE_SIZE</a></code>]</td>
             <td><p>An OpenID audience string.</p>
 </td>
+        </tr><tr id="ServiceProvider">
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.identity.tokens/token_manager.fidl#18">ServiceProvider</a></td>
+            <td>
+                <code>string</code></td>
+            <td><p>The primary domain name of the service provider used to authorize accounts.
+Only one <code>AuthProvider</code> component can be installed for each service provider
+at a time.</p>
+</td>
         </tr></table>
 
diff --git a/all/fidl/fuchsia.media/README.md b/all/fidl/fuchsia.media/README.md
index 79cc010..6c75aff 100644
--- a/all/fidl/fuchsia.media/README.md
+++ b/all/fidl/fuchsia.media/README.md
@@ -698,7 +698,7 @@
 
 <p>Requests to change the playback rate of the renderer. 1.0 means normal
 playback. Negative rates are not supported. The new rate will be
-reflected in the updated status.</p>
+reflected in the updated status. The default rate of any newly created <code>StreamSink</code> is 1.0.</p>
 
 #### Request
 <table>
@@ -3126,7 +3126,7 @@
 ## **STRUCTS**
 
 ### Void {#Void}
-*Defined in [fuchsia.media/audio_consumer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.media/audio_consumer.fidl#130)*
+*Defined in [fuchsia.media/audio_consumer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.media/audio_consumer.fidl#131)*
 
 
 
@@ -4646,7 +4646,8 @@
                 <code><a class='link' href='#TimelineFunction'>TimelineFunction</a></code>
             </td>
             <td><p>If present, indicates the current relationship between the presentation timeline
-and local monotonic clock, both in nanosecond units. Absent initially.</p>
+and local monotonic clock, both in nanosecond units. If not present,
+indicates there is no relationship. Absent initially.</p>
 <p>'Presentation timeline' refers to the <code>pts</code> (presentation timestamp) values on the packets.
 This timeline function can be used to determine the local monotonic clock time that a
 packet will be presented based on that packet's <code>pts</code> value.</p>
@@ -5943,7 +5944,7 @@
 ## **UNIONS**
 
 ### AudioConsumerError {#AudioConsumerError}
-*Defined in [fuchsia.media/audio_consumer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.media/audio_consumer.fidl#134)*
+*Defined in [fuchsia.media/audio_consumer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.media/audio_consumer.fidl#135)*
 
 <p>Represents a <code>AudioConsumer</code> error condition.</p>
 
diff --git a/all/fidl/fuchsia.net.policy/README.md b/all/fidl/fuchsia.net.policy/README.md
deleted file mode 100644
index bfa2650..0000000
--- a/all/fidl/fuchsia.net.policy/README.md
+++ /dev/null
@@ -1,627 +0,0 @@
-[TOC]
-
-# fuchsia.net.policy
-
-
-## **PROTOCOLS**
-
-## BaseInterfaceController {#BaseInterfaceController}
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#31)*
-
-
-### GetInterfaceInfo {#GetInterfaceInfo}
-
-<p>Retrieve info about an interface.</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.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#InterfaceInfo'>InterfaceInfo</a></code>
-            </td>
-        </tr></table>
-
-### SetInterfaceStatus {#SetInterfaceStatus}
-
-<p>Set the administrative status for an interfance.
-If enabled, the interface starts processing packets.
-If disabled, the interface stops processing packets.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#AdministrativeStatus'>AdministrativeStatus</a></code>
-            </td>
-        </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></table>
-
-### SetDHCPClientStatus {#SetDHCPClientStatus}
-
-<p>Set DHCP client status for a specific interface.
-If enabled, the interface acquires a dynamic IP address through DHCP server.
-If disabled, the interface uses the assigned static IP address.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#AdministrativeStatus'>AdministrativeStatus</a></code>
-            </td>
-        </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></table>
-
-### SetName {#SetName}
-
-<p>Set a name for an interface.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>name</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </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></table>
-
-### OnChange {#OnChange}
-
-
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>events</code></td>
-            <td>
-                <code><a class='link' href='#Events'>Events</a></code>
-            </td>
-        </tr></table>
-
-## StandardInterfaceController {#StandardInterfaceController}
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#52)*
-
-<p>Controller of physical and virtual interfaces.</p>
-
-### GetInterfaceInfo {#GetInterfaceInfo}
-
-<p>Retrieve info about an interface.</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.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#InterfaceInfo'>InterfaceInfo</a></code>
-            </td>
-        </tr></table>
-
-### SetInterfaceStatus {#SetInterfaceStatus}
-
-<p>Set the administrative status for an interfance.
-If enabled, the interface starts processing packets.
-If disabled, the interface stops processing packets.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#AdministrativeStatus'>AdministrativeStatus</a></code>
-            </td>
-        </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></table>
-
-### SetDHCPClientStatus {#SetDHCPClientStatus}
-
-<p>Set DHCP client status for a specific interface.
-If enabled, the interface acquires a dynamic IP address through DHCP server.
-If disabled, the interface uses the assigned static IP address.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#AdministrativeStatus'>AdministrativeStatus</a></code>
-            </td>
-        </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></table>
-
-### SetName {#SetName}
-
-<p>Set a name for an interface.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>name</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </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></table>
-
-### OnChange {#OnChange}
-
-
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>events</code></td>
-            <td>
-                <code><a class='link' href='#Events'>Events</a></code>
-            </td>
-        </tr></table>
-
-## BridgeInterfaceController {#BridgeInterfaceController}
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#57)*
-
-<p>Controller of  bridging interfaces.</p>
-
-### GetInterfaceInfo {#GetInterfaceInfo}
-
-<p>Retrieve info about an interface.</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.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#InterfaceInfo'>InterfaceInfo</a></code>
-            </td>
-        </tr></table>
-
-### SetInterfaceStatus {#SetInterfaceStatus}
-
-<p>Set the administrative status for an interfance.
-If enabled, the interface starts processing packets.
-If disabled, the interface stops processing packets.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#AdministrativeStatus'>AdministrativeStatus</a></code>
-            </td>
-        </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></table>
-
-### SetDHCPClientStatus {#SetDHCPClientStatus}
-
-<p>Set DHCP client status for a specific interface.
-If enabled, the interface acquires a dynamic IP address through DHCP server.
-If disabled, the interface uses the assigned static IP address.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#AdministrativeStatus'>AdministrativeStatus</a></code>
-            </td>
-        </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></table>
-
-### SetName {#SetName}
-
-<p>Set a name for an interface.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>name</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </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></table>
-
-### OnChange {#OnChange}
-
-
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>events</code></td>
-            <td>
-                <code><a class='link' href='#Events'>Events</a></code>
-            </td>
-        </tr></table>
-
-## Observer {#Observer}
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#65)*
-
-
-### ListInterfaces {#ListInterfaces}
-
-<p>Retrieve info of all the interfaces.</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>infos</code></td>
-            <td>
-                <code>vector&lt;<a class='link' href='../fuchsia.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#InterfaceInfo'>InterfaceInfo</a>&gt;</code>
-            </td>
-        </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></table>
-
-### GetInterfaceInfo {#GetInterfaceInfo}
-
-<p>Retrieve info of a specific interface.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>name</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </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.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#InterfaceInfo'>InterfaceInfo</a>?</code>
-            </td>
-        </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></table>
-
-### OnChange {#OnChange}
-
-
-
-
-#### Response
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>interface</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>events</code></td>
-            <td>
-                <code><a class='link' href='#Events'>Events</a></code>
-            </td>
-        </tr></table>
-
-## BasePolicy {#BasePolicy}
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#76)*
-
-
-### AddInterface {#AddInterface}
-
-<p>Add virtual interfaces.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>device</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.hardware.ethernet/'>fuchsia.hardware.ethernet</a>/<a class='link' href='../fuchsia.hardware.ethernet/#Device'>Device</a></code>
-            </td>
-        </tr><tr>
-            <td><code>interfaceCtl</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='#StandardInterfaceController'>StandardInterfaceController</a>&gt;</code>
-            </td>
-        </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></table>
-
-### CreateBridge {#CreateBridge}
-
-<p>Create bridging interface.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>interfaces</code></td>
-            <td>
-                <code>vector&lt;string&gt;</code>
-            </td>
-        </tr><tr>
-            <td><code>interfaceCtl</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='#BridgeInterfaceController'>BridgeInterfaceController</a>&gt;</code>
-            </td>
-        </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></table>
-
-## PrivilegedPolicy {#PrivilegedPolicy}
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#94)*
-
-
-### GetInterfaceController {#GetInterfaceController}
-
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>interface</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>controller</code></td>
-            <td>
-                <code><a class='link' href='#EthernetControllerRequest'>EthernetControllerRequest</a></code>
-            </td>
-        </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></table>
-
-
-
-## **STRUCTS**
-
-### InterfaceNameUpdate {#InterfaceNameUpdate}
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#12)*
-
-
-
-<p>Event for interface name update.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>name</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>The new name.</p>
-</td>
-            <td>No default</td>
-        </tr>
-</table>
-
-
-
-
-
-## **TABLES**
-
-### Events {#Events}
-
-
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#17)*
-
-
-
-<table>
-    <tr><th>Ordinal</th><th>Name</th><th>Type</th><th>Description</th></tr>
-    <tr>
-            <td>1</td>
-            <td><code>status</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.net.stack/'>fuchsia.net.stack</a>/<a class='link' href='../fuchsia.net.stack/#InterfaceStatus'>InterfaceStatus</a></code>
-            </td>
-            <td><p>InterfaceStatus event is triggered whenever an interface's status is changed.</p>
-</td>
-        </tr><tr>
-            <td>2</td>
-            <td><code>name</code></td>
-            <td>
-                <code><a class='link' href='#InterfaceNameUpdate'>InterfaceNameUpdate</a></code>
-            </td>
-            <td><p>InterfaceNameUpdate event is triggered whenever an interface's name is changed.</p>
-</td>
-        </tr></table>
-
-
-
-## **UNIONS**
-
-### EthernetControllerRequest {#EthernetControllerRequest}
-*Defined in [fuchsia.net.policy/policy.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.net.policy/policy.fidl#25)*
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th></tr><tr>
-            <td><code>standard</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='#StandardInterfaceController'>StandardInterfaceController</a>&gt;</code>
-            </td>
-            <td></td>
-        </tr><tr>
-            <td><code>bridge</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='#BridgeInterfaceController'>BridgeInterfaceController</a>&gt;</code>
-            </td>
-            <td></td>
-        </tr></table>
-
-
-
-
-
-
-
-
-
diff --git a/all/fidl/fuchsia.test.echos/README.md b/all/fidl/fuchsia.test.echos/README.md
index 17c2a71..b287129 100644
--- a/all/fidl/fuchsia.test.echos/README.md
+++ b/all/fidl/fuchsia.test.echos/README.md
@@ -6,7 +6,7 @@
 ## **PROTOCOLS**
 
 ## EchoExposedBySibling {#EchoExposedBySibling}
-*Defined in [fuchsia.test.echos/echos.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/garnet/public/rust/fuchsia-component/isolated_component_test/echos.test.fidl#8)*
+*Defined in [fuchsia.test.echos/echos.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fuchsia-component/isolated_component_test/echos.test.fidl#8)*
 
 
 ### Echo {#Echo}
@@ -34,7 +34,7 @@
         </tr></table>
 
 ## EchoExposedByParent {#EchoExposedByParent}
-*Defined in [fuchsia.test.echos/echos.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/garnet/public/rust/fuchsia-component/isolated_component_test/echos.test.fidl#13)*
+*Defined in [fuchsia.test.echos/echos.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fuchsia-component/isolated_component_test/echos.test.fidl#13)*
 
 
 ### Echo {#Echo}
@@ -62,7 +62,7 @@
         </tr></table>
 
 ## EchoHiddenByParent {#EchoHiddenByParent}
-*Defined in [fuchsia.test.echos/echos.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/garnet/public/rust/fuchsia-component/isolated_component_test/echos.test.fidl#18)*
+*Defined in [fuchsia.test.echos/echos.test.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/lib/fuchsia-component/isolated_component_test/echos.test.fidl#18)*
 
 
 ### Echo {#Echo}
diff --git a/all/fidl/fuchsia.update.installer/README.md b/all/fidl/fuchsia.update.installer/README.md
index afd866d..af80a44 100644
--- a/all/fidl/fuchsia.update.installer/README.md
+++ b/all/fidl/fuchsia.update.installer/README.md
@@ -6,7 +6,7 @@
 ## **PROTOCOLS**
 
 ## Installer {#Installer}
-*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/installer.fidl#14)*
+*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/installer.fidl#14)*
 
 <p>Updates the system.</p>
 <p>This protocol is intended to be consumed by a component capable of
@@ -202,7 +202,7 @@
 
 
 ## AttemptsMonitor {#AttemptsMonitor}
-*Defined in [fuchsia.update.installer/progress.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/progress.fidl#8)*
+*Defined in [fuchsia.update.installer/progress.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/progress.fidl#8)*
 
 <p>Monitors update attempts as they start.</p>
 
@@ -232,7 +232,7 @@
         </tr></table>
 
 ## Monitor {#Monitor}
-*Defined in [fuchsia.update.installer/progress.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/progress.fidl#23)*
+*Defined in [fuchsia.update.installer/progress.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/progress.fidl#23)*
 
 <p>Monitors an update attempt.</p>
 <p>When a Monitor is attached to an update attempt with
@@ -295,7 +295,7 @@
 ### Initiator {#Initiator}
 Type: <code>uint32</code>
 
-*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/installer.fidl#116)*
+*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/installer.fidl#116)*
 
 <p>Who or what initiated the update check.</p>
 
@@ -317,7 +317,7 @@
 ### State {#State}
 Type: <code>uint32</code>
 
-*Defined in [fuchsia.update.installer/progress.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/progress.fidl#40)*
+*Defined in [fuchsia.update.installer/progress.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/progress.fidl#40)*
 
 <p>States that an update attempt may transition through. An update attempt
 always starts in <a class='link' href='#State.PREPARE'>State.PREPARE</a>. See each state for more details.</p>
@@ -397,7 +397,7 @@
 ### UpdateResult {#UpdateResult}
 
 
-*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/installer.fidl#80)*
+*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/installer.fidl#80)*
 
 <p>Metadata about a prior update attempt.</p>
 
@@ -457,7 +457,7 @@
 ### Options {#Options}
 
 
-*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/installer.fidl#103)*
+*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/installer.fidl#103)*
 
 <p>Configuration options for an update attempt.</p>
 
@@ -477,7 +477,7 @@
 ### MonitorOptions {#MonitorOptions}
 
 
-*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/installer.fidl#109)*
+*Defined in [fuchsia.update.installer/installer.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/installer.fidl#109)*
 
 <p>Configuration options for the <a class='link' href='#Monitor'>Monitor</a> protocol.</p>
 
@@ -498,7 +498,7 @@
 ### Progress {#Progress}
 
 
-*Defined in [fuchsia.update.installer/progress.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/progress.fidl#91)*
+*Defined in [fuchsia.update.installer/progress.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/progress.fidl#91)*
 
 <p>State of an update attempt.</p>
 
@@ -554,7 +554,7 @@
 
 <table>
     <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr><tr id="PERCENT_MAX">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.update.installer/progress.fidl#88">PERCENT_MAX</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/src/sys/pkg/fidl/fuchsia.update.installer/progress.fidl#88">PERCENT_MAX</a></td>
             <td>
                     <code>100</code>
                 </td>
diff --git a/all/fidl/fuchsia.web/README.md b/all/fidl/fuchsia.web/README.md
index 95aa3f0..af7cf5a 100644
--- a/all/fidl/fuchsia.web/README.md
+++ b/all/fidl/fuchsia.web/README.md
@@ -107,7 +107,7 @@
 number. Multiple calls may be queued to received the port number.</p>
 <p>If an error occured, the <a class='link' href='#fuchsia.web.ContextError'>fuchsia.web.ContextError</a> will be set to this value:</p>
 <ul>
-<li><code>REMOTE_DEBUGGING_PORT_NOT_OPENED</code>: |remote_debugging_port| was not set in
+<li><code>REMOTE_DEBUGGING_PORT_NOT_OPENED</code>: <code>remote_debugging_port</code> was not set in
 <a class='link' href='#fuchsia.web.CreateContextParams'>fuchsia.web.CreateContextParams</a> or the remote debugging service failed to start.</li>
 </ul>
 
@@ -138,7 +138,7 @@
 <p>If neither <code>url</code> nor <code>name</code> are set then all cookies are observed. If only <code>url</code> is set
 then all cookies for that URL are observed. If both are set then only cookies matching both
 fields are observed.</p>
-<p>|changes| iterates over a stream of cookie changes. Additions or updates are expressed as
+<p><code>changes</code> iterates over a stream of cookie changes. Additions or updates are expressed as
 complete cookies, while deletions are expressed as cookies with no <code>value</code> set.</p>
 
 #### Request
@@ -1373,7 +1373,7 @@
                 <code>bool</code>
             </td>
             <td><p>Set to true to enable remote debugging. The <a class='link' href='#fuchsia.web.Frame'>fuchsia.web.Frame</a> will be closed with
-`ERR_INVALID_ARGS if |remote_debugging_port| was not set in
+<code>ERR_INVALID_ARGS</code> if <code>remote_debugging_port</code> was not set in
 <a class='link' href='#fuchsia.web.CreateContextParams'>fuchsia.web.CreateContextParams</a>.</p>
 </td>
         </tr></table>
