Add experimental user verification API contracts (#43265)

## What changed

Add `userVerification/status`, `userVerification/enroll`, `userVerification/delete`, and `userVerification/verify` behind the `experimentalApi` capability. Define request, response, proof, and typed error contracts, export their schemas, and document the API.

All four methods currently return `unavailable` with reason `providerUnavailable`; native verification operations are not implemented by this change.

## Testing

Add tests for experimental opt-in, typed provider unavailability, readiness serialization, and rejection of mismatched error reasons and native diagnostic payloads.

GitOrigin-RevId: a858ab41523c5acec7dbf3cfa7fcab693ac44a8c
This commit is contained in:
riley-oai authored and copyberry committed 2026-09-06 18:39:32 +00:00
1 parent 7bab4526f9
commit ad931a45b2
12 files changed
+368

No files matched your search

@@ -55,6 +55,13 @@ const EXPERIMENTAL_CLIENT_METHOD_DEPENDENCY_TYPES: &[&str] = &[
"ThreadSearchOccurrence",
"ThreadSearchTextRange",
"TurnSettingsUpdateStatus",
"UserVerificationProof",
"UserVerificationCancellationReason",
"UserVerificationErrorDetails",
"UserVerificationFailureReason",
"UserVerificationInvalidRequestReason",
"UserVerificationRpcError",
"UserVerificationUnavailableReason",
];
const SPECIAL_DEFINITIONS: &[&str] = &[
"ClientNotification",
@@ -123,6 +130,7 @@ pub fn generate_ts_with_options(
ClientRequest::export_all_to(out_dir)?;
export_client_responses(out_dir)?;
ClientNotification::export_all_to(out_dir)?;
crate::UserVerificationRpcError::export_all_to(out_dir)?;
ServerRequest::export_all_to(out_dir)?;
export_server_responses(out_dir)?;
@@ -220,6 +228,10 @@ pub fn generate_json_with_experimental(out_dir: &Path, experimental_api: bool) -
schemas.push(emit(out_dir)?);
}
schemas.push(write_json_schema::<crate::UserVerificationRpcError>(
out_dir,
"v2::UserVerificationRpcError",
)?);
schemas.extend(export_client_param_schemas(out_dir)?);
schemas.extend(export_client_response_schemas(out_dir)?);
schemas.extend(export_server_param_schemas(out_dir)?);