3.1.0 (2025-12-17)
- Add
type: "null"downcasting when in oneOf and anyOf for OpenAPI v3 (782cf8d)
3.0.3 (2025-12-16)
- load JSON documents that are preceded by multiple whitespace (6461bac)
- non-seekable json streams would fail to load as a document (2436d73)
- reading streams in an asp.net context would cause async exceptions (f9e5248)
3.0.2 (2025-12-08)
- additional properties serialization should not emit a schema in v2 (946cba9)
- additional properties serialization should not emit booleans in v3.1+ (946cba9)
3.0.1 (2025-11-17)
3.0.0 (2025-11-11)
- adds support for OpenAPI 3.2.0
Note: Please refer to the upgrade guide for a detailed description of the breaking changes.
Note: ASP.net users should remain on version 1.X for ASP.net < 10, and version 2.X for ASP.net 10, this new major version will be implemented in a future version of ASP.net, more information
- adds support for OpenAPI 3.2.0 (765a8dd)
2.3.12 (2025-12-15)
- load JSON documents that are preceded by multiple whitespace (640e59a)
- non-seekable json streams would fail to load as a document (76b0159)
- non-seekable json streams would fail to load as a document (2436d73)
- reading streams in an asp.net context would cause async exceptions (f9e5248)
2.3.11 (2025-12-08)
- additional properties serialization should not emit a schema in v2 (946cba9)
- additional properties serialization should not emit a schema in v2 fix: additional properties serialization should not emit booleans in v3.1+ (275dd9d)
- additional properties serialization should not emit booleans in v3.1+ (946cba9)
2.3.10 (2025-11-17)
2.3.9 (2025-11-06)
- a bug where null sentinel value would appear in YAML documents (0e864c7)
- a bug where null sentinel value would appear in YAML documents (15618e1)
2.3.8 (2025-10-27)
- an issue where numeric property names would be missing quotes in yaml conversion (da43c98)
- an issue where numeric property names would be missing quotes in yaml conversion (234504c)
- quote property names in yaml that match boolean values (39a9f41)
- yaml blocks and line returns (b053848)
- yaml multi-line literals maintain their lines (558a1ce)
2.3.7 (2025-10-24)
- adds a null value sentinel to enable roundtrip serializations of JsonNode typed properties (337c6eb)
- adds a null value sentinel to enable roundtrip serializations of JsonNode typed properties (63b2b98)
- fixes a bug where yaml null values would end up as a string "null" during roundtrip serialization (6e62de2)
- fixes a bug where yaml null values would end up as a string "null" during roundtrip serialization (994184b)
- YamlConverter adding extra quotes to string values when converting from JSON to YAML (ccfebc8)
- do not duplicate nodes when indexing (dbbbf13)
- only initialize map node nodes on demand (bdb5264)
- reduce allocations in mapnode (f58aad2)
- removes the lazy initialization since the node is always enumerated (1c96521)
- switches to lazy instantiation (d3c758b)
- use deep equals for comparison to reduce allocations (6ce3214)
2.3.6 (2025-10-20)
- a bug where empty collections would not be serialized for default values (4c4d257)
2.3.5 (2025-10-14)
- use settings for terse output in serialization extension methods (246039b)
- use settings for terse output in serialization extension methods (8b91278)
2.3.4 (2025-10-06)
- Improve server creation and URL handling logic to maintain port (3e6ee80)
- missing deserialization for header content property in 3.1 and 3.0 (717f154)
- missing deserialization for header content property in 3.1 and 3.0 (0fdfae1)
2.3.3 (2025-10-02)
- typo in allowReserved property name for deserialization (1633453)
- typo in allowReserved property name for deserialization (f7e34be)
2.3.2 (2025-09-19)
- Fix URL processing in InternalLoad method would not detect the filename/scheme properly in some scenarios (d93689c)
- OpenApiEncoding explode property serialization defaults with form style (ae03eab)
2.3.1 (2025-09-08)
- file access for "file" URI scheme with special characters (6dded81)
2.3.0 (2025-08-29)
- adds the detected format as part of the diagnostic (#2482) (59d7c81)
- adds the detected format to the diagnostics (59d7c81)
2.2.0 (2025-08-25)
- add Validation Rule for path operations to not have a request body (d101fc3)
- missing examples when one example is with an empty array. (cb1c496)
2.1.0 (2025-08-20)
- adds a default validation rule for unresolved references (90b3966)
2.0.1 (2025-08-18)
2.0.0 (2025-07-10)
- General availability of version 2 with support for OpenAPI 3.1!!! 🎉🎉🎉 (a02d74c)
- General availability of version 2 with support for OpenAPI 3.1!!! 🎉🎉🎉 (97824e5)
- inconsistent visibility of properties in current keys class (cb9772f)
- removes extraneous default value constant (bf8d0b6)
- removes extraneous default value constant (b6eb46e)
- removes loop methods from parsing context as its available in loop detector instead (de3531b)
- removes loop methods from parsing context as its available in loop detector instead (18a8cbe)
- removes public mermaid types that were not usuable (ef7ae33)
- removes public mermaid types that were not usuable (a26096c)
- removes redundant marker interface (5a055f9)
- removes redundant marker interface (74a9f08)
- switches to a getter for API consistency (7975082)
- switches to a getter for API consistency (0091f1c)
- unconsistent visibility of properties in current keys class (d0c20ab)
- visibility of extension methods (1e9112a)
- visibility of extension methods (50c8e34)
2.0.0-preview.31 (2025-07-02)
- bumps openapi.net.odata to fix two critical bugs in hidi (00c3018)
- bumps openapi.net.odata to fix two critical bugs in hidi (cf41355)
2.0.0-preview.30 (2025-07-02)
- migration of hidi to the latest version of system.commandline (a5f8721)
- throw on circular reference (e14258d)
- throw on circular reference (caea292)
- upgrades openapi.odata to avoid hidi failing to load (0bea5ed)
- upgrades openapi.odata to avoid hidi failing to load (6735397)
- validation to accept lowercase status code ranges (4xx, 5xx) in OpenAPI responses (09f661f)
2.0.0-preview.29 (2025-06-18)
- avoid stack overflow on cyclical references (06cc025)
2.0.0-preview.28 (2025-06-16)
2.0.0-preview.27 (2025-06-13)
- implementation drift between the different version services (1ed02e3)
- implementation drift between the different version services (2514526)
- relative uri in json schema references would not parse appropriately or provide feedback to the user (940945d)
- relative uri in json schema references would not parse appropriately or provide feedback to the user (e0bceaa)
- warn instead of error out when $schema is present in the document (388d6f7)
- warn instead of error out when $schema is present in the document (7c7b053)
2.0.0-preview.26 (2025-06-12)
- a bug where relative relative and sub-component JSON references would not resolve properly (b7bc6be)
- a bug where relative relative and sub-component JSON references would not resolve properly (c53165c)
- recursive relative reference resolution (873acd4)
- recursive relative reference resolution (f296505)
- upgrades sharp yaml to avodi signing issues on netfx (5dc7e81)
- upgrades sharp yaml to avodi signing issues on netfx (4db5c1a)
2.0.0-preview.25 (2025-06-10)
2.0.0-preview.24 (2025-06-09)
- callback reference annotations parsing (86892b3)
- example reference annotation parsing (8bf012b)
- link reference annotations parsing (2a62c5a)
- loading of header reference description (9248560)
- makes reference serialization object generic (f0802e5)
- parameter reference annoation parsing (b1578f3)
- path item reference annoations parsing (d31ed4c)
- removes description field from references that do not support it (03659f7)
- request body reference annotations parsing (d9a78dc)
- response reference annotations parsing (e455f52)
- security scheme reference annoations parsing (ccc3733)
2.0.0-preview.23 (2025-06-03)
2.0.0-preview.22 (2025-06-02)
- Add writer settings to enable collection sorting using a comparer (d7eaf47)
- rename class; add logic for sorting IEnumerable collections (58cb4ac)
2.0.0-preview.21 (2025-05-21)
- do not throw when operation tag is missing matching global tag (fe133f2)
- do not throw when operation tag is missing matching global tag (2c5aa40)
2.0.0-preview.20 (2025-05-20)
- nullable and type ordering should be maintain to ease up migration work (6c82aa6)
- nullable should not be inserted as an attempt to normalize the document (6c82aa6)
- refactor to avoid adding duplicate entries (41fd508)
- refactor to avoid adding duplicate entries (#2359) (9791eb6)
- tree node has the wrong structure because of trailing slashes (2ffb273)
- tree node has the wrong structure because of trailing slashes (4439340)
- wrong link to json schema spec in schema doc comments (d9b0c90)
- wrong link to json schema spec in schema doc comments (9a73ec6)
2.0.0-preview.19 (2025-05-16)
- base url should be read from the settings when available (f5d6e81)
- base url should be read from the settings when available (b17b7d8)
- discriminator mapping references don't get a document when created from DOM (767d3fb)
- discriminator mapping references don't get a document when created from DOM (fdfe002)
2.0.0-preview.18 (2025-05-13)
- upgrades openapi.net.odata and apimanifest to the latest version (80844a6)
- upgrades openapi.net.odata and apimanifest to the latest version (938a2e0)
- avoid calling virtual members in constructor (5835057)
- Fix typo in error message (#2345) (3f8b2b9)
- handle deserializing and writing empty security requirements #1426 (#2323) (962e0e4)
- normalized override implementation for parameter types serialization in v2 (5930916)
2.0.0-preview.17 (2025-04-16)
- discriminator mappings now use schema references (b4877f6)
- openapiformat enum cleanup (#2326) (19ffd13)
- Remove default collection initialization for perf reasons (#2284) (3604382)
- Empty tag causes error generating Kiota client #2283 (#2286) (521d636)
- hidi fails to parse yaml files when fixing references (a5c4d61)
- hidi fails to parse yaml files when fixing references (c5b69fe)
- Improve handling of OpenAPI tag references (#2325) (bf9954a)
- read (Exclusive)Maximum and (Exclusive)Minimum values as strings and write their raw values during serialization (#2309) (ac66756)
- relative references in subdirectory documents are not loading #1674 (#2243) (4bcbd51)
- renames annotations schema property to metadata to match #2241 (28e4a75)
- renames annotations schema property to metadata to match #2241 (33fc7cb)
- set format to binary for file uploads (#2305) (47f10d3)
2.0.0-preview.16 (2025-03-20)
- always serialize security schemes in components (3aac661)
- always serialize security schemes in components (a765acf)
2.0.0-preview.15 (2025-03-18)
- Include hidi in solution (7f4bec8)
- remove duplicate unused property (f62e039)
- revert change to exclude hidi in solution (c3afe4e)
2.0.0-preview.14 (2025-03-18)
- exclude hidi from release due to package source mapping conflict (72daa54)
2.0.0-preview.13 (2025-03-14)
- adds OpenApiDocument.SerializeAs() so simplify serialization scenarios (371a574)
- enable null reference type support (#2146) (96574ec)
- enables references as components (eeffba9)
- use http method object instead of enum (8baff28)
- a bug where references would not serialize summary or descriptions in 3.1 (ca7ccdd)
- handling for reference IDs with http prefix (3385a0e)
2.0.0-preview.12 (2025-03-07)
- fixes serialization of openApidocs with operation tags with settings to inline references (8eecae6)
- fixes serialization of openApidocs with operation tags with settings to inline references. (f67fe64)
2.0.0-preview.11 (2025-03-03)
- rename
OpenApiDocument.SecurityRequirementsasSecurity(d8553d6)
- release 2.0.0-preview.11 (f425b8e)
2.0.0-preview10 (2025-02-27)
- deduplicates tags at the document level (93c468e)
- tags references are now deduplicated as well (763c0c1)
- add logic for serializing date time objects (23395c5)
- adds missing cancellation parameter to async method (243a111)
- avoid creating new http clients to load additional documents of the workspace (0f23798)
- deduplicates exclusive min/max properties in the object model (08414a1)
- deduplicates exclusive min/max properties in the object model (0d5b471)
- moves the http client for the reader to settings so it can be passed by client application (9b910f3)
- OpenAPIDocument JsonSchemaDialect property is now a URI (45977b5)
- openapischema schema property is now a Uri (452a6b9)
- primitive parsing for strings as DateTimes is too greedy (4ee1d8b)
- removes static readers registry (fe7a2fd)
- use a single http client in hidi (9386fae)
2.0.0-preview9 (2025-02-21)
- add support for dependentRequired (75d7a66)
- an issue where deprecation extension parsing would fail (5db8757)
- an issue where deprecation extension parsing would fail (b59864c)
- refactor ToIdentifier() to normalize flaggable enums (#2156) (b80e934)
2.0.0-preview8 (2025-02-17)
- a bug where external reference loading for local files would not work on linux (df99a00)
- add meaningful exception message during validation (4a6547d)
- add meaningful exception message during validation (74d20ed)
- adds a cancellation token argument to external document loading (a5ffab1)
- parsing failure on nodes set to null (20aacc1)
- parsing failure on nodes set to null (4245de9)
2.0.0-preview7 (2025-02-06)
- do not write null for types on parameters in v2 (f889937)
- do not write null for types on parameters in v2 (4aef7b7)
2.0.0-preview6 (2025-02-05)
- adds a net8 target to benefit from all the conditional compilation (a201aa2)
- adds components registration method for schemas (10e548a)
- adds deconstructor to read result (79336f6)
- adds deconstructor to read result (d8c1593)
- adds to identifier mapping to non nullable enum (bd9622e)
- bumps target OAS version to 3.1.1 (9e8d8a4)
- configure AOT for trimming compatibility (b4f9c3e)
- makes document optional (754f763)
- makes the reference interface covariant (7405f3c)
- splits described and summarized interfaces (2a10cd9)
- 3.0 serialization when type is set to null (920a51a)
- a bug where 3.0 downcast of type null would not work (6b636d5)
- a bug where 3.0 downcast of type null would not work (ac05342)
- a flaky behaviour for format property serialization (3ea1fa9)
- a flaky behaviour for format property serialization (52981d4)
- additional 3.1.0 constants after merge and v2 release (9e8d8a4)
- adds generic shallow copy method to avoid inadvertent conversions of references to schemas (e4c14a4)
- adds missing culture argument to date serialization (45329e4)
- adds missing null prop operator to proxy properties (8361069)
- adds missing null propagation operators for callback and header references (0cb4ccb)
- adds support for all component types (8a73b54)
- aligns callback parameter name with interface (68b25cc)
- aligns missing properties for override (e3325b9)
- aligns parameter name with interface definition for example (d7e1f91)
- aligns reference copy constructors (ce93aa7)
- aligns to null propagation operator (8d57b81)
- allow registration of component references (14750dc)
- an empty security requirement should not result in an object during serialization (1c6fd8e)
- build passes (ea68427)
- callback reference proxy implementation (028d60b)
- callback reference proxy implementation (2cbb0fa)
- components schema copy (88daad5)
- conditional version for extension causes invalid json (4030c1f)
- conditional version for extension causes invalid json (0ce92cc)
- date time and date time offset shifting zones (a6a44a7)
- default settings in case of null value (ab2ddf0)
- do not allow null argument for example copy constructor (aa80b19)
- do not copy host document as it negatively impact performance (1043e4e)
- do not copy host document as it negatively impact performance (a46e857)
- do not emit a type array in 3.1 when unnecessary (3b3d0e6)
- draft security scheme reference proxy design pattern (1bd2624)
- empty security requirements are actually valid. to negate the document ones (42bd396)
- enum description number values (ff7b4a9)
- enum description number values (e29e24c)
- enum parsing when encountering unknown values should not default to first member (d4e155b)
- enum parsing when encountering unknown values should not default to first member (9d07ebb)
- extensions collection initialization (4f28b65)
- extraneous null prop removal (1006879)
- failing unit test after merge (a4ac872)
- failing unit tests for security scheme references in security requirements (d2e4111)
- fixes inlining override when they should not happen (704943c)
- fixes invalid OAI document for unit tests (837f000)
- inconsistant API surface usage (47ad76b)
- last reference to copy constructor (d87375d)
- makes reference fields immutable (fda05d4)
- makes reference of holder immutable (a182f44)
- makes target field read only (89881fd)
- missing defensive programming in copy constructors (227d99d)
- missing doc comment for annotations (41759a1)
- missing null prop operator on parameter reference (019eb99)
- missing property rename (2443fa0)
- multiple performance fixes for type serialization (bd9622e)
- multiple performance fixes for type serialization feat: adds to identifier mapping to non nullable enum (5fef51c)
- multiple unit test failures (2f171a3)
- null flag comparison (081e251)
- null propagation for most failed reference lookup (7994691)
- null reference check (a5023d6)
- Open API header proxy design pattern implementation (77e0ad1)
- open API link reference proxy design pattern implementation (6a96462)
- open API link reference proxy design pattern implementation (376e54d)
- open api response reference should not clone objects (4243873)
- open api schema reference proxy design pattern implementation (e57d049)
- open api schema reference proxy design pattern implementation (aebefb7)
- parameter reference proxy design pattern implementation (ed6ffa1)
- parameter reference proxy design pattern implementation (eeb79a4)
- passes missing host document references to all layers (d7c4621)
- passes missing host document references to all layers (ff1406c)
- path item reference implementation (56f291b)
- path item reference implementation (c725267)
- potential NRT (9db6e2d)
- potential NRT for net8 build (f517deb)
- proxy design pattern implementation for OpenAPiExample (cc28ff2)
- proxy design pattern implementation for request body (425335e)
- references callback writer (88ad997)
- removes all obsolete APIs (e861c08)
- removes extraneuous null prop op in copy constructor (227d99d)
- removes nullable property that shouldn't be part of dom (4d9c17b)
- removes redundant assignment (8d70195)
- removes unnecessary null prop in copy constructor (aa993b1)
- removes unused parameters (de9d979)
- removes unused parameters (9cd7aae)
- removes useless condition for null check (4a50c77)
- removes useless virtual definitions in components (af3038a)
- removes virtual modifier in MediaType (4dfc9b8)
- request body references are converted to v2 properly (b84ea19)
- response reference proxy design pattern implementation (8103c20)
- response reference proxy design pattern implementation (5b4003b)
- restores default constructor for ISerializable implementation (778184f)
- returns reference instead of null (45e40fa)
- sets hidi version to a preview (975b1bf)
- sets hidi version to a preview (8999336)
- shallow copy for callback (4ea87ef)
- shallow copy for example (9bc3044)
- shallow copy for parameter link path item and request body (9af6f30)
- side effects in tag references (717deb0)
- side effects in tag references (878593b)
- single copy and maintain for references (30ee6ed)
- specifies encoding for net fx (95dafe6)
- specifies encoding for net fx (cd13481)
- support non-standard MIME type in response header (50ddca2)
- switches header to shallow copy (2a42c36)
- tag reference proxy design pattern implementation (46e08d4)
- tag, response, and security scheme shallow copy (7ac149c)
- updates public api file (b727581)
- updates public API surface with net8 target (1a1e013)
- uses backing fields instead of schema copy (6f4e7a2)
- uses the json node clone API to avoid unecessary allocs (818414d)
- v2 references for properties do not work as expected (aa90edf)
- v2 references for properties do not work as expected (ec9c01b)
- v2 request body content null propagation (6d064c4)
- v2 request body content null propagation (8b4833c)
- visibility of serialize internal methods (dc8a757)
- avoid round trip serialization (a6a44a7)
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.