googleapis / googleapis/google-api-nodejs-client

Android Management API (androidmanagement v1): generated TS types missing googleAuthenticationOptions on EnrollmentToken and SigninDetail

Open
#3,927 0 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.