Skip to content

Discriminator Inference: Not generating despite completely unique fields #1185

@mattoni

Description

@mattoni

What version of ogen are you using?

0.82.0

Can this issue be reproduced with the latest version?

Yes

What did you do?

Ran generator script in my repo to generate client: (cd api-spec; npm run build:public && npm run build:internal) && ./generate.sh

Which has the following line in generate.sh:
go run github.com/ogen-go/ogen/cmd/[email protected] --config=config.json --target client --clean ./api-spec/dist/public-api.yml

All of the types in the union with the issue have unique required fields, yet I get the error below when trying to generate.

Repo in question: https://github.com/cycleplatform/api-client-go

This file is the problem: https://github.com/cycleplatform/api-spec/blob/75211f91a87bdb6457a83df47432edcf099cc003/components/schemas/includes/ComponentsIncludes.yml

If I comment out the last entry (../pipelines/runs/Run.yml) then everything works. Adding that last line back in gives the error. This doesn't make sense, according to the docs (https://ogen.dev/docs/types/sumtype/#unique-fields-discriminator) you need to have unique required fields, which this entry definitely does, so I'm not sure how it can be changed to build a successfully generated client that includes endpoints reliant on this type.

What did you expect to see?

Successful generation of the client.

What did you see instead?

Feature "discriminator inference" is not implemented yet.
Try to create ogen.yml with:

generator:
        ignore_not_implemented: "discriminator inference"

or

generator:
        ignore_not_implemented: ["all"]

to skip unsupported operations.

generation failed:
    main.run
        /home/alex/go/pkg/mod/github.com/ogen-go/[email protected]/cmd/ogen/main.go:308
exit status 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions