diff --git a/docs/generators/ada-server.md b/docs/generators/ada-server.md index 697dbf15758..4a7ba7d2829 100644 --- a/docs/generators/ada-server.md +++ b/docs/generators/ada-server.md @@ -227,6 +227,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/ada.md b/docs/generators/ada.md index 0b21f3edb98..fa9bb262489 100644 --- a/docs/generators/ada.md +++ b/docs/generators/ada.md @@ -227,6 +227,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/android.md b/docs/generators/android.md index 03de0770fc8..2a5cfe46fe3 100644 --- a/docs/generators/android.md +++ b/docs/generators/android.md @@ -240,6 +240,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/apache2.md b/docs/generators/apache2.md index 21d0760cf27..40f0a5f3780 100644 --- a/docs/generators/apache2.md +++ b/docs/generators/apache2.md @@ -142,6 +142,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✗|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/apex.md b/docs/generators/apex.md index 1abbfaf190c..b1f506ef03a 100644 --- a/docs/generators/apex.md +++ b/docs/generators/apex.md @@ -280,6 +280,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/asciidoc.md b/docs/generators/asciidoc.md index 760ab8f21f5..6b33e759222 100644 --- a/docs/generators/asciidoc.md +++ b/docs/generators/asciidoc.md @@ -158,6 +158,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✗|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/aspnetcore.md b/docs/generators/aspnetcore.md index 588ec4628bf..f8a95fbb597 100644 --- a/docs/generators/aspnetcore.md +++ b/docs/generators/aspnetcore.md @@ -302,6 +302,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/avro-schema.md b/docs/generators/avro-schema.md index 5765a9d2618..4b6691d01e9 100644 --- a/docs/generators/avro-schema.md +++ b/docs/generators/avro-schema.md @@ -159,6 +159,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/bash.md b/docs/generators/bash.md index ccf49dd7efa..50bffabc718 100644 --- a/docs/generators/bash.md +++ b/docs/generators/bash.md @@ -172,6 +172,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/c.md b/docs/generators/c.md index a67e5bcba6d..fa2154d22eb 100644 --- a/docs/generators/c.md +++ b/docs/generators/c.md @@ -268,6 +268,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/clojure.md b/docs/generators/clojure.md index db1f6e373ec..88f2778755d 100644 --- a/docs/generators/clojure.md +++ b/docs/generators/clojure.md @@ -148,6 +148,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cpp-pistache-server.md b/docs/generators/cpp-pistache-server.md index 54d8b428e60..708e09aebf4 100644 --- a/docs/generators/cpp-pistache-server.md +++ b/docs/generators/cpp-pistache-server.md @@ -237,6 +237,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cpp-qt-client.md b/docs/generators/cpp-qt-client.md index e4b32444328..3e8027011ea 100644 --- a/docs/generators/cpp-qt-client.md +++ b/docs/generators/cpp-qt-client.md @@ -244,6 +244,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cpp-qt-qhttpengine-server.md b/docs/generators/cpp-qt-qhttpengine-server.md index bc64e25a1d6..419bf965dfa 100644 --- a/docs/generators/cpp-qt-qhttpengine-server.md +++ b/docs/generators/cpp-qt-qhttpengine-server.md @@ -243,6 +243,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cpp-restbed-server.md b/docs/generators/cpp-restbed-server.md index 42040313f68..f376b503cc7 100644 --- a/docs/generators/cpp-restbed-server.md +++ b/docs/generators/cpp-restbed-server.md @@ -239,6 +239,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cpp-restsdk.md b/docs/generators/cpp-restsdk.md index 432bcc61c38..9be6f58930d 100644 --- a/docs/generators/cpp-restsdk.md +++ b/docs/generators/cpp-restsdk.md @@ -244,6 +244,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cpp-tiny.md b/docs/generators/cpp-tiny.md index 61db7273f7a..e292cffecc9 100644 --- a/docs/generators/cpp-tiny.md +++ b/docs/generators/cpp-tiny.md @@ -237,6 +237,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cpp-tizen.md b/docs/generators/cpp-tizen.md index 507f7d2be2d..1759a8e0693 100644 --- a/docs/generators/cpp-tizen.md +++ b/docs/generators/cpp-tizen.md @@ -241,6 +241,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cpp-ue4.md b/docs/generators/cpp-ue4.md index b4740f34028..7c514088e22 100644 --- a/docs/generators/cpp-ue4.md +++ b/docs/generators/cpp-ue4.md @@ -247,6 +247,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/crystal.md b/docs/generators/crystal.md index 3dddccfd7e9..6d4341efa07 100644 --- a/docs/generators/crystal.md +++ b/docs/generators/crystal.md @@ -221,6 +221,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/csharp-dotnet2.md b/docs/generators/csharp-dotnet2.md index c670fcbf5fd..5e4c904382c 100644 --- a/docs/generators/csharp-dotnet2.md +++ b/docs/generators/csharp-dotnet2.md @@ -267,6 +267,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/csharp-netcore-functions.md b/docs/generators/csharp-netcore-functions.md index 78b2068bbe8..7b5dadf6f78 100644 --- a/docs/generators/csharp-netcore-functions.md +++ b/docs/generators/csharp-netcore-functions.md @@ -297,6 +297,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/csharp-netcore.md b/docs/generators/csharp-netcore.md index 40c977bb028..1e88fb7ac4d 100644 --- a/docs/generators/csharp-netcore.md +++ b/docs/generators/csharp-netcore.md @@ -293,6 +293,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/csharp.md b/docs/generators/csharp.md index f091056f630..59b874beb44 100644 --- a/docs/generators/csharp.md +++ b/docs/generators/csharp.md @@ -287,6 +287,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/cwiki.md b/docs/generators/cwiki.md index aaf304f798c..c7be7280e65 100644 --- a/docs/generators/cwiki.md +++ b/docs/generators/cwiki.md @@ -150,6 +150,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/dart-dio-next.md b/docs/generators/dart-dio-next.md index d94fd4a8072..ed14907168e 100644 --- a/docs/generators/dart-dio-next.md +++ b/docs/generators/dart-dio-next.md @@ -226,6 +226,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✗|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/dart.md b/docs/generators/dart.md index abf0a8f9f99..cbc19071638 100644 --- a/docs/generators/dart.md +++ b/docs/generators/dart.md @@ -225,6 +225,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✗|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/dynamic-html.md b/docs/generators/dynamic-html.md index 14896165b87..cdb4ef80cd7 100644 --- a/docs/generators/dynamic-html.md +++ b/docs/generators/dynamic-html.md @@ -146,6 +146,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✓|OAS3 +|allOf|✓|OAS2,OAS3 +|anyOf|✓|OAS3 +|oneOf|✓|OAS3 +|not|✓|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/eiffel.md b/docs/generators/eiffel.md index 7fad750e358..fd52054a67a 100644 --- a/docs/generators/eiffel.md +++ b/docs/generators/eiffel.md @@ -217,6 +217,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/elixir.md b/docs/generators/elixir.md index 4031680353b..a217d05ec06 100644 --- a/docs/generators/elixir.md +++ b/docs/generators/elixir.md @@ -164,6 +164,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/elm.md b/docs/generators/elm.md index 568ff2a45d0..44bbf6e04d3 100644 --- a/docs/generators/elm.md +++ b/docs/generators/elm.md @@ -155,6 +155,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/erlang-client.md b/docs/generators/erlang-client.md index a6d69827e8c..929bc648c6b 100644 --- a/docs/generators/erlang-client.md +++ b/docs/generators/erlang-client.md @@ -162,6 +162,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/erlang-proper.md b/docs/generators/erlang-proper.md index cb759f1fd35..1e649ba1b3e 100644 --- a/docs/generators/erlang-proper.md +++ b/docs/generators/erlang-proper.md @@ -162,6 +162,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/erlang-server.md b/docs/generators/erlang-server.md index fb7f5835899..9950933d4c5 100644 --- a/docs/generators/erlang-server.md +++ b/docs/generators/erlang-server.md @@ -162,6 +162,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/fsharp-functions.md b/docs/generators/fsharp-functions.md index f000efc0f48..b2961189bed 100644 --- a/docs/generators/fsharp-functions.md +++ b/docs/generators/fsharp-functions.md @@ -296,6 +296,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/fsharp-giraffe-server.md b/docs/generators/fsharp-giraffe-server.md index 28e1831134c..76ae8165b16 100644 --- a/docs/generators/fsharp-giraffe-server.md +++ b/docs/generators/fsharp-giraffe-server.md @@ -295,6 +295,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/go-echo-server.md b/docs/generators/go-echo-server.md index ef37e8747da..f616068c117 100644 --- a/docs/generators/go-echo-server.md +++ b/docs/generators/go-echo-server.md @@ -199,6 +199,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/go-gin-server.md b/docs/generators/go-gin-server.md index 9061f85c29e..9ec1b8543fe 100644 --- a/docs/generators/go-gin-server.md +++ b/docs/generators/go-gin-server.md @@ -201,6 +201,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/go-server.md b/docs/generators/go-server.md index d350d737fa7..bfa3a8385ee 100644 --- a/docs/generators/go-server.md +++ b/docs/generators/go-server.md @@ -206,6 +206,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/go.md b/docs/generators/go.md index 061844d39bd..f99ca5e9fbf 100644 --- a/docs/generators/go.md +++ b/docs/generators/go.md @@ -207,6 +207,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/graphql-nodejs-express-server.md b/docs/generators/graphql-nodejs-express-server.md index cf32b78e903..b4bcc2910dc 100644 --- a/docs/generators/graphql-nodejs-express-server.md +++ b/docs/generators/graphql-nodejs-express-server.md @@ -153,6 +153,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/graphql-schema.md b/docs/generators/graphql-schema.md index 564fc87f38c..f66e9921ae3 100644 --- a/docs/generators/graphql-schema.md +++ b/docs/generators/graphql-schema.md @@ -153,6 +153,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/groovy.md b/docs/generators/groovy.md index b8d84fe94fd..76ec86abae0 100644 --- a/docs/generators/groovy.md +++ b/docs/generators/groovy.md @@ -296,6 +296,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/haskell-http-client.md b/docs/generators/haskell-http-client.md index 69d5e5be0a8..08e1738d3d6 100644 --- a/docs/generators/haskell-http-client.md +++ b/docs/generators/haskell-http-client.md @@ -207,6 +207,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/haskell-yesod.md b/docs/generators/haskell-yesod.md index 839dfad72e5..89540052792 100644 --- a/docs/generators/haskell-yesod.md +++ b/docs/generators/haskell-yesod.md @@ -181,6 +181,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/haskell.md b/docs/generators/haskell.md index 75a94c0f870..1b1e3e68c13 100644 --- a/docs/generators/haskell.md +++ b/docs/generators/haskell.md @@ -184,6 +184,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/html.md b/docs/generators/html.md index 82b6bf00065..ee3d6caa564 100644 --- a/docs/generators/html.md +++ b/docs/generators/html.md @@ -150,6 +150,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✓|OAS3 +|allOf|✓|OAS2,OAS3 +|anyOf|✓|OAS3 +|oneOf|✓|OAS3 +|not|✓|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/html2.md b/docs/generators/html2.md index 2ede4e4fe0c..d83c97311d5 100644 --- a/docs/generators/html2.md +++ b/docs/generators/html2.md @@ -154,6 +154,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✓|OAS3 +|allOf|✓|OAS2,OAS3 +|anyOf|✓|OAS3 +|oneOf|✓|OAS3 +|not|✓|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-camel.md b/docs/generators/java-camel.md index 1f776b5e1cb..9e919ce2be8 100644 --- a/docs/generators/java-camel.md +++ b/docs/generators/java-camel.md @@ -326,6 +326,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-inflector.md b/docs/generators/java-inflector.md index 1e4b5f8aabf..52008c192a2 100644 --- a/docs/generators/java-inflector.md +++ b/docs/generators/java-inflector.md @@ -294,6 +294,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-micronaut-client.md b/docs/generators/java-micronaut-client.md index 1bf487e7900..76970cb240a 100644 --- a/docs/generators/java-micronaut-client.md +++ b/docs/generators/java-micronaut-client.md @@ -313,6 +313,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-micronaut-server.md b/docs/generators/java-micronaut-server.md index ebabb494d29..af82c812c33 100644 --- a/docs/generators/java-micronaut-server.md +++ b/docs/generators/java-micronaut-server.md @@ -316,6 +316,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-msf4j.md b/docs/generators/java-msf4j.md index f8786fc388e..b11022c8633 100644 --- a/docs/generators/java-msf4j.md +++ b/docs/generators/java-msf4j.md @@ -300,6 +300,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-pkmst.md b/docs/generators/java-pkmst.md index 7859de2a8cd..32e83edba4c 100644 --- a/docs/generators/java-pkmst.md +++ b/docs/generators/java-pkmst.md @@ -301,6 +301,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-play-framework.md b/docs/generators/java-play-framework.md index 05c77a4caa6..3f2318a8622 100644 --- a/docs/generators/java-play-framework.md +++ b/docs/generators/java-play-framework.md @@ -304,6 +304,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-undertow-server.md b/docs/generators/java-undertow-server.md index 30167906cbd..5b579a5aa70 100644 --- a/docs/generators/java-undertow-server.md +++ b/docs/generators/java-undertow-server.md @@ -294,6 +294,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-vertx-web.md b/docs/generators/java-vertx-web.md index 74d2928c43e..2d00e598ba0 100644 --- a/docs/generators/java-vertx-web.md +++ b/docs/generators/java-vertx-web.md @@ -294,6 +294,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java-vertx.md b/docs/generators/java-vertx.md index 3fbc89383a2..987772f131a 100644 --- a/docs/generators/java-vertx.md +++ b/docs/generators/java-vertx.md @@ -297,6 +297,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/java.md b/docs/generators/java.md index e433c3557f2..b52feda4d25 100644 --- a/docs/generators/java.md +++ b/docs/generators/java.md @@ -316,6 +316,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/javascript-apollo.md b/docs/generators/javascript-apollo.md index 05cb3e53d68..59150ad9e83 100644 --- a/docs/generators/javascript-apollo.md +++ b/docs/generators/javascript-apollo.md @@ -245,6 +245,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/javascript-closure-angular.md b/docs/generators/javascript-closure-angular.md index 966f1a447ae..f85f22cb96d 100644 --- a/docs/generators/javascript-closure-angular.md +++ b/docs/generators/javascript-closure-angular.md @@ -194,6 +194,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/javascript-flowtyped.md b/docs/generators/javascript-flowtyped.md index 3923edb7fd0..5dc6a58c6d9 100644 --- a/docs/generators/javascript-flowtyped.md +++ b/docs/generators/javascript-flowtyped.md @@ -248,6 +248,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/javascript.md b/docs/generators/javascript.md index 06ed5dffa3b..5c1c2b4724e 100644 --- a/docs/generators/javascript.md +++ b/docs/generators/javascript.md @@ -248,6 +248,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jaxrs-cxf-cdi.md b/docs/generators/jaxrs-cxf-cdi.md index e6c3d3f79f9..8c6eb15e7c8 100644 --- a/docs/generators/jaxrs-cxf-cdi.md +++ b/docs/generators/jaxrs-cxf-cdi.md @@ -307,6 +307,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jaxrs-cxf-client.md b/docs/generators/jaxrs-cxf-client.md index b251c2dab20..5e8f593a1fa 100644 --- a/docs/generators/jaxrs-cxf-client.md +++ b/docs/generators/jaxrs-cxf-client.md @@ -298,6 +298,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jaxrs-cxf-extended.md b/docs/generators/jaxrs-cxf-extended.md index 0c66e19ddad..b68220e9063 100644 --- a/docs/generators/jaxrs-cxf-extended.md +++ b/docs/generators/jaxrs-cxf-extended.md @@ -321,6 +321,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jaxrs-cxf.md b/docs/generators/jaxrs-cxf.md index df4f55835db..6e77fb11f91 100644 --- a/docs/generators/jaxrs-cxf.md +++ b/docs/generators/jaxrs-cxf.md @@ -316,6 +316,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jaxrs-jersey.md b/docs/generators/jaxrs-jersey.md index ed3afb1a9b3..0797cda9618 100644 --- a/docs/generators/jaxrs-jersey.md +++ b/docs/generators/jaxrs-jersey.md @@ -301,6 +301,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jaxrs-resteasy-eap.md b/docs/generators/jaxrs-resteasy-eap.md index 0f29896843d..b0e66a64f86 100644 --- a/docs/generators/jaxrs-resteasy-eap.md +++ b/docs/generators/jaxrs-resteasy-eap.md @@ -301,6 +301,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jaxrs-resteasy.md b/docs/generators/jaxrs-resteasy.md index a2ab473d1d0..ec6f9b3ae87 100644 --- a/docs/generators/jaxrs-resteasy.md +++ b/docs/generators/jaxrs-resteasy.md @@ -300,6 +300,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jaxrs-spec.md b/docs/generators/jaxrs-spec.md index 4072b6d40f0..90038fb4ecd 100644 --- a/docs/generators/jaxrs-spec.md +++ b/docs/generators/jaxrs-spec.md @@ -307,6 +307,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/jmeter.md b/docs/generators/jmeter.md index 382a38779b9..90ee80172ab 100644 --- a/docs/generators/jmeter.md +++ b/docs/generators/jmeter.md @@ -143,6 +143,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/k6.md b/docs/generators/k6.md index 25f82dd71d2..f9de52fa699 100644 --- a/docs/generators/k6.md +++ b/docs/generators/k6.md @@ -141,6 +141,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/kotlin-server.md b/docs/generators/kotlin-server.md index ce3a8d9c5bb..8daa145ec43 100644 --- a/docs/generators/kotlin-server.md +++ b/docs/generators/kotlin-server.md @@ -260,6 +260,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/kotlin-spring.md b/docs/generators/kotlin-spring.md index 196fad01ad9..100115ca3cc 100644 --- a/docs/generators/kotlin-spring.md +++ b/docs/generators/kotlin-spring.md @@ -267,6 +267,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/kotlin-vertx.md b/docs/generators/kotlin-vertx.md index 0ad077e886d..6080b3c98bb 100644 --- a/docs/generators/kotlin-vertx.md +++ b/docs/generators/kotlin-vertx.md @@ -248,6 +248,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/kotlin.md b/docs/generators/kotlin.md index b423c390566..fe146e34dd3 100644 --- a/docs/generators/kotlin.md +++ b/docs/generators/kotlin.md @@ -260,6 +260,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/ktorm-schema.md b/docs/generators/ktorm-schema.md index 1204c1a4ec4..b4b5b1b6162 100644 --- a/docs/generators/ktorm-schema.md +++ b/docs/generators/ktorm-schema.md @@ -351,6 +351,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/lua.md b/docs/generators/lua.md index a7281d52b23..2b2d3656a9d 100644 --- a/docs/generators/lua.md +++ b/docs/generators/lua.md @@ -170,6 +170,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/markdown.md b/docs/generators/markdown.md index dd06f41eb69..75f0538b6bf 100644 --- a/docs/generators/markdown.md +++ b/docs/generators/markdown.md @@ -158,6 +158,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/mysql-schema.md b/docs/generators/mysql-schema.md index bbc30c2a0df..65cf6dfe851 100644 --- a/docs/generators/mysql-schema.md +++ b/docs/generators/mysql-schema.md @@ -423,6 +423,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/nim.md b/docs/generators/nim.md index 82902837fae..5612b294c21 100644 --- a/docs/generators/nim.md +++ b/docs/generators/nim.md @@ -225,6 +225,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/nodejs-express-server.md b/docs/generators/nodejs-express-server.md index 2310cba822a..18df0f28853 100644 --- a/docs/generators/nodejs-express-server.md +++ b/docs/generators/nodejs-express-server.md @@ -176,6 +176,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/objc.md b/docs/generators/objc.md index 6b585f568dd..80aac2e5a07 100644 --- a/docs/generators/objc.md +++ b/docs/generators/objc.md @@ -212,6 +212,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/ocaml.md b/docs/generators/ocaml.md index 03a5c87ac9c..196059ffba1 100644 --- a/docs/generators/ocaml.md +++ b/docs/generators/ocaml.md @@ -208,6 +208,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/openapi-yaml.md b/docs/generators/openapi-yaml.md index 88180a0d4f6..bb9d06115fc 100644 --- a/docs/generators/openapi-yaml.md +++ b/docs/generators/openapi-yaml.md @@ -141,6 +141,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✓|OAS3 +|allOf|✓|OAS2,OAS3 +|anyOf|✓|OAS3 +|oneOf|✓|OAS3 +|not|✓|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/openapi.md b/docs/generators/openapi.md index e7c9b65f83f..ed0420aa2bb 100644 --- a/docs/generators/openapi.md +++ b/docs/generators/openapi.md @@ -141,6 +141,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✓|OAS3 +|allOf|✓|OAS2,OAS3 +|anyOf|✓|OAS3 +|oneOf|✓|OAS3 +|not|✓|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/perl.md b/docs/generators/perl.md index 31e103f48b0..34b9e1354a2 100644 --- a/docs/generators/perl.md +++ b/docs/generators/perl.md @@ -187,6 +187,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/php-dt.md b/docs/generators/php-dt.md index c918af4de24..752e5027cd7 100644 --- a/docs/generators/php-dt.md +++ b/docs/generators/php-dt.md @@ -236,6 +236,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/php-laravel.md b/docs/generators/php-laravel.md index ad2ec191c3c..122c3f56cc0 100644 --- a/docs/generators/php-laravel.md +++ b/docs/generators/php-laravel.md @@ -237,6 +237,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/php-lumen.md b/docs/generators/php-lumen.md index 9ba5c0c8c99..f8b02f001ce 100644 --- a/docs/generators/php-lumen.md +++ b/docs/generators/php-lumen.md @@ -237,6 +237,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/php-mezzio-ph.md b/docs/generators/php-mezzio-ph.md index 724969660ad..f94d54b3b3e 100644 --- a/docs/generators/php-mezzio-ph.md +++ b/docs/generators/php-mezzio-ph.md @@ -236,6 +236,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/php-slim-deprecated.md b/docs/generators/php-slim-deprecated.md index 5964e9dae6a..508fe455b35 100644 --- a/docs/generators/php-slim-deprecated.md +++ b/docs/generators/php-slim-deprecated.md @@ -237,6 +237,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/php-slim4.md b/docs/generators/php-slim4.md index 16544a31fe1..a995e883495 100644 --- a/docs/generators/php-slim4.md +++ b/docs/generators/php-slim4.md @@ -238,6 +238,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/php-symfony.md b/docs/generators/php-symfony.md index a775eae32d0..608dee49383 100644 --- a/docs/generators/php-symfony.md +++ b/docs/generators/php-symfony.md @@ -241,6 +241,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/php.md b/docs/generators/php.md index e9e6004d823..7d71c4ce009 100644 --- a/docs/generators/php.md +++ b/docs/generators/php.md @@ -238,6 +238,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/plantuml.md b/docs/generators/plantuml.md index 2819c35bf38..847f0d65463 100644 --- a/docs/generators/plantuml.md +++ b/docs/generators/plantuml.md @@ -140,6 +140,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/powershell.md b/docs/generators/powershell.md index d3cebc17895..3745f0d9cf5 100644 --- a/docs/generators/powershell.md +++ b/docs/generators/powershell.md @@ -238,6 +238,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/protobuf-schema.md b/docs/generators/protobuf-schema.md index 5c75b00219a..b61298ede4b 100644 --- a/docs/generators/protobuf-schema.md +++ b/docs/generators/protobuf-schema.md @@ -153,6 +153,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/python-aiohttp.md b/docs/generators/python-aiohttp.md index d477d068807..d2ba3f9ec02 100644 --- a/docs/generators/python-aiohttp.md +++ b/docs/generators/python-aiohttp.md @@ -214,6 +214,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/python-blueplanet.md b/docs/generators/python-blueplanet.md index 11b457be528..9e10d91343f 100644 --- a/docs/generators/python-blueplanet.md +++ b/docs/generators/python-blueplanet.md @@ -214,6 +214,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/python-experimental.md b/docs/generators/python-experimental.md index 4a57107d51b..25ac019fa93 100644 --- a/docs/generators/python-experimental.md +++ b/docs/generators/python-experimental.md @@ -12,7 +12,7 @@ title: Documentation for the python-experimental Generator | generator language | Python | | | generator language version | >=3.9 | | | generator default templating engine | handlebars | | -| helpTxt | Generates a Python client library

Features in this generator:
- type hints on endpoints and model creation
- model parameter names use the spec defined keys and cases
- robust composition (oneOf/anyOf/allOf) where paload data is stored in one instance only
- endpoint parameter names use the spec defined keys and cases
- inline schemas are supported at any location including composition
- multiple content types supported in request body and response bodies
- run time type checking
- Sending/receiving decimals as strings supported with type:string format: number -> DecimalSchema
- Sending/receiving uuids as strings supported with type:string format: uuid -> UUIDSchema
- quicker load time for python modules (a single endpoint can be imported and used without loading others)
- all instances of schemas dynamically inherit from all matching schemas so one can use isinstance to check if validation passed
- composed schemas with type constraints supported (type:object + oneOf/anyOf/allOf)
- schemas are not coerced/cast. For example string + date are both stored as string, and there is a date accessor
- Exceptions: int/float is stored as Decimal, When receiving data from headers it will start as str and may need to be cast for example to int | | +| helpTxt | Generates a Python client library

Features in this generator:
- type hints on endpoints and model creation
- model parameter names use the spec defined keys and cases
- robust composition (oneOf/anyOf/allOf/not) where payload data is stored in one instance only
- endpoint parameter names use the spec defined keys and cases
- inline schemas are supported at any location including composition
- multiple content types supported in request body and response bodies
- run time type checking
- Sending/receiving decimals as strings supported with type:string format: number -> DecimalSchema
- Sending/receiving uuids as strings supported with type:string format: uuid -> UUIDSchema
- quicker load time for python modules (a single endpoint can be imported and used without loading others)
- all instances of schemas dynamically inherit from all matching schemas so one can use isinstance to check if validation passed
- composed schemas with type constraints supported (type:object + oneOf/anyOf/allOf)
- schemas are not coerced/cast. For example string + date are both stored as string, and there is a date accessor
- Exceptions: int/float is stored as Decimal, When receiving data from headers it will start as str and may need to be cast for example to int | | ## CONFIG OPTIONS These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details. @@ -215,6 +215,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✓|OAS3 +|allOf|✓|OAS2,OAS3 +|anyOf|✓|OAS3 +|oneOf|✓|OAS3 +|not|✓|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/python-fastapi.md b/docs/generators/python-fastapi.md index 9a782f7f464..ee2e97acd8b 100644 --- a/docs/generators/python-fastapi.md +++ b/docs/generators/python-fastapi.md @@ -206,6 +206,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/python-flask.md b/docs/generators/python-flask.md index 2323b902f36..2c82d539007 100644 --- a/docs/generators/python-flask.md +++ b/docs/generators/python-flask.md @@ -214,6 +214,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/python-legacy.md b/docs/generators/python-legacy.md index a0324091d00..0af42bd30b9 100644 --- a/docs/generators/python-legacy.md +++ b/docs/generators/python-legacy.md @@ -203,6 +203,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/python.md b/docs/generators/python.md index 760f5fe35ca..34875d8c863 100644 --- a/docs/generators/python.md +++ b/docs/generators/python.md @@ -207,6 +207,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/r.md b/docs/generators/r.md index ab5f7dfcac7..15512fa01b5 100644 --- a/docs/generators/r.md +++ b/docs/generators/r.md @@ -163,6 +163,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/ruby-on-rails.md b/docs/generators/ruby-on-rails.md index cc3df9e254b..30bbbf12d8b 100644 --- a/docs/generators/ruby-on-rails.md +++ b/docs/generators/ruby-on-rails.md @@ -185,6 +185,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/ruby-sinatra.md b/docs/generators/ruby-sinatra.md index a29fb950e0e..aa0d40b85c4 100644 --- a/docs/generators/ruby-sinatra.md +++ b/docs/generators/ruby-sinatra.md @@ -184,6 +184,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/ruby.md b/docs/generators/ruby.md index ad315d694d6..703f7ef7e06 100644 --- a/docs/generators/ruby.md +++ b/docs/generators/ruby.md @@ -218,6 +218,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/rust-server.md b/docs/generators/rust-server.md index 9b0ca5ef8ea..ece538a608c 100644 --- a/docs/generators/rust-server.md +++ b/docs/generators/rust-server.md @@ -204,6 +204,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/rust.md b/docs/generators/rust.md index f302e684c0d..04601e32f85 100644 --- a/docs/generators/rust.md +++ b/docs/generators/rust.md @@ -213,6 +213,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scala-akka-http-server.md b/docs/generators/scala-akka-http-server.md index 3a7dc83bbe8..322c4ed1e2f 100644 --- a/docs/generators/scala-akka-http-server.md +++ b/docs/generators/scala-akka-http-server.md @@ -222,6 +222,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scala-akka.md b/docs/generators/scala-akka.md index 3f0694f5aff..e840955e1d5 100644 --- a/docs/generators/scala-akka.md +++ b/docs/generators/scala-akka.md @@ -217,6 +217,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scala-finch.md b/docs/generators/scala-finch.md index 49372b552ed..79adfd1a5d0 100644 --- a/docs/generators/scala-finch.md +++ b/docs/generators/scala-finch.md @@ -229,6 +229,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scala-gatling.md b/docs/generators/scala-gatling.md index 4f2389636fd..54c7969f011 100644 --- a/docs/generators/scala-gatling.md +++ b/docs/generators/scala-gatling.md @@ -227,6 +227,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scala-httpclient-deprecated.md b/docs/generators/scala-httpclient-deprecated.md index 1dfc32d244f..5d9e403e85e 100644 --- a/docs/generators/scala-httpclient-deprecated.md +++ b/docs/generators/scala-httpclient-deprecated.md @@ -227,6 +227,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scala-lagom-server.md b/docs/generators/scala-lagom-server.md index 7d47649b438..c2ab2adcf16 100644 --- a/docs/generators/scala-lagom-server.md +++ b/docs/generators/scala-lagom-server.md @@ -227,6 +227,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scala-play-server.md b/docs/generators/scala-play-server.md index 12b999581bf..e0f60f0531c 100644 --- a/docs/generators/scala-play-server.md +++ b/docs/generators/scala-play-server.md @@ -226,6 +226,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scala-sttp.md b/docs/generators/scala-sttp.md index 4ddcd38c5f7..089a70ac989 100644 --- a/docs/generators/scala-sttp.md +++ b/docs/generators/scala-sttp.md @@ -223,6 +223,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scalatra.md b/docs/generators/scalatra.md index d178bc7bb68..25d057cf1c6 100644 --- a/docs/generators/scalatra.md +++ b/docs/generators/scalatra.md @@ -219,6 +219,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/scalaz.md b/docs/generators/scalaz.md index ca4ef30892f..a986e4bb8f6 100644 --- a/docs/generators/scalaz.md +++ b/docs/generators/scalaz.md @@ -227,6 +227,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✗|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/spring.md b/docs/generators/spring.md index 807e103db0b..1bf1f24edb7 100644 --- a/docs/generators/spring.md +++ b/docs/generators/spring.md @@ -319,6 +319,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/swift5.md b/docs/generators/swift5.md index 9954a56e054..be06da4bf09 100644 --- a/docs/generators/swift5.md +++ b/docs/generators/swift5.md @@ -324,6 +324,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-angular.md b/docs/generators/typescript-angular.md index f55394ee2cc..f41324a02ed 100644 --- a/docs/generators/typescript-angular.md +++ b/docs/generators/typescript-angular.md @@ -254,6 +254,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-aurelia.md b/docs/generators/typescript-aurelia.md index c79c2aa018a..8d93a174bcc 100644 --- a/docs/generators/typescript-aurelia.md +++ b/docs/generators/typescript-aurelia.md @@ -238,6 +238,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-axios.md b/docs/generators/typescript-axios.md index 49b366dbe28..0850810c4d2 100644 --- a/docs/generators/typescript-axios.md +++ b/docs/generators/typescript-axios.md @@ -244,6 +244,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-fetch.md b/docs/generators/typescript-fetch.md index 3e123c9d20a..4901df93ed8 100644 --- a/docs/generators/typescript-fetch.md +++ b/docs/generators/typescript-fetch.md @@ -271,6 +271,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-inversify.md b/docs/generators/typescript-inversify.md index 558244504a2..bf1c2f146df 100644 --- a/docs/generators/typescript-inversify.md +++ b/docs/generators/typescript-inversify.md @@ -245,6 +245,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-jquery.md b/docs/generators/typescript-jquery.md index daa68bb908b..3e0310ccfbe 100644 --- a/docs/generators/typescript-jquery.md +++ b/docs/generators/typescript-jquery.md @@ -240,6 +240,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-nestjs.md b/docs/generators/typescript-nestjs.md index 110eb5b0278..99d70502c6c 100644 --- a/docs/generators/typescript-nestjs.md +++ b/docs/generators/typescript-nestjs.md @@ -249,6 +249,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-node.md b/docs/generators/typescript-node.md index 3c0e69e4e26..28945f81c48 100644 --- a/docs/generators/typescript-node.md +++ b/docs/generators/typescript-node.md @@ -243,6 +243,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-redux-query.md b/docs/generators/typescript-redux-query.md index 640bf699882..67a6fffcb53 100644 --- a/docs/generators/typescript-redux-query.md +++ b/docs/generators/typescript-redux-query.md @@ -264,6 +264,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript-rxjs.md b/docs/generators/typescript-rxjs.md index 372226f730c..24d906d8f23 100644 --- a/docs/generators/typescript-rxjs.md +++ b/docs/generators/typescript-rxjs.md @@ -257,6 +257,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/typescript.md b/docs/generators/typescript.md index 5dd8dccc44d..be714cbd096 100644 --- a/docs/generators/typescript.md +++ b/docs/generators/typescript.md @@ -240,6 +240,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/docs/generators/wsdl-schema.md b/docs/generators/wsdl-schema.md index eba2fccda98..bee9159a947 100644 --- a/docs/generators/wsdl-schema.md +++ b/docs/generators/wsdl-schema.md @@ -144,6 +144,10 @@ These options may be applied as additional-properties (cli) or configOptions (pl |Composite|✓|OAS2,OAS3 |Polymorphism|✓|OAS2,OAS3 |Union|✗|OAS3 +|allOf|✗|OAS2,OAS3 +|anyOf|✗|OAS3 +|oneOf|✗|OAS3 +|not|✗|OAS3 ### Security Feature | Name | Supported | Defined By | diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/SchemaSupportFeature.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/SchemaSupportFeature.java index e8a2a65198a..6f453d12e65 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/SchemaSupportFeature.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/SchemaSupportFeature.java @@ -66,5 +66,33 @@ public enum SchemaSupportFeature { *

This suggests support of OneOf in OpenAPI Specification with a discriminator.

*/ @OAS3 - Union + Union, + + /** + * The json schema Composition allOf keyword + * If a composed schema uses the allOf keyword, then payloads must be valid against all the given allOf schemas + */ + @OAS2 @OAS3 + allOf, + + /** + * The json schema Composition anyOf keyword + * If a composed schema uses the anyOf keyword, then payloads must be valid against any of the given anyOf schemas + */ + @OAS3 + anyOf, + + /** + * The json schema Composition oneOf keyword + * If a composed schema uses the oneOf keyword, then payloads must be valid against one of the given oneOf schemas + */ + @OAS3 + oneOf, + + /** + * The json schema Composition not keyword + * If a composed schema uses the not keyword, then payloads must not be valid against the given not schema + */ + @OAS3 + not } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenComposedSchemas.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenComposedSchemas.java index f801853dafc..e53ecf8a4cd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenComposedSchemas.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenComposedSchemas.java @@ -22,11 +22,13 @@ public class CodegenComposedSchemas { private List allOf; private List oneOf; private List anyOf; + private CodegenProperty not = null; - public CodegenComposedSchemas(List allOf, List oneOf, List anyOf) { + public CodegenComposedSchemas(List allOf, List oneOf, List anyOf, CodegenProperty not) { this.allOf = allOf; this.oneOf = oneOf; this.anyOf = anyOf; + this.not = not; } public List getAllOf() { @@ -41,11 +43,16 @@ public class CodegenComposedSchemas { return anyOf; } + public CodegenProperty getNot() { + return not; + } + public String toString() { final StringBuilder sb = new StringBuilder("CodegenComposedSchemas{"); sb.append("oneOf=").append(oneOf); sb.append(", anyOf=").append(anyOf); sb.append(", allOf=").append(allOf); + sb.append(", not=").append(not); sb.append('}'); return sb.toString(); } @@ -56,11 +63,12 @@ public class CodegenComposedSchemas { CodegenComposedSchemas that = (CodegenComposedSchemas) o; return Objects.equals(oneOf, that.oneOf) && Objects.equals(anyOf, that.anyOf) && - Objects.equals(allOf, that.allOf); + Objects.equals(allOf, that.allOf) && + Objects.equals(not, that.not); } @Override public int hashCode() { - return Objects.hash(oneOf, anyOf, allOf); + return Objects.hash(oneOf, anyOf, allOf, not); } } \ No newline at end of file diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index 0d0a147f2c0..1dc1cd8713b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -7371,14 +7371,28 @@ public class DefaultCodegen implements CodegenConfig { } private CodegenComposedSchemas getComposedSchemas(Schema schema) { - if (!(schema instanceof ComposedSchema)) { + if (!(schema instanceof ComposedSchema) && schema.getNot()==null) { return null; } - ComposedSchema cs = (ComposedSchema) schema; + Schema notSchema = schema.getNot(); + CodegenProperty notProperty = null; + if (notSchema != null) { + notProperty = fromProperty("NotSchema", notSchema); + } + List allOf = new ArrayList<>(); + List oneOf = new ArrayList<>(); + List anyOf = new ArrayList<>(); + if (schema instanceof ComposedSchema) { + ComposedSchema cs = (ComposedSchema) schema; + allOf = getComposedProperties(cs.getAllOf(), "allOf"); + oneOf = getComposedProperties(cs.getOneOf(), "oneOf"); + anyOf = getComposedProperties(cs.getAnyOf(), "anyOf"); + } return new CodegenComposedSchemas( - getComposedProperties(cs.getAllOf(), "allOf"), - getComposedProperties(cs.getOneOf(), "oneOf"), - getComposedProperties(cs.getAnyOf(), "anyOf") + allOf, + oneOf, + anyOf, + notProperty ); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonExperimentalClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonExperimentalClientCodegen.java index b8390f834dc..97e5b650ee7 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonExperimentalClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonExperimentalClientCodegen.java @@ -98,7 +98,11 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { SchemaSupportFeature.Simple, SchemaSupportFeature.Composite, SchemaSupportFeature.Polymorphism, - SchemaSupportFeature.Union + SchemaSupportFeature.Union, + SchemaSupportFeature.allOf, + SchemaSupportFeature.anyOf, + SchemaSupportFeature.oneOf, + SchemaSupportFeature.not ) .includeDocumentationFeatures(DocumentationFeature.Readme) .wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON, WireFormatFeature.Custom)) @@ -533,7 +537,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { "Features in this generator:", "- type hints on endpoints and model creation", "- model parameter names use the spec defined keys and cases", - "- robust composition (oneOf/anyOf/allOf) where paload data is stored in one instance only", + "- robust composition (oneOf/anyOf/allOf/not) where payload data is stored in one instance only", "- endpoint parameter names use the spec defined keys and cases", "- inline schemas are supported at any location including composition", "- multiple content types supported in request body and response bodies", diff --git a/modules/openapi-generator/src/main/resources/python-experimental/model_templates/composed_schemas.handlebars b/modules/openapi-generator/src/main/resources/python-experimental/model_templates/composed_schemas.handlebars index 6aef3311b6e..17a77ff9f36 100644 --- a/modules/openapi-generator/src/main/resources/python-experimental/model_templates/composed_schemas.handlebars +++ b/modules/openapi-generator/src/main/resources/python-experimental/model_templates/composed_schemas.handlebars @@ -39,6 +39,16 @@ def _composed_schemas(cls): {{#if this.classname}}{{classname}}{{else}}{{#if nameInSnakeCase}}{{name}}{{else}}{{baseName}}{{/if}}{{/if}} = AnyTypeSchema {{/if}} {{/each}} +{{#with not}} +{{#unless complexType}} +{{#unless isAnyType}} + {{> model_templates/schema }} +{{/unless}} +{{/unless}} +{{#if isAnyType}} + {{#if this.classname}}{{classname}}{{else}}{{#if nameInSnakeCase}}{{name}}{{else}}{{baseName}}{{/if}}{{/if}} = AnyTypeSchema +{{/if}} +{{/with}} {{/with}} return { 'allOf': [ @@ -46,41 +56,54 @@ def _composed_schemas(cls): {{#each allOf}} {{#if complexType}} {{complexType}}, +{{else}} + {{#if nameInSnakeCase}} + {{name}}, + {{else}} + {{baseName}}, + {{/if}} {{/if}} -{{#unless complexType}} - {{#if nameInSnakeCase}}{{name}}{{/if}}{{#unless nameInSnakeCase}}{{baseName}}{{/unless}}, -{{/unless}} {{/each}} ], 'oneOf': [ {{#each oneOf}} {{#if complexType}} {{complexType}}, +{{else}} + {{#if nameInSnakeCase}} + {{name}}, + {{else}} + {{baseName}}, + {{/if}} {{/if}} -{{#unless complexType}} -{{#if isAnyType}} - AnyTypeSchema, -{{/if}} -{{#unless isAnyType}} - {{#if nameInSnakeCase}}{{name}}{{/if}}{{#unless nameInSnakeCase}}{{baseName}}{{/unless}}, -{{/unless}} -{{/unless}} {{/each}} ], 'anyOf': [ {{#each anyOf}} {{#if complexType}} {{complexType}}, +{{else}} + {{#if nameInSnakeCase}} + {{name}}, + {{else}} + {{baseName}}, + {{/if}} {{/if}} -{{#unless complexType}} -{{#if isAnyType}} - AnyTypeSchema, -{{/if}} -{{#unless isAnyType}} - {{#if nameInSnakeCase}}{{name}}{{/if}}{{#unless nameInSnakeCase}}{{baseName}}{{/unless}}, -{{/unless}} -{{/unless}} {{/each}} -{{/with}} ], + 'not': +{{#with not}} +{{#if complexType}} + {{complexType}} +{{else}} + {{#if nameInSnakeCase}} + {{name}} + {{else}} + {{baseName}} + {{/if}} +{{/if}} +{{else}} + None +{{/with}} +{{/with}} } diff --git a/modules/openapi-generator/src/main/resources/python-experimental/schemas.handlebars b/modules/openapi-generator/src/main/resources/python-experimental/schemas.handlebars index a0401472ceb..192afe61717 100644 --- a/modules/openapi-generator/src/main/resources/python-experimental/schemas.handlebars +++ b/modules/openapi-generator/src/main/resources/python-experimental/schemas.handlebars @@ -1574,19 +1574,19 @@ def cast_to_allowed_types(arg: typing.Union[str, date, datetime, decimal.Decimal class ComposedBase(Discriminable): @classmethod - def __get_allof_classes(cls, *args, validation_metadata: ValidationMetadata): + def __get_allof_classes(cls, arg, validation_metadata: ValidationMetadata): path_to_schemas = defaultdict(set) for allof_cls in cls._composed_schemas['allOf']: if allof_cls in validation_metadata.base_classes: continue - other_path_to_schemas = allof_cls._validate(*args, validation_metadata=validation_metadata) + other_path_to_schemas = allof_cls._validate(arg, validation_metadata=validation_metadata) update(path_to_schemas, other_path_to_schemas) return path_to_schemas @classmethod def __get_oneof_class( cls, - *args, + arg, discriminated_cls, validation_metadata: ValidationMetadata, path_to_schemas: typing.Dict[typing.Tuple, typing.Set[typing.Type[Schema]]] @@ -1600,13 +1600,13 @@ class ComposedBase(Discriminable): if oneof_cls in path_to_schemas[validation_metadata.path_to_item]: oneof_classes.append(oneof_cls) continue - if isinstance(args[0], oneof_cls): + if isinstance(arg, oneof_cls): # passed in instance is the correct type chosen_oneof_cls = oneof_cls oneof_classes.append(oneof_cls) continue try: - path_to_schemas = oneof_cls._validate(*args, validation_metadata=validation_metadata) + path_to_schemas = oneof_cls._validate(arg, validation_metadata=validation_metadata) new_base_classes = validation_metadata.base_classes except (ApiValueError, ApiTypeError) as ex: if discriminated_cls is not None and oneof_cls is discriminated_cls: @@ -1629,7 +1629,7 @@ class ComposedBase(Discriminable): @classmethod def __get_anyof_classes( cls, - *args, + arg, discriminated_cls, validation_metadata: ValidationMetadata ): @@ -1640,14 +1640,14 @@ class ComposedBase(Discriminable): for anyof_cls in cls._composed_schemas['anyOf']: if anyof_cls in validation_metadata.base_classes: continue - if isinstance(args[0], anyof_cls): + if isinstance(arg, anyof_cls): # passed in instance is the correct type chosen_anyof_cls = anyof_cls anyof_classes.append(anyof_cls) continue try: - other_path_to_schemas = anyof_cls._validate(*args, validation_metadata=validation_metadata) + other_path_to_schemas = anyof_cls._validate(arg, validation_metadata=validation_metadata) except (ApiValueError, ApiTypeError) as ex: if discriminated_cls is not None and anyof_cls is discriminated_cls: raise ex @@ -1744,6 +1744,21 @@ class ComposedBase(Discriminable): validation_metadata=updated_vm ) update(path_to_schemas, other_path_to_schemas) + not_cls = cls._composed_schemas['not'] + if not_cls: + other_path_to_schemas = None + try: + other_path_to_schemas = not_cls._validate(arg, validation_metadata=updated_vm) + except (ApiValueError, ApiTypeError): + pass + if other_path_to_schemas: + raise ApiValueError( + "Invalid value '{}' was passed in to {}. Value is invalid because it is disallowed by {}".format( + arg, + cls.__name__, + not_cls.__name__, + ) + ) if discriminated_cls is not None: # TODO use an exception from this package here @@ -2053,6 +2068,7 @@ class BinarySchema( ], 'anyOf': [ ], + 'not': None } def __new__(cls, arg: typing.Union[io.FileIO, io.BufferedReader, bytes], **kwargs: typing.Union[ValidationMetadata]): diff --git a/modules/openapi-generator/src/test/resources/3_0/python-experimental/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml b/modules/openapi-generator/src/test/resources/3_0/python-experimental/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml index 4367f1b394f..5b31f8d14f1 100644 --- a/modules/openapi-generator/src/test/resources/3_0/python-experimental/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/python-experimental/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml @@ -1730,13 +1730,12 @@ components: Here the 'type' attribute is not specified, which means the value can be anything, including the null value, string, number, boolean, array or object. See https://github.com/OAI/OpenAPI-Specification/issues/1389 - # TODO: this should be supported, currently there are some issues in the code generation. - #anyTypeExceptNullProp: - # description: any type except 'null' - # Here the 'type' attribute is not specified, which means the value can be anything, - # including the null value, string, number, boolean, array or object. - # not: - # type: 'null' + anyTypeExceptNullProp: + description: any type except 'null' + Here the 'type' attribute is not specified, which means the value can be anything, + including the null value, string, number, boolean, array or object. + not: + type: 'null' anyTypePropNullable: description: test code generation for any type Here the 'type' attribute is not specified, which means the value can be anything, @@ -2688,9 +2687,6 @@ components: SomeObject: allOf: - $ref: '#/components/schemas/ObjectInterface' -# TODO turn this back on later -# AnyType: -# description: this should allow any type because type was not specified ArrayWithValidationsInItems: type: array maxItems: 2 @@ -2812,3 +2808,6 @@ components: type: string format: uuid minLength: 1 + AnyTypeNotString: + not: + type: string diff --git a/samples/openapi3/client/petstore/python-experimental/.openapi-generator/FILES b/samples/openapi3/client/petstore/python-experimental/.openapi-generator/FILES index 92f4e26c7c5..b2acef46f4f 100644 --- a/samples/openapi3/client/petstore/python-experimental/.openapi-generator/FILES +++ b/samples/openapi3/client/petstore/python-experimental/.openapi-generator/FILES @@ -8,6 +8,7 @@ docs/Address.md docs/Animal.md docs/AnimalFarm.md docs/AnotherFakeApi.md +docs/AnyTypeNotString.md docs/ApiResponse.md docs/Apple.md docs/AppleReq.md @@ -150,6 +151,7 @@ petstore_api/model/additional_properties_with_array_of_enums.py petstore_api/model/address.py petstore_api/model/animal.py petstore_api/model/animal_farm.py +petstore_api/model/any_type_not_string.py petstore_api/model/api_response.py petstore_api/model/apple.py petstore_api/model/apple_req.py diff --git a/samples/openapi3/client/petstore/python-experimental/README.md b/samples/openapi3/client/petstore/python-experimental/README.md index 88a1a063791..f6b927f9a77 100644 --- a/samples/openapi3/client/petstore/python-experimental/README.md +++ b/samples/openapi3/client/petstore/python-experimental/README.md @@ -144,6 +144,7 @@ Class | Method | HTTP request | Description - [Address](docs/Address.md) - [Animal](docs/Animal.md) - [AnimalFarm](docs/AnimalFarm.md) + - [AnyTypeNotString](docs/AnyTypeNotString.md) - [ApiResponse](docs/ApiResponse.md) - [Apple](docs/Apple.md) - [AppleReq](docs/AppleReq.md) diff --git a/samples/openapi3/client/petstore/python-experimental/docs/AnyTypeNotString.md b/samples/openapi3/client/petstore/python-experimental/docs/AnyTypeNotString.md new file mode 100644 index 00000000000..6ec0912a0b0 --- /dev/null +++ b/samples/openapi3/client/petstore/python-experimental/docs/AnyTypeNotString.md @@ -0,0 +1,9 @@ +# AnyTypeNotString + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/openapi3/client/petstore/python-experimental/docs/FakeApi.md b/samples/openapi3/client/petstore/python-experimental/docs/FakeApi.md index 0b2cac727d5..4dec81e7c10 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/FakeApi.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/FakeApi.md @@ -411,6 +411,7 @@ with petstore_api.ApiClient(configuration) as api_client: object_with_no_declared_props=dict(), object_with_no_declared_props_nullable=dict(), any_type_prop=None, + any_type_except_null_prop=None, any_type_prop_nullable=None, ) try: diff --git a/samples/openapi3/client/petstore/python-experimental/docs/User.md b/samples/openapi3/client/petstore/python-experimental/docs/User.md index cfff38a6269..1083391d7c6 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/User.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/User.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **objectWithNoDeclaredProps** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | test code generation for objects Value must be a map of strings to values. It cannot be the 'null' value. | [optional] **objectWithNoDeclaredPropsNullable** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}, none_type** | test code generation for nullable objects. Value must be a map of strings to values or the 'null' value. | [optional] **anyTypeProp** | **bool, date, datetime, dict, float, int, list, str, none_type** | test code generation for any type Here the 'type' attribute is not specified, which means the value can be anything, including the null value, string, number, boolean, array or object. See https://github.com/OAI/OpenAPI-Specification/issues/1389 | [optional] +**anyTypeExceptNullProp** | **object** | any type except 'null' Here the 'type' attribute is not specified, which means the value can be anything, including the null value, string, number, boolean, array or object. | [optional] **anyTypePropNullable** | **bool, date, datetime, dict, float, int, list, str, none_type** | test code generation for any type Here the 'type' attribute is not specified, which means the value can be anything, including the null value, string, number, boolean, array or object. The 'nullable' attribute does not change the allowed values. | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/samples/openapi3/client/petstore/python-experimental/docs/UserApi.md b/samples/openapi3/client/petstore/python-experimental/docs/UserApi.md index 1bd5e09f1a4..ab65024eaff 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/UserApi.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/UserApi.md @@ -51,6 +51,7 @@ with petstore_api.ApiClient(configuration) as api_client: object_with_no_declared_props=dict(), object_with_no_declared_props_nullable=dict(), any_type_prop=None, + any_type_except_null_prop=None, any_type_prop_nullable=None, ) try: @@ -139,6 +140,7 @@ with petstore_api.ApiClient(configuration) as api_client: object_with_no_declared_props=dict(), object_with_no_declared_props_nullable=dict(), any_type_prop=None, + any_type_except_null_prop=None, any_type_prop_nullable=None, ) ] @@ -228,6 +230,7 @@ with petstore_api.ApiClient(configuration) as api_client: object_with_no_declared_props=dict(), object_with_no_declared_props_nullable=dict(), any_type_prop=None, + any_type_except_null_prop=None, any_type_prop_nullable=None, ) ] @@ -708,6 +711,7 @@ with petstore_api.ApiClient(configuration) as api_client: object_with_no_declared_props=dict(), object_with_no_declared_props_nullable=dict(), any_type_prop=None, + any_type_except_null_prop=None, any_type_prop_nullable=None, ) try: diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/api/fake_api_endpoints/inline_composition.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/api/fake_api_endpoints/inline_composition.py index 886d26c49cd..4e1609625f3 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/api/fake_api_endpoints/inline_composition.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/api/fake_api_endpoints/inline_composition.py @@ -99,6 +99,8 @@ class CompositionAtRootSchema( ], 'anyOf': [ ], + 'not': + None } def __new__( @@ -151,6 +153,8 @@ class CompositionInPropertySchema( ], 'anyOf': [ ], + 'not': + None } def __new__( @@ -246,6 +250,8 @@ class SchemaForRequestBodyApplicationJson( ], 'anyOf': [ ], + 'not': + None } def __new__( @@ -298,6 +304,8 @@ class SchemaForRequestBodyMultipartFormData( ], 'anyOf': [ ], + 'not': + None } def __new__( @@ -373,6 +381,8 @@ class SchemaFor200ResponseBodyApplicationJson( ], 'anyOf': [ ], + 'not': + None } def __new__( @@ -425,6 +435,8 @@ class SchemaFor200ResponseBodyMultipartFormData( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/any_type_not_string.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/any_type_not_string.py new file mode 100644 index 00000000000..550938873c5 --- /dev/null +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/any_type_not_string.py @@ -0,0 +1,110 @@ +# coding: utf-8 + +""" + OpenAPI Petstore + + This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ # noqa: E501 + + The version of the OpenAPI document: 1.0.0 + Generated by: https://openapi-generator.tech +""" + +import re # noqa: F401 +import sys # noqa: F401 +import typing # noqa: F401 + +from frozendict import frozendict # noqa: F401 + +import decimal # noqa: F401 +from datetime import date, datetime # noqa: F401 +from frozendict import frozendict # noqa: F401 + +from petstore_api.schemas import ( # noqa: F401 + AnyTypeSchema, + ComposedSchema, + DictSchema, + ListSchema, + StrSchema, + IntSchema, + Int32Schema, + Int64Schema, + Float32Schema, + Float64Schema, + NumberSchema, + UUIDSchema, + DateSchema, + DateTimeSchema, + DecimalSchema, + BoolSchema, + BinarySchema, + NoneSchema, + none_type, + Configuration, + Unset, + unset, + ComposedBase, + ListBase, + DictBase, + NoneBase, + StrBase, + IntBase, + Int32Base, + Int64Base, + Float32Base, + Float64Base, + NumberBase, + UUIDBase, + DateBase, + DateTimeBase, + BoolBase, + BinaryBase, + Schema, + _SchemaValidator, + _SchemaTypeChecker, + _SchemaEnumMaker +) + + +class AnyTypeNotString( + ComposedSchema +): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + @classmethod + @property + def _composed_schemas(cls): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + NotSchema = StrSchema + return { + 'allOf': [ + ], + 'oneOf': [ + ], + 'anyOf': [ + ], + 'not': + NotSchema + } + + def __new__( + cls, + *args: typing.Union[dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes], + _configuration: typing.Optional[Configuration] = None, + **kwargs: typing.Type[Schema], + ) -> 'AnyTypeNotString': + return super().__new__( + cls, + *args, + _configuration=_configuration, + **kwargs, + ) diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/cat.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/cat.py index 742900c1bf0..0c9cb8c83bf 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/cat.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/cat.py @@ -93,6 +93,8 @@ class Cat( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/child_cat.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/child_cat.py index d30ede58aaf..09a40446524 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/child_cat.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/child_cat.py @@ -93,6 +93,8 @@ class ChildCat( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/complex_quadrilateral.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/complex_quadrilateral.py index 38eb9179b51..5dd9f537e9b 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/complex_quadrilateral.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/complex_quadrilateral.py @@ -93,6 +93,8 @@ class ComplexQuadrilateral( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_any_of_different_types_no_validations.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_any_of_different_types_no_validations.py index ca8d255122f..e6436681f7b 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_any_of_different_types_no_validations.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_any_of_different_types_no_validations.py @@ -128,6 +128,8 @@ class ComposedAnyOfDifferentTypesNoValidations( anyOf_14, anyOf_15, ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_bool.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_bool.py index 51a78e276a2..cb9d41450a8 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_bool.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_bool.py @@ -94,6 +94,8 @@ class ComposedBool( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_none.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_none.py index 37f2b4e1dd1..45ab7081386 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_none.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_none.py @@ -94,6 +94,8 @@ class ComposedNone( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_number.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_number.py index a1fa6aac7a3..1b825daf483 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_number.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_number.py @@ -94,6 +94,8 @@ class ComposedNumber( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_object.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_object.py index f854295ba9a..bf352b41016 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_object.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_object.py @@ -94,6 +94,8 @@ class ComposedObject( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_one_of_different_types.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_one_of_different_types.py index 0a09271bc72..0401b8fc51f 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_one_of_different_types.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_one_of_different_types.py @@ -146,6 +146,8 @@ class ComposedOneOfDifferentTypes( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_string.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_string.py index d428f639e52..c3925d8dfa8 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_string.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composed_string.py @@ -94,6 +94,8 @@ class ComposedString( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composition_in_property.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composition_in_property.py index 3b0d74e0e31..4a706c6e9d5 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composition_in_property.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/composition_in_property.py @@ -106,6 +106,8 @@ class CompositionInProperty( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/dog.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/dog.py index 6ca4f39976a..b3848ee7a54 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/dog.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/dog.py @@ -93,6 +93,8 @@ class Dog( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/equilateral_triangle.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/equilateral_triangle.py index 1fdd5ff793a..e190cfad35f 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/equilateral_triangle.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/equilateral_triangle.py @@ -93,6 +93,8 @@ class EquilateralTriangle( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/fruit.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/fruit.py index b781372e6c4..1031f8302ad 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/fruit.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/fruit.py @@ -94,6 +94,8 @@ class Fruit( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/fruit_req.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/fruit_req.py index aed073a760a..b1737345c31 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/fruit_req.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/fruit_req.py @@ -95,6 +95,8 @@ class FruitReq( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/gm_fruit.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/gm_fruit.py index 603f6749edd..73e441074a8 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/gm_fruit.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/gm_fruit.py @@ -94,6 +94,8 @@ class GmFruit( Apple, Banana, ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/isosceles_triangle.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/isosceles_triangle.py index 1b84df37b09..a5a8dfe379b 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/isosceles_triangle.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/isosceles_triangle.py @@ -93,6 +93,8 @@ class IsoscelesTriangle( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/mammal.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/mammal.py index 63a2d3cf1fa..7c9c2b54c6c 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/mammal.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/mammal.py @@ -105,6 +105,8 @@ class Mammal( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/nullable_shape.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/nullable_shape.py index 1c7fd4ec116..007bdfb7182 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/nullable_shape.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/nullable_shape.py @@ -97,6 +97,8 @@ class NullableShape( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/object_with_inline_composition_property.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/object_with_inline_composition_property.py index 3d4b89a52cf..0f20e102241 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/object_with_inline_composition_property.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/object_with_inline_composition_property.py @@ -106,6 +106,8 @@ class ObjectWithInlineCompositionProperty( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/parent_pet.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/parent_pet.py index 3b945266a3d..cf8e85bca10 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/parent_pet.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/parent_pet.py @@ -102,6 +102,8 @@ class ParentPet( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/pig.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/pig.py index 1ac3a428d6d..408620d5967 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/pig.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/pig.py @@ -103,6 +103,8 @@ class Pig( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/quadrilateral.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/quadrilateral.py index 41a83c79743..657f3ebe30b 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/quadrilateral.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/quadrilateral.py @@ -103,6 +103,8 @@ class Quadrilateral( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/scalene_triangle.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/scalene_triangle.py index eb3fc1fd91b..b6dcf5a3180 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/scalene_triangle.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/scalene_triangle.py @@ -93,6 +93,8 @@ class ScaleneTriangle( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/shape.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/shape.py index 107f99783f3..9b1382f3290 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/shape.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/shape.py @@ -103,6 +103,8 @@ class Shape( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/shape_or_null.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/shape_or_null.py index 3a31b4097db..44cb1815023 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/shape_or_null.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/shape_or_null.py @@ -107,6 +107,8 @@ class ShapeOrNull( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/simple_quadrilateral.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/simple_quadrilateral.py index a0505997428..ac25d65da03 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/simple_quadrilateral.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/simple_quadrilateral.py @@ -93,6 +93,8 @@ class SimpleQuadrilateral( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/some_object.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/some_object.py index a7fa7837eef..8481ed59d6e 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/some_object.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/some_object.py @@ -92,6 +92,8 @@ class SomeObject( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/triangle.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/triangle.py index 2ad6c1893f5..ddc61be69d6 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/triangle.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/triangle.py @@ -105,6 +105,8 @@ class Triangle( ], 'anyOf': [ ], + 'not': + None } def __new__( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/user.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/user.py index 05b95656a57..38876f70fa8 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/user.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/user.py @@ -104,6 +104,46 @@ class User( **kwargs, ) anyTypeProp = AnyTypeSchema + + + class anyTypeExceptNullProp( + ComposedSchema + ): + + @classmethod + @property + def _composed_schemas(cls): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + NotSchema = NoneSchema + return { + 'allOf': [ + ], + 'oneOf': [ + ], + 'anyOf': [ + ], + 'not': + NotSchema + } + + def __new__( + cls, + *args: typing.Union[dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes], + _configuration: typing.Optional[Configuration] = None, + **kwargs: typing.Type[Schema], + ) -> 'anyTypeExceptNullProp': + return super().__new__( + cls, + *args, + _configuration=_configuration, + **kwargs, + ) anyTypePropNullable = AnyTypeSchema @@ -121,6 +161,7 @@ class User( objectWithNoDeclaredProps: typing.Union[objectWithNoDeclaredProps, Unset] = unset, objectWithNoDeclaredPropsNullable: typing.Union[objectWithNoDeclaredPropsNullable, Unset] = unset, anyTypeProp: typing.Union[anyTypeProp, Unset] = unset, + anyTypeExceptNullProp: typing.Union[anyTypeExceptNullProp, Unset] = unset, anyTypePropNullable: typing.Union[anyTypePropNullable, Unset] = unset, _configuration: typing.Optional[Configuration] = None, **kwargs: typing.Type[Schema], @@ -139,6 +180,7 @@ class User( objectWithNoDeclaredProps=objectWithNoDeclaredProps, objectWithNoDeclaredPropsNullable=objectWithNoDeclaredPropsNullable, anyTypeProp=anyTypeProp, + anyTypeExceptNullProp=anyTypeExceptNullProp, anyTypePropNullable=anyTypePropNullable, _configuration=_configuration, **kwargs, diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/models/__init__.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/models/__init__.py index 8045fb53fcb..0872c91c809 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/models/__init__.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/models/__init__.py @@ -16,6 +16,7 @@ from petstore_api.model.additional_properties_with_array_of_enums import Additio from petstore_api.model.address import Address from petstore_api.model.animal import Animal from petstore_api.model.animal_farm import AnimalFarm +from petstore_api.model.any_type_not_string import AnyTypeNotString from petstore_api.model.api_response import ApiResponse from petstore_api.model.apple import Apple from petstore_api.model.apple_req import AppleReq diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/schemas.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/schemas.py index 498ffdb14e7..47819dcbca8 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/schemas.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/schemas.py @@ -1581,19 +1581,19 @@ def cast_to_allowed_types(arg: typing.Union[str, date, datetime, decimal.Decimal class ComposedBase(Discriminable): @classmethod - def __get_allof_classes(cls, *args, validation_metadata: ValidationMetadata): + def __get_allof_classes(cls, arg, validation_metadata: ValidationMetadata): path_to_schemas = defaultdict(set) for allof_cls in cls._composed_schemas['allOf']: if allof_cls in validation_metadata.base_classes: continue - other_path_to_schemas = allof_cls._validate(*args, validation_metadata=validation_metadata) + other_path_to_schemas = allof_cls._validate(arg, validation_metadata=validation_metadata) update(path_to_schemas, other_path_to_schemas) return path_to_schemas @classmethod def __get_oneof_class( cls, - *args, + arg, discriminated_cls, validation_metadata: ValidationMetadata, path_to_schemas: typing.Dict[typing.Tuple, typing.Set[typing.Type[Schema]]] @@ -1607,13 +1607,13 @@ class ComposedBase(Discriminable): if oneof_cls in path_to_schemas[validation_metadata.path_to_item]: oneof_classes.append(oneof_cls) continue - if isinstance(args[0], oneof_cls): + if isinstance(arg, oneof_cls): # passed in instance is the correct type chosen_oneof_cls = oneof_cls oneof_classes.append(oneof_cls) continue try: - path_to_schemas = oneof_cls._validate(*args, validation_metadata=validation_metadata) + path_to_schemas = oneof_cls._validate(arg, validation_metadata=validation_metadata) new_base_classes = validation_metadata.base_classes except (ApiValueError, ApiTypeError) as ex: if discriminated_cls is not None and oneof_cls is discriminated_cls: @@ -1636,7 +1636,7 @@ class ComposedBase(Discriminable): @classmethod def __get_anyof_classes( cls, - *args, + arg, discriminated_cls, validation_metadata: ValidationMetadata ): @@ -1647,14 +1647,14 @@ class ComposedBase(Discriminable): for anyof_cls in cls._composed_schemas['anyOf']: if anyof_cls in validation_metadata.base_classes: continue - if isinstance(args[0], anyof_cls): + if isinstance(arg, anyof_cls): # passed in instance is the correct type chosen_anyof_cls = anyof_cls anyof_classes.append(anyof_cls) continue try: - other_path_to_schemas = anyof_cls._validate(*args, validation_metadata=validation_metadata) + other_path_to_schemas = anyof_cls._validate(arg, validation_metadata=validation_metadata) except (ApiValueError, ApiTypeError) as ex: if discriminated_cls is not None and anyof_cls is discriminated_cls: raise ex @@ -1751,6 +1751,21 @@ class ComposedBase(Discriminable): validation_metadata=updated_vm ) update(path_to_schemas, other_path_to_schemas) + not_cls = cls._composed_schemas['not'] + if not_cls: + other_path_to_schemas = None + try: + other_path_to_schemas = not_cls._validate(arg, validation_metadata=updated_vm) + except (ApiValueError, ApiTypeError): + pass + if other_path_to_schemas: + raise ApiValueError( + "Invalid value '{}' was passed in to {}. Value is invalid because it is disallowed by {}".format( + arg, + cls.__name__, + not_cls.__name__, + ) + ) if discriminated_cls is not None: # TODO use an exception from this package here @@ -2060,6 +2075,7 @@ class BinarySchema( ], 'anyOf': [ ], + 'not': None } def __new__(cls, arg: typing.Union[io.FileIO, io.BufferedReader, bytes], **kwargs: typing.Union[ValidationMetadata]): diff --git a/samples/openapi3/client/petstore/python-experimental/test/test_any_type_not_string.py b/samples/openapi3/client/petstore/python-experimental/test/test_any_type_not_string.py new file mode 100644 index 00000000000..1fc8fb99f20 --- /dev/null +++ b/samples/openapi3/client/petstore/python-experimental/test/test_any_type_not_string.py @@ -0,0 +1,35 @@ +# coding: utf-8 + +""" + OpenAPI Petstore + + This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ # noqa: E501 + + The version of the OpenAPI document: 1.0.0 + Generated by: https://openapi-generator.tech +""" + +import unittest + +import petstore_api +from petstore_api.model.any_type_not_string import AnyTypeNotString + + +class TestAnyTypeNotString(unittest.TestCase): + """AnyTypeNotString unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_AnyTypeNotString(self): + """Test AnyTypeNotString""" + # FIXME: construct object with mandatory attributes with example values + # model = AnyTypeNotString() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_any_type_not_string.py b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_any_type_not_string.py new file mode 100644 index 00000000000..88e16175e11 --- /dev/null +++ b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_any_type_not_string.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + OpenAPI Petstore + + This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ # noqa: E501 + + The version of the OpenAPI document: 1.0.0 + Generated by: https://openapi-generator.tech +""" + +import unittest + +import petstore_api +from petstore_api.model.any_type_not_string import AnyTypeNotString + + +class TestAnyTypeNotString(unittest.TestCase): + """AnyTypeNotString unit test stubs""" + + def test_AnyTypeNotString(self): + # valid values work + valid_values = [ + True, + None, + 0, + 3.14, + [], + {} + ] + for valid_value in valid_values: + AnyTypeNotString(valid_value) + + # invalid value raises an exception + with self.assertRaises(petstore_api.ApiValueError): + AnyTypeNotString('') + + +if __name__ == '__main__': + unittest.main() diff --git a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_any_type_schema.py b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_any_type_schema.py index 059c5eaac60..dfe5fc46f3d 100644 --- a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_any_type_schema.py +++ b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_any_type_schema.py @@ -50,6 +50,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model(a=1, b='hi') @@ -74,6 +75,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model([1, 'hi']) @@ -98,6 +100,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model('hi') @@ -122,6 +125,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model(1) @@ -153,6 +157,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model(1) @@ -181,6 +186,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model(True) @@ -212,6 +218,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model(None) @@ -236,6 +243,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model('1970-01-01') @@ -260,6 +268,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model('2020-01-01T00:00:00') @@ -284,6 +293,7 @@ class TestAnyTypeSchema(unittest.TestCase): ], 'anyOf': [ ], + 'not': None } m = Model('12.34') diff --git a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_fruit.py b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_fruit.py index 7d31b94a825..ae41790e48d 100644 --- a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_fruit.py +++ b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_fruit.py @@ -92,6 +92,7 @@ class TestFruit(unittest.TestCase): apple.Apple, banana.Banana, ], + 'not': None } ) diff --git a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_fruit_req.py b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_fruit_req.py index e777e603e1a..1f4f89947df 100644 --- a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_fruit_req.py +++ b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_fruit_req.py @@ -78,6 +78,7 @@ class TestFruitReq(unittest.TestCase): apple_req.AppleReq, banana_req.BananaReq, ], + 'not': None } ) diff --git a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_gm_fruit.py b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_gm_fruit.py index 6d27f7c9dab..22df654e3b1 100644 --- a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_gm_fruit.py +++ b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_gm_fruit.py @@ -74,6 +74,7 @@ class TestGmFruit(unittest.TestCase): ], 'allOf': [], 'oneOf': [], + 'not': None } )