googleapis / googleapis/google-api-nodejs-client
Android Management API (androidmanagement v1): generated TS types missing googleAuthenticationOptions on EnrollmentToken and SigninDetail
- Dominant language
- TypeScript
- Stars
- 12.2k
- Forks
- 2k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 24
Description
## Summary
The generated TypeScript types for the **Android Management API** (`androidmanagement`, version `v1`) are missing the `googleAuthenticationOptions` field and its backing schemas. These exist in the live Discovery document but not in the checked-in discovery snapshot, so the generated `Schema$*` interfaces are out of date.
## Package / source
- Split package: `@googleapis/androidmanagement@24.0.0` (current `latest`)
- Also affects `googleapis` (aggregate) — both are generated from `src/apis/androidmanagement/v1.ts` in this repo.
## What is missing
In `src/apis/androidmanagement/v1.ts` (and the published `build/v1.d.ts`):
1. **`Schema$EnrollmentToken`** is missing the property `googleAuthenticationOptions?: Schema$GoogleAuthenticationOptions`.
2. **`Schema$SigninDetail`** is missing the property `googleAuthenticationOptions?: Schema$SigninDetailGoogleAuthenticationOptions`.
3. The interface **`Schema$GoogleAuthenticationOptions`** is not generated at all (fields: `authenticationRequirement` enum `AUTHENTICATION_REQUIREMENT_UNSPECIFIED | OPTIONAL | REQUIRED`, `requiredAccountEmail` string).
4. The interface **`Schema$SigninDetailGoogleAuthenticationOptions`** is not generated at all (field: `authenticationRequirement`, same enum).
The only existing reference is a prose mention in the `Schema$GoogleAuthenticationSettings` description ("This value is overridden by EnrollmentToken.googleAuthenticationOptions and SigninDetail.googleAuthenticationOptions…"); the actual typed fields/schemas are absent.
## Affected endpoints
- `androidmanagement.enterprises.enrollmentTokens.create` — `requestBody` is `Schema$EnrollmentToken`; callers cannot set `googleAuthenticationOptions` without a type cast.
- `androidmanagement.enterprises.create` / `androidmanagement.enterprises.patch` — `Schema$Enterprise.signinDetails[]` is `Schema$SigninDetail`, which lacks `googleAuthenticationOptions`.
## Evidence
Live Discovery document (`revision: 20260618`):
`https://androidmanagement.googleapis.com/$discovery/rest?version=v1`
```json
// schemas.EnrollmentToken.properties.googleAuthenticationOptions
{ "description": "Optional. Options related to Google authentication during the enrollment.", "$ref": "GoogleAuthenticationOptions" }
// schemas.SigninDetail.properties.googleAuthenticationOptions
{ "description": "Optional. Options related to Google authentication during the enrollment.", "$ref": "SigninDetailGoogleAuthenticationOptions" }
// schemas.GoogleAuthenticationOptions
{ "id": "GoogleAuthenticationOptions", "type": "object",
"properties": {
"authenticationRequirement": { "type": "string", "enum": ["AUTHENTICATION_REQUIREMENT_UNSPECIFIED","OPTIONAL","REQUIRED"] },
"requiredAccountEmail": { "type": "string" }
} }
// schemas.SigninDetailGoogleAuthenticationOptions
{ "id": "SigninDetailGoogleAuthenticationOptions", "type": "object",
"properties": {
"authenticationRequirement": { "type": "string", "enum": ["AUTHENTICATION_REQUIREMENT_UNSPECIFIED","OPTIONAL","REQUIRED"] }
} }
```
The checked-in `discovery/androidmanagement-v1.json` on `main` does **not** contain any of the above (verified: all four are absent), which is why the generated types are stale.
## Root cause / suggested fix
The repo's checked-in `androidmanagement v1` discovery snapshot is out of date relative to the live Discovery doc. Refreshing the discovery document and re-running the generator should produce `Schema$GoogleAuthenticationOptions`, `Schema$SigninDetailGoogleAuthenticationOptions`, and the two missing properties.
## Expected vs. actual
- **Expected:** `Schema$EnrollmentToken.googleAuthenticationOptions` and `Schema$SigninDetail.googleAuthenticationOptions` are typed, matching the live Discovery doc.
- **Actual:** Both properties and both schema interfaces are absent; consumers must cast (`as`) to send the field, even though the REST API accepts and honors it.
Contributor guide
Research direction
Start with discovery/androidmanagement-v1.json and compare it with the live Android Management API v1 Discovery document, then inspect src/apis/androidmanagement/v1.ts and the generated build/v1.d.ts. Refresh the discovery snapshot and rerun the generator; done means both missing schemas and the two googleAuthenticationOptions properties appear in the generated types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100