influxdata / openapi

An OpenAPI specification for influx (cloud/oss) apis.
MIT License
17 stars 10 forks source link

Differentiate Task request schemas where different properties are required #598

Open jstirnaman opened 1 year ago

jstirnaman commented 1 year ago

For cloud, a Task must have one of flux or scriptID. If it has scriptID, then it may have other fields (that aren't compatible with flux in a create request). Differentiating the schemas with oneOf breaks the current UI tests--e.g.:

@jstirnaman

    src/tasks/containers/TaskPage.test.tsx:259:66 - error TS2339: Property 'flux' does not exist on type 'TaskCreateRequest | TaskWithScriptCreateRequest'.
      Property 'flux' does not exist on type 'TaskWithScriptCreateRequest'.

I'm assuming it needs a discriminator to know which schema to use? I ran yarn generate to generate src/client/* locally and I don't even see TaskWithScriptCreateRequest in the results, so I 'm confused. I'll undo this for now and move it to my someday list. It seems beneficial to clients if they could discern which properties are compatible and required. I hate having it in human-readable-only fields.

_Originally posted by @jstirnaman in https://github.com/influxdata/openapi/pull/591#discussion_r1010901842_