diff --git a/sdk/fidl/fuchsia.auth/README.md b/sdk/fidl/fuchsia.auth/README.md
index dc754d0..e08a05c 100644
--- a/sdk/fidl/fuchsia.auth/README.md
+++ b/sdk/fidl/fuchsia.auth/README.md
@@ -43,7 +43,7 @@
         </tr></table>
 
 ## AuthenticationUIContext {#AuthenticationUIContext}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#147)*
+*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#61)*
 
 <p>This interface is implemented by base shell. It is used to notify the
 base shell that a view for login needs to be started / stopped.</p>
@@ -77,323 +77,6 @@
 
 
 
-## AuthProvider {#AuthProvider}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#161)*
-
-<p>OAuth identity service that provisions new users and provides authorization
-tokens for the currently enrolled users. Some common Auth Providers are
-Google, Facebook, Spotify and Twitter.</p>
-
-### GetPersistentCredential {#GetPersistentCredential}
-
-<p>Authenticates and authorizes a user against an auth provider backend system
-using the OAuth protocol and returns the persistent credential such as
-Google's refresh token or Facebook's access token for this user. These
-persistent credentials are long lived and their expiration time is set by
-the identity provider, for example Google's refresh tokens are valid until
-the user changes their password or revokes access explicitly, whereas
-Facebook access tokens are valid for up to 60 days or until the user
-revokes access.</p>
-<p>During OAuth handshake, user needs to explicitly consent to the permissions
-as configured at the server. The consent is presented in a web_view using
-an <code>auth_ui_context</code> overlay provided by the base_shell.</p>
-<p>An optional <code>user_profile_id</code> is provided for simplifying reauthorization
-flow.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>auth_ui_context</code></td>
-            <td>
-                <code><a class='link' href='#AuthenticationUIContext'>AuthenticationUIContext</a>?</code>
-            </td>
-        </tr><tr>
-            <td><code>user_profile_id</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>credential</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-        </tr><tr>
-            <td><code>user_profile_info</code></td>
-            <td>
-                <code><a class='link' href='#UserProfileInfo'>UserProfileInfo</a>?</code>
-            </td>
-        </tr></table>
-
-### GetAppAccessToken {#GetAppAccessToken}
-
-<p>Exchanges a persistent user <code>credential</code> for a short lived app specific
-OAuth access token for the specified <code>client_id</code> and <code>scopes</code>. The
-<code>credential</code> is a long lived OAuth token as generated by the external
-identity provider in the above GetPersistentCredential() call. If no
-client_id is specified a default will be used.</p>
-<p>Access tokens are used by applications to make API requests against
-services offered by the Auth Provider.</p>
-<p>Returns an <code>auth_token</code> response containing an access 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>client_id</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-        </tr><tr>
-            <td><code>scopes</code></td>
-            <td>
-                <code>vector&lt;string&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='#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
-requested |firebase_api key|. The <code>id_token</code> is a JWT Identity token
-returned from GetAppIdToken() call above.</p>
-<p>Returns a <code>firebase_token</code> from the server if successful. Otherwise, an
-error status is returned.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>id_token</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='#AuthProviderStatus'>AuthProviderStatus</a></code>
-            </td>
-        </tr><tr>
-            <td><code>firebase_token</code></td>
-            <td>
-                <code><a class='link' href='#FirebaseToken'>FirebaseToken</a>?</code>
-            </td>
-        </tr></table>
-
-### RevokeAppOrPersistentCredential {#RevokeAppOrPersistentCredential}
-
-<p>Revokes user's grants at the Auth Provider by revoking a credential. The
-<code>credential</code> is either a long lived OAuth token as returned by the
-GetPersistentCredential() call or an app specific access token as returned
-by the GetAppAccessToken() call.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>credential</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></table>
-
-### GetPersistentCredentialFromAttestationJWT {#GetPersistentCredentialFromAttestationJWT}
-
-<p>Authenticates and authorizes a user against a remote attestation based
-auth provider backend system that mints bound persistent credentials.</p>
-<p>This method is capable of performing user authorization directly on the
-device or use the OAuth authorization code generated out-of-band on a
-secondary device that is sent over a secure channel to the target device.
-In the latter case, auth_code generated out-of-band is passed as an
-argument in the attestation <code>jwt_params</code>. Where as in the former case,
-user needs to explicitly consent to the permissions on the target device
-and the auth_code is returned to the device directly. The consent is
-presented in a web_view using an <code>auth_ui_context</code> overlay provided by the
-base_shell. An optional <code>user_profile_id</code> is provided for simplifying
-reauthorization flow.</p>
-<p>The authorization code is exchanged to a bound refresh token using an
-attestation JWT constructed from <code>jwt_params</code> and is signed by the
-<code>attestation_signer</code> component passed in the request.</p>
-<p>If the operation is successful, a long-lived <code>credential</code> that is bound to
-the originating device is returned along with an optional <code>auth_token</code>
-containing short-lived access token and an optional <code>nonce</code> that is used on
-next token exchange request. An optional <code>user_profile_info</code> containing
-user profile attributes is also returned if successful. Otherwise, an error
-status is returned.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>attestation_signer</code></td>
-            <td>
-                <code><a class='link' href='#AttestationSigner'>AttestationSigner</a></code>
-            </td>
-        </tr><tr>
-            <td><code>jwt_params</code></td>
-            <td>
-                <code><a class='link' href='#AttestationJWTParams'>AttestationJWTParams</a></code>
-            </td>
-        </tr><tr>
-            <td><code>auth_ui_context</code></td>
-            <td>
-                <code><a class='link' href='#AuthenticationUIContext'>AuthenticationUIContext</a>?</code>
-            </td>
-        </tr><tr>
-            <td><code>user_profile_id</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>credential</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-        </tr><tr>
-            <td><code>auth_token</code></td>
-            <td>
-                <code><a class='link' href='#AuthToken'>AuthToken</a>?</code>
-            </td>
-        </tr><tr>
-            <td><code>auth_challenge</code></td>
-            <td>
-                <code><a class='link' href='#AuthChallenge'>AuthChallenge</a>?</code>
-            </td>
-        </tr><tr>
-            <td><code>user_profile_info</code></td>
-            <td>
-                <code><a class='link' href='#UserProfileInfo'>UserProfileInfo</a>?</code>
-            </td>
-        </tr></table>
-
-### GetAppAccessTokenFromAssertionJWT {#GetAppAccessTokenFromAssertionJWT}
-
-<p>Exchanges a bound persistent user <code>credential</code> for a short lived app
-specific OAuth access token using the specified assertion JWT. The
-assertion JWT is constructed from <code>jwt_params</code> and is signed by the
-<code>attestation_signer</code> component passed in the request.</p>
-<p>Access tokens are used by applications to make API requests against
-services offered by the Auth Provider.</p>
-<p>Returns an <code>auth_token</code> response containing an access token and an optional
-<code>updated_credential</code> and <code>auth_challenge</code> to be used on next token refresh
-request, if successful. Otherwise, an error status is returned.</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>attestation_signer</code></td>
-            <td>
-                <code><a class='link' href='#AttestationSigner'>AttestationSigner</a></code>
-            </td>
-        </tr><tr>
-            <td><code>jwt_params</code></td>
-            <td>
-                <code><a class='link' href='#AssertionJWTParams'>AssertionJWTParams</a></code>
-            </td>
-        </tr><tr>
-            <td><code>credential</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>scopes</code></td>
-            <td>
-                <code>vector&lt;string&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='#AuthProviderStatus'>AuthProviderStatus</a></code>
-            </td>
-        </tr><tr>
-            <td><code>updated_credential</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-        </tr><tr>
-            <td><code>auth_token</code></td>
-            <td>
-                <code><a class='link' href='#AuthToken'>AuthToken</a>?</code>
-            </td>
-        </tr><tr>
-            <td><code>auth_challenge</code></td>
-            <td>
-                <code><a class='link' href='#AuthChallenge'>AuthChallenge</a>?</code>
-            </td>
-        </tr></table>
-
 ## AuthenticationContextProvider {#AuthenticationContextProvider}
 *Defined in [fuchsia.auth/token_manager.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/token_manager.fidl#95)*
 
@@ -786,45 +469,8 @@
 
 ## **STRUCTS**
 
-### AuthToken {#AuthToken}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#35)*
-
-
-
-<p>OAuth token response populated after parsing JSON object that contains
-short-lived access token or id token returned by the auth provider.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>token_type</code></td>
-            <td>
-                <code><a class='link' href='#TokenType'>TokenType</a></code>
-            </td>
-            <td><p>Type of token.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>token</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>Contains access token or a JWT identity token.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>expires_in</code></td>
-            <td>
-                <code>uint64</code>
-            </td>
-            <td><p>The remaining lifetime of the token in seconds.</p>
-</td>
-            <td>No default</td>
-        </tr>
-</table>
-
 ### FirebaseToken {#FirebaseToken}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#51)*
+*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#18)*
 
 
 
@@ -871,152 +517,8 @@
         </tr>
 </table>
 
-### AuthChallenge {#AuthChallenge}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#68)*
-
-
-
-<p>Challenge response returned by the auth provider during remote attestation
-based authentication.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>challenge</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>The value of nonce to be used for the next token refresh request</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>expires_in</code></td>
-            <td>
-                <code>uint64</code>
-            </td>
-            <td><p>The lifetime of <code>challenge</code> in seconds.</p>
-</td>
-            <td>No default</td>
-        </tr>
-</table>
-
-### CredentialECKey {#CredentialECKey}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#77)*
-
-
-
-<p>Stores Elliptic Curve public key parameters of the credential key.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>curve</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>Supported elliptic curve value used in JWT attestation. Refer to Section
-6.2.1.1 of RFC7518 for the canonical list of supported elliptic curves.
-For example:(P-256,P-384,P-521)</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>key_x_val</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>Value of x of the generated EC key</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>key_y_val</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>Value of y of the generated EC key</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>fingerprint_sha_256</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>Base64 encoded SHA256 hash of the EC public key</p>
-</td>
-            <td>No default</td>
-        </tr>
-</table>
-
-### AttestationJWTParams {#AttestationJWTParams}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#95)*
-
-
-
-<p>Contains parameters required by the auth provider component to build
-attestation JWTs.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>credential_eckey</code></td>
-            <td>
-                <code><a class='link' href='#CredentialECKey'>CredentialECKey</a></code>
-            </td>
-            <td><p>Contains the ephemeral Elliptic curve credential public key which will be
-bound to the newly generated refresh token grant.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>certificate_chain</code></td>
-            <td>
-                <code>vector&lt;string&gt;</code>
-            </td>
-            <td><p>The full chain of certificates from the device attestation certificate
-to the root certificate that was registered on the OAuth client id.
-Each string should be base64-encoded DER PKIX certificate value.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>auth_code</code></td>
-            <td>
-                <code>string</code>
-            </td>
-            <td><p>OAuth authorization code bound to the given user and device</p>
-</td>
-            <td>No default</td>
-        </tr>
-</table>
-
-### AssertionJWTParams {#AssertionJWTParams}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#110)*
-
-
-
-<p>Contains parameters required by the auth provider to build assertion JWTs.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr><tr>
-            <td><code>credential_eckey</code></td>
-            <td>
-                <code><a class='link' href='#CredentialECKey'>CredentialECKey</a></code>
-            </td>
-            <td><p>Contains Elliptic curve credential public key which is bound to existing
-refresh token.</p>
-</td>
-            <td>No default</td>
-        </tr><tr>
-            <td><code>challenge</code></td>
-            <td>
-                <code>string?</code>
-            </td>
-            <td><p>An optional challenge that could be used for the next token refresh request</p>
-</td>
-            <td>No default</td>
-        </tr>
-</table>
-
 ### UserProfileInfo {#UserProfileInfo}
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#122)*
+*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#36)*
 
 
 
@@ -1231,76 +733,6 @@
 </td>
         </tr></table>
 
-### AuthProviderStatus {#AuthProviderStatus}
-Type: <code>uint32</code>
-
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#14)*
-
-<p>Specifies the success/failure status from auth provider.</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></td>
-        </tr><tr>
-            <td><code>BAD_REQUEST</code></td>
-            <td><code>1</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>BAD_RESPONSE</code></td>
-            <td><code>2</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>OAUTH_SERVER_ERROR</code></td>
-            <td><code>3</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>USER_CANCELLED</code></td>
-            <td><code>4</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>REAUTH_REQUIRED</code></td>
-            <td><code>5</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>NETWORK_ERROR</code></td>
-            <td><code>6</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>UNSUPPORTED_PROVIDER</code></td>
-            <td><code>7</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>INTERNAL_ERROR</code></td>
-            <td><code>8</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>UNKNOWN_ERROR</code></td>
-            <td><code>9</code></td>
-            <td></td>
-        </tr></table>
-
-### TokenType {#TokenType}
-Type: <code>uint32</code>
-
-*Defined in [fuchsia.auth/auth_provider.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/sdk/fidl/fuchsia.auth/auth_provider.fidl#28)*
-
-<p>The type of token returned.</p>
-
-
-<table>
-    <tr><th>Name</th><th>Value</th><th>Description</th></tr><tr>
-            <td><code>ACCESS_TOKEN</code></td>
-            <td><code>0</code></td>
-            <td></td>
-        </tr><tr>
-            <td><code>ID_TOKEN</code></td>
-            <td><code>1</code></td>
-            <td></td>
-        </tr></table>
-
 ### Status {#Status}
 Type: <code>uint32</code>
 
diff --git a/sdk/fidl/fuchsia.identity.internal/README.md b/sdk/fidl/fuchsia.identity.internal/README.md
index 8ea98ef..da9a9d7 100644
--- a/sdk/fidl/fuchsia.identity.internal/README.md
+++ b/sdk/fidl/fuchsia.identity.internal/README.md
@@ -417,41 +417,6 @@
 <p>This service is supplied into the namespace of AccountHandler by the
 component that launches it (i.e. the AccountManager).</p>
 
-### GetAuthProvider {#GetAuthProvider}
-
-<p>Connects to the <code>AuthProvider</code> implementation for a particular service
-provider, launching it if necessary.  This method will soon be removed
-along with the <code>AuthProvider</code> protocol.</p>
-<p><code>auth_provider_type</code> An OAuth identity provider matching a configuration
-set in an AuthProviderConfig.auth_provider_type
-<code>auth_provider</code> The server end of an <code>AuthProvider</code> channel</p>
-
-#### Request
-<table>
-    <tr><th>Name</th><th>Type</th></tr>
-    <tr>
-            <td><code>auth_provider_type</code></td>
-            <td>
-                <code>string</code>
-            </td>
-        </tr><tr>
-            <td><code>auth_provider</code></td>
-            <td>
-                <code>request&lt;<a class='link' href='../fuchsia.auth/'>fuchsia.auth</a>/<a class='link' href='../fuchsia.auth/#AuthProvider'>AuthProvider</a>&gt;</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='#AccountHandlerContext_GetAuthProvider_Result'>AccountHandlerContext_GetAuthProvider_Result</a></code>
-            </td>
-        </tr></table>
-
 ### GetOauth {#GetOauth}
 
 <p>Connects to the <code>Oauth</code> implementation for a particular service provider,
@@ -691,17 +656,6 @@
         </tr>
 </table>
 
-### AccountHandlerContext_GetAuthProvider_Response {#AccountHandlerContext_GetAuthProvider_Response}
-*generated*
-
-
-
-
-
-<table>
-    <tr><th>Name</th><th>Type</th><th>Description</th><th>Default</th></tr>
-</table>
-
 ### AccountHandlerContext_GetOauth_Response {#AccountHandlerContext_GetOauth_Response}
 *generated*
 
@@ -744,7 +698,7 @@
 ### AccountData {#AccountData}
 
 
-*Defined in [fuchsia.identity.internal/account_handler.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#300)*
+*Defined in [fuchsia.identity.internal/account_handler.fidl](https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#289)*
 
 <p>Contents of an account, used for serialization during account transfer.</p>
 
@@ -955,25 +909,6 @@
             <td></td>
         </tr></table>
 
-### AccountHandlerContext_GetAuthProvider_Result {#AccountHandlerContext_GetAuthProvider_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='#AccountHandlerContext_GetAuthProvider_Response'>AccountHandlerContext_GetAuthProvider_Response</a></code>
-            </td>
-            <td></td>
-        </tr><tr>
-            <td><code>err</code></td>
-            <td>
-                <code><a class='link' href='../fuchsia.identity.account/'>fuchsia.identity.account</a>/<a class='link' href='../fuchsia.identity.account/#Error'>Error</a></code>
-            </td>
-            <td></td>
-        </tr></table>
-
 ### AccountHandlerContext_GetOauth_Result {#AccountHandlerContext_GetOauth_Result}
 *generated*
 
@@ -1075,7 +1010,7 @@
                 <code>array</code>[<code><a class='link' href='#HASH_SALT_SIZE'>HASH_SALT_SIZE</a></code>]</td>
             <td></td>
         </tr><tr id="EncryptedAccountData">
-            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#306">EncryptedAccountData</a></td>
+            <td><a href="https://fuchsia.googlesource.com/fuchsia/+/master/src/identity/fidl/account_handler.fidl#295">EncryptedAccountData</a></td>
             <td>
                 <code>vector</code></td>
             <td><p>Encrypted form of AccountData.</p>
