googleapis / googleapis/google-api-nodejs-client

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

Offen
#3,927 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
TypeScript
Sterne
12.2k
Forks
2k
Ø Merge
1 T. 9 Std.
Gemergte PRs (30 T.)
24

Beschreibung

## 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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit discovery/androidmanagement-v1.json und vergleiche es mit dem aktuellen Discovery-Dokument der Android Management API v1. Untersuche anschließend src/apis/androidmanagement/v1.ts und die generierte Datei build/v1.d.ts. Aktualisiere den Discovery-Snapshot und führe den Generator erneut aus; fertig ist es, wenn sowohl die fehlenden Schemas als auch die beiden Eigenschaften von googleAuthenticationOptions in den generierten Typen erscheinen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
api
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
76/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.