microsoft / microsoft/typespec
[Bug]: [http] Reference models marked as `@discriminated` with none envelope should inlcude `kind` property
- Dominant language
- Java
- Stars
- 5.9k
- Forks
- 394
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 104
Description
### Describe the bug
For [the case marked `@discriminated` with none envelope](https://typespec.io/docs/standard-library/discriminated-types/#inject-discriminator-inline), the real payload for Cat and Dog models would be required with `kind` payload. But it is not included. According to [OpenAPI 3.0 doc](https://swagger.io/docs/specification/v3_0/data-models/inheritance-and-polymorphism/#discriminator), the discriminator property is required for these models.
```
The discriminator is used with anyOf or oneOf keywords only. It is important that all the models mentioned below anyOf or oneOf contain the property that the discriminator specifies...
```
```ts
@discriminated(#{ envelope: "none" })
union Pet {
cat: Cat,
dog: Dog,
}
model Cat {
name: string;
meow: boolean;
}
model Dog {
name: string;
bark: boolean;
}
```

### Reproduction
[playground](https://typespec.io/playground/?options=%7B%7D&c=aW1wb3J0ICJAdHlwZXNwZWMvaHR0cCI7CtIZcmVzdNUZb3BlbmFwaTMiOwoKQHNlcnZpY2UoI3sgdGl0bGU6ICJXaWRnZXQgU8YaIiB9KQpuYW1lc3BhY2UgRGVtb8caOwp1c2luZyBSZXN0yAxIdHRwyAxPcGVuQVBJxGZkaXNjcmltaW5hdGVkxGxlbnZlbG9wxG9ub27GZXVuaW9uIFBldCB7CiAgY2F0OiBDYXQsCiAgZG9nOiBEb2csCn0KCm1vZGVsxBrFJ%2BQAmjogc3RyaW5nOwogIG1lb3c6IGJvb2xlYW47yjBEb2fVMGJhcmvMMA%3D%3D&e=%40typespec%2Fopenapi3)
### Checklist
- [x] Follow our [Code of Conduct](https://github.com/microsoft/typespec/blob/main/CODE_OF_CONDUCT.md)
- [x] Check that there isn't already an issue that request the same bug to avoid creating a duplicate.
- [x] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/Microsoft/typespec/discussions).
- [x] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.
Contributor guide
Assessment
This issue has not been assessed yet.