diff --git a/.hub.online.dockerfile b/.hub.online.dockerfile
index 083b84d4ead..6992dff0509 100644
--- a/.hub.online.dockerfile
+++ b/.hub.online.dockerfile
@@ -28,7 +28,7 @@ WORKDIR ${TARGET_DIR}
COPY --from=builder ${GEN_DIR}/modules/openapi-generator-online/target/openapi-generator-online.jar ${TARGET_DIR}/openapi-generator-online.jar
-ENV GENERATOR_HOST=http://localhost
+ENV GENERATOR_HOST=""
EXPOSE 8080
diff --git a/CI/circle_parallel.sh b/CI/circle_parallel.sh
index 417f34349f2..98052b055f5 100755
--- a/CI/circle_parallel.sh
+++ b/CI/circle_parallel.sh
@@ -12,6 +12,7 @@ if [ "$NODE_INDEX" = "1" ]; then
#cp CI/pom.xml.circleci pom.xml
java -version
mvn --quiet verify -Psamples.circleci
+ mvn --quiet javadoc:javadoc -Psamples.circleci
# generate all petstore samples (client, servers, doc)
./bin/run-all-petstore
diff --git a/README.md b/README.md
index bae9e4aa4be..797a761f59d 100644
--- a/README.md
+++ b/README.md
@@ -2,16 +2,11 @@
-[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`4.0.3`): [](https://travis-ci.org/OpenAPITools/openapi-generator)
+[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`4.1.0`): [](https://travis-ci.org/OpenAPITools/openapi-generator)
[](https://circleci.com/gh/OpenAPITools/openapi-generator)
[](https://app.shippable.com/github/OpenAPITools/openapi-generator)
[](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu)
-[`4.1.x`](https://github.com/OpenAPITools/openapi-generator/tree/4.1.x) branch: [](https://travis-ci.org/OpenAPITools/openapi-generator)
-[](https://circleci.com/gh/OpenAPITools/openapi-generator)
-[](https://app.shippable.com/github/OpenAPITools/openapi-generator)
-[](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu)
-
[`5.0.x`](https://github.com/OpenAPITools/openapi-generator/tree/5.0.x) branch: [](https://travis-ci.org/OpenAPITools/openapi-generator)
[](https://circleci.com/gh/OpenAPITools/openapi-generator)
[](https://app.shippable.com/github/OpenAPITools/openapi-generator)
@@ -98,9 +93,8 @@ The OpenAPI Specification has undergone 3 revisions since initial creation in 20
OpenAPI Generator Version | Release Date | Notes
---------------------------- | ------------ | -----
5.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/5.0.0-SNAPSHOT/)| 13.05.2020 | Major release with breaking changes (no fallback)
-4.1.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.1.0-SNAPSHOT/)| 15.07.2019 | Minor release (breaking changes with fallbacks)
-4.0.3 (upcoming patch release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.3-SNAPSHOT/)| 04.07.2019 | Patch release (minor bug fixes, etc)
-[4.0.2](https://github.com/OpenAPITools/openapi-generator/releases/tag/v4.0.2) (latest stable release) | 20.06.2019 | Patch release (bug fixes, minor enhancements, etc)
+4.1.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.1.0-SNAPSHOT/)| 31.07.2019 | Minor release (breaking changes with fallbacks)
+[4.0.3](https://github.com/OpenAPITools/openapi-generator/releases/tag/v4.0.3) (latest stable release) | 09.07.2019 | Patch release (bug fixes, minor enhancements, etc)
OpenAPI Spec compatibility: 1.0, 1.1, 1.2, 2.0, 3.0
@@ -156,16 +150,16 @@ See the different versions of the [openapi-generator-cli](https://mvnrepository.
If you're looking for the latest stable version, you can grab it directly from Maven.org (Java 8 runtime at a minimum):
-JAR location: `http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.2/openapi-generator-cli-4.0.2.jar`
+JAR location: `http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.3/openapi-generator-cli-4.0.3.jar`
For **Mac/Linux** users:
```sh
-wget http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.2/openapi-generator-cli-4.0.2.jar -O openapi-generator-cli.jar
+wget http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.3/openapi-generator-cli-4.0.3.jar -O openapi-generator-cli.jar
```
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
```
-Invoke-WebRequest -OutFile openapi-generator-cli.jar http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.2/openapi-generator-cli-4.0.2.jar
+Invoke-WebRequest -OutFile openapi-generator-cli.jar http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.3/openapi-generator-cli-4.0.3.jar
```
After downloading the JAR, run `java -jar openapi-generator-cli.jar help` to show the usage.
@@ -281,7 +275,7 @@ Example usage:
```sh
# Start container at port 8888 and save the container id
-> CID=$(docker run -d -p 8888:8080 -e GENERATOR_HOST=http://localhost:8888 openapitools/openapi-generator-online)
+> CID=$(docker run -d -p 8888:8080 openapitools/openapi-generator-online)
# allow for startup
> sleep 10
@@ -369,10 +363,10 @@ openapi-generator version
```
-Or install a particular OpenAPI Generator version (e.g. v4.0.2):
+Or install a particular OpenAPI Generator version (e.g. v4.0.3):
```sh
-npm install @openapitools/openapi-generator-cli@cli-4.0.2 -g
+npm install @openapitools/openapi-generator-cli@cli-4.0.3 -g
```
Or install it as dev-dependency:
@@ -396,7 +390,7 @@ java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generat
(if you're on Windows, replace the last command with `java -jar modules\openapi-generator-cli\target\openapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g php -o c:\temp\php_api_client`)
-You can also download the JAR (latest release) directly from [maven.org](http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.2/openapi-generator-cli-4.0.2.jar)
+You can also download the JAR (latest release) directly from [maven.org](http://central.maven.org/maven2/org/openapitools/openapi-generator-cli/4.0.3/openapi-generator-cli-4.0.3.jar)
To get a list of **general** options available, please run `java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar help generate`
@@ -538,6 +532,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [Camptocamp](https://www.camptocamp.com/en)
- [codecentric AG](https://www.codecentric.de/)
- [Cupix](https://www.cupix.com/)
+- [DB Systel](https://www.dbsystel.de)
- [FormAPI](https://formapi.io/)
- [Fuse](https://www.fuse.no/)
- [GenFlow](https://github.com/RepreZen/GenFlow)
@@ -596,6 +591,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2019-05-22 - [REST APIs代码生成指南(OpenAPI Generator)](https://gum.co/openapi_generator_ebook_gb) by [William Cheng](https://twitter.com/wing328), [Xin Meng](https://github.com/xmeng1)
- 2019-05-24 - [REST API 代碼生成指南 (OpenAPI Generator)](https://gum.co/openapi_generator_ebook_big5) by [William Cheng](https://twitter.com/wing328)
- 2019-06-24 - [Kubernetes Clients and OpenAPI Generator](https://speakerdeck.com/wing328/kubernetes-clients-and-openapi-generator) by [William Cheng](https://twitter.com/wing328) at [Kubernetes Contributor Summits Shanghai 2019](https://www.lfasiallc.com/events/contributors-summit-china-2019/)
+- 2019-07-04 - [REST API のためのコード生成入門 (OpenAPI Generator)](https://gum.co/openapi_generator_ebook_big5) by [William Cheng](https://twitter.com/wing328), [中野暁人](https://github.com/ackintosh), [和田拓朗](https://github.com/taxpon)
## [6 - About Us](#table-of-contents)
@@ -785,12 +781,12 @@ If you want to join the committee, please kindly apply by sending an email to te
| PHP | @jebentier (2017/07), @dkarlovi (2017/07), @mandrean (2017/08), @jfastnacht (2017/09), @ackintosh (2017/09) [:heart:](https://www.patreon.com/ackintosh/overview), @ybelenko (2018/07), @renepardon (2018/12) |
| PowerShell | |
| Python | @taxpon (2017/07) @frol (2017/07) @mbohlool (2017/07) @cbornet (2017/09) @kenjones-cisco (2017/11) @tomplus (2018/10) @Jyhess (2019/01) |
-| R | |
+| R | @Ramanth (2019/07) @saigiridhar21 (2019/07) |
| Ruby | @cliffano (2017/07) @zlx (2017/09) @autopp (2019/02) |
| Rust | @frol (2017/07) @farcaller (2017/08) @bjgill (2017/12) |
| Scala | @clasnake (2017/07), @jimschubert (2017/09) [:heart:](https://www.patreon.com/jimschubert), @shijinkui (2018/01), @ramzimaalej (2018/03) |
| Swift | @jgavris (2017/07) @ehyche (2017/08) @Edubits (2017/09) @jaz-ah (2017/09) @d-date (2018/03) |
-| TypeScript | @TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @nicokoenig (2018/09) @topce (2018/10) |
+| TypeScript | @TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @nicokoenig (2018/09) @topce (2018/10) @akehir (2019/07) |
:heart: = Link to support the contributor directly
diff --git a/bin/go-experimental-petstore.sh b/bin/go-experimental-petstore.sh
new file mode 100755
index 00000000000..d4eabb177cc
--- /dev/null
+++ b/bin/go-experimental-petstore.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+SCRIPT="$0"
+echo "# START SCRIPT: $SCRIPT"
+
+while [ -h "$SCRIPT" ] ; do
+ ls=`ls -ld "$SCRIPT"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ SCRIPT="$link"
+ else
+ SCRIPT=`dirname "$SCRIPT"`/"$link"
+ fi
+done
+
+if [ ! -d "${APP_DIR}" ]; then
+ APP_DIR=`dirname "$SCRIPT"`/..
+ APP_DIR=`cd "${APP_DIR}"; pwd`
+fi
+
+executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
+
+if [ ! -f "$executable" ]
+then
+ mvn -B clean package
+fi
+
+SPEC="modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml"
+GENERATOR="go-experimental"
+STUB_DIR="samples/client/petstore/go-experimental/go-petstore"
+
+echo "Removing files and folders under $STUB_DIR"
+rm -rf $STUB_DIR
+
+# if you've executed sbt assembly previously it will use that instead.
+export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
+ags="generate -t modules/openapi-generator/src/main/resources/$GENERATOR -i $SPEC -g $GENERATOR -o $STUB_DIR -DpackageName=petstore $@"
+
+java $JAVA_OPTS -jar $executable $ags
diff --git a/bin/openapi3/go-experimental-petstore.sh b/bin/openapi3/go-experimental-petstore.sh
new file mode 100755
index 00000000000..db24ff5d6c8
--- /dev/null
+++ b/bin/openapi3/go-experimental-petstore.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+SCRIPT="$0"
+echo "# START SCRIPT: $SCRIPT"
+
+while [ -h "$SCRIPT" ] ; do
+ ls=`ls -ld "$SCRIPT"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ SCRIPT="$link"
+ else
+ SCRIPT=`dirname "$SCRIPT"`/"$link"
+ fi
+done
+
+if [ ! -d "${APP_DIR}" ]; then
+ APP_DIR=`dirname "$SCRIPT"`/..
+ APP_DIR=`cd "${APP_DIR}"; pwd`
+fi
+
+executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
+
+if [ ! -f "$executable" ]
+then
+ mvn -B clean package
+fi
+
+SPEC="modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml"
+GENERATOR="go-experimental"
+STUB_DIR="samples/openapi3/client/petstore/go-experimental/go-petstore"
+
+echo "Removing files and folders under $STUB_DIR"
+rm -rf $STUB_DIR
+
+# if you've executed sbt assembly previously it will use that instead.
+export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
+ags="generate -t modules/openapi-generator/src/main/resources/$GENERATOR -i $SPEC -g $GENERATOR -o $STUB_DIR -DpackageName=petstore $@"
+
+java $JAVA_OPTS -jar $executable $ags
diff --git a/bin/openapi3/kotlin-springboot-petstore-server-reactive.sh b/bin/openapi3/kotlin-springboot-petstore-server-reactive.sh
index 8c0d80c4e52..f14abcd4242 100755
--- a/bin/openapi3/kotlin-springboot-petstore-server-reactive.sh
+++ b/bin/openapi3/kotlin-springboot-petstore-server-reactive.sh
@@ -26,7 +26,7 @@ then
fi
export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
-ags="$@ generate -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -t modules/openapi-generator/src/main/resources/kotlin-spring -g kotlin-spring -o samples/server/openapi3/petstore/kotlin-springboot-reactive --additional-properties=library=spring-boot,beanValidations=true,swaggerAnnotations=true,serviceImplementation=true,reactive=true"
+ags="$@ generate -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -t modules/openapi-generator/src/main/resources/kotlin-spring -g kotlin-spring -o samples/openapi3/server/petstore/kotlin-springboot-reactive --additional-properties=library=spring-boot,beanValidations=true,swaggerAnnotations=true,serviceImplementation=true,reactive=true"
echo "Cleaning previously generated files if any from samples/server/openapi3/petstore/kotlin-springboot-reactive"
rm -rf samples/server/openapi3/petstore/kotlin-springboot-reactive
diff --git a/bin/openapi3/kotlin-springboot-petstore-server.sh b/bin/openapi3/kotlin-springboot-petstore-server.sh
index 9db469e38a2..b1320abdb0a 100755
--- a/bin/openapi3/kotlin-springboot-petstore-server.sh
+++ b/bin/openapi3/kotlin-springboot-petstore-server.sh
@@ -26,7 +26,7 @@ then
fi
export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
-ags="$@ generate -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -t modules/openapi-generator/src/main/resources/kotlin-spring -g kotlin-spring -o samples/server/openapi3/petstore/kotlin-springboot --additional-properties=library=spring-boot,beanValidations=true,swaggerAnnotations=true,serviceImplementation=true"
+ags="$@ generate -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -t modules/openapi-generator/src/main/resources/kotlin-spring -g kotlin-spring -o samples/openapi3/server/petstore/kotlin-springboot --additional-properties=library=spring-boot,beanValidations=true,swaggerAnnotations=true,serviceImplementation=true"
echo "Cleaning previously generated files if any from samples/server/openapi3/petstore/kotlin-springboot"
rm -rf samples/server/openapi3/petstore/kotlin-springboot
diff --git a/bin/openapi3/php-ze-ph-petstore-server.sh b/bin/openapi3/php-ze-ph-petstore-server.sh
index c37137cd819..5b92d013109 100644
--- a/bin/openapi3/php-ze-ph-petstore-server.sh
+++ b/bin/openapi3/php-ze-ph-petstore-server.sh
@@ -26,7 +26,7 @@ then
fi
input=modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
-out_folder=samples/server/openapi3/petstore/php-ze-ph
+out_folder=samples/openapi3/server/petstore/php-ze-ph
resources=modules/openapi-generator/src/main/resources/php-ze-ph
# if you've executed sbt assembly previously it will use that instead.
diff --git a/bin/openapi3/python-flask-petstore-python2.sh b/bin/openapi3/python-flask-petstore-python2.sh
index 2f303a57e3d..e33183e3a21 100755
--- a/bin/openapi3/python-flask-petstore-python2.sh
+++ b/bin/openapi3/python-flask-petstore-python2.sh
@@ -27,7 +27,7 @@ fi
# if you've executed sbt assembly previously it will use that instead.
input=modules/openapi-generator/src/test/resources/3_0/petstore.yaml
-out_folder=samples/server/openapi3/petstore/python-flask-python2
+out_folder=samples/openapi3/server/petstore/python-flask-python2
resources=modules/openapi-generator/src/main/resources/python-flask
# if you've executed sbt assembly previously it will use that instead.
diff --git a/bin/openapi3/python-flask-petstore.sh b/bin/openapi3/python-flask-petstore.sh
index fda1f6a5743..b2422ba069b 100755
--- a/bin/openapi3/python-flask-petstore.sh
+++ b/bin/openapi3/python-flask-petstore.sh
@@ -27,7 +27,7 @@ fi
# if you've executed sbt assembly previously it will use that instead.
input=modules/openapi-generator/src/test/resources/3_0/petstore.yaml
-out_folder=samples/server/openapi3/petstore/python-flask
+out_folder=samples/openapi3/server/petstore/python-flask
resources=modules/openapi-generator/src/main/resources/python-flask
# if you've executed sbt assembly previously it will use that instead.
diff --git a/bin/python-experimental-petstore.sh b/bin/python-experimental-petstore.sh
new file mode 100755
index 00000000000..ab01d44cc53
--- /dev/null
+++ b/bin/python-experimental-petstore.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+SCRIPT="$0"
+echo "# START SCRIPT: $SCRIPT"
+
+while [ -h "$SCRIPT" ] ; do
+ ls=`ls -ld "$SCRIPT"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ SCRIPT="$link"
+ else
+ SCRIPT=`dirname "$SCRIPT"`/"$link"
+ fi
+done
+
+if [ ! -d "${APP_DIR}" ]; then
+ APP_DIR=`dirname "$SCRIPT"`/..
+ APP_DIR=`cd "${APP_DIR}"; pwd`
+fi
+
+executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
+
+if [ ! -f "$executable" ]
+then
+ mvn -B clean package $@
+fi
+
+# if you've executed sbt assembly previously it will use that instead.
+export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
+ags="generate -t modules/openapi-generator/src/main/resources/python -i modules/openapi-generator/src/test/resources/2_0/python-client-experimental/petstore-with-fake-endpoints-models-for-testing.yaml -g python-experimental -o samples/client/petstore/python-experimental -DpackageName=petstore_api $@"
+
+java $JAVA_OPTS -jar $executable $ags
diff --git a/bin/windows/android-petstore-httpclient.bat b/bin/windows/android-petstore-httpclient.bat
index aa94d719fc7..181ec906a49 100755
--- a/bin/windows/android-petstore-httpclient.bat
+++ b/bin/windows/android-petstore-httpclient.bat
@@ -5,6 +5,6 @@ If Not Exist %executable% (
)
REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties
-set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g android -o samples\client\petstore\android\httpclient-Dlibrary=httpclient
+set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g android -o samples\client\petstore\android\httpclient -Dlibrary=httpclient
java %JAVA_OPTS% -jar %executable% %ags%
diff --git a/bin/windows/go-experimental-petstore.bat b/bin/windows/go-experimental-petstore.bat
new file mode 100755
index 00000000000..1a62e273e5d
--- /dev/null
+++ b/bin/windows/go-experimental-petstore.bat
@@ -0,0 +1,21 @@
+setlocal
+
+set executable=.\modules\openapi-generator-cli\target\openapi-generator-cli.jar
+
+If Not Exist %executable% (
+ mvn clean package
+)
+
+set SPEC=modules\openapi-generator\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml
+set GENERATOR=go-experimental
+set STUB_DIR=samples\client\petstore\go-experimental\go-petstore
+
+echo Removing files and folders under %STUB_DIR%
+del /F /S /Q %STUB_DIR%
+
+REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties
+set ags=generate -t modules\openapi-generator\src\main\resources\%GENERATOR% -i %SPEC% -g %GENERATOR% -o %STUB_DIR% -DpackageName=petstore
+
+java %JAVA_OPTS% -jar %executable% %ags%
+
+endlocal
diff --git a/bin/windows/openapi3/kotlin-springboot-petstore-server.bat b/bin/windows/openapi3/kotlin-springboot-petstore-server.bat
index c86efaee3c8..0f557f0cb33 100644
--- a/bin/windows/openapi3/kotlin-springboot-petstore-server.bat
+++ b/bin/windows/openapi3/kotlin-springboot-petstore-server.bat
@@ -5,6 +5,6 @@ If Not Exist %executable% (
)
REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M
-set ags=generate -i modules\openapi-generator\src\test\resources\3_0\petstore.yaml -g kotlin-spring -o samples\server\openapi3\petstore\kotlin-springboot --additional-properties=library=spring-boot
+set ags=generate -i modules\openapi-generator\src\test\resources\3_0\petstore.yaml -g kotlin-spring -o samples\openapi3\server\petstore\kotlin-springboot --additional-properties=library=spring-boot
java %JAVA_OPTS% -jar %executable% %ags%
diff --git a/bin/windows/r-petstore.bat b/bin/windows/r-petstore.bat
index 89b1d7327be..b1799427f04 100755
--- a/bin/windows/r-petstore.bat
+++ b/bin/windows/r-petstore.bat
@@ -5,6 +5,6 @@ If Not Exist %executable% (
)
REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties
-set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g r -o samples\client\petstore\R --additional-properties packageName=petstore
+set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g r -o samples\client\petstore\R --additional-properties packageName=petstore,returnExceptionOnFailure=false,exceptionPackage=default
java %JAVA_OPTS% -jar %executable% %ags%
diff --git a/docs/customization.md b/docs/customization.md
index ededd1d7fe3..6b14fedd206 100644
--- a/docs/customization.md
+++ b/docs/customization.md
@@ -248,7 +248,7 @@ CONFIG OPTIONS
retrofit - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1 (Retrofit 1.9.0)
retrofit2 - HTTP client: OkHttp 2.5.0. JSON processing: Gson 2.4 (Retrofit 2.0.0-beta2)
google-api-client - HTTP client: google-api-client 1.23.0. JSON processing: Jackson 2.8.9
- rest-assured - HTTP client: rest-assured : 3.3.0. JSON processing: Gson 2.8.5. Only for Java8
+ rest-assured - HTTP client: rest-assured : 4.0.0. JSON processing: Gson 2.8.5. Only for Java8
```
Your config file for Java can look like
diff --git a/docs/generators.md b/docs/generators.md
index 5f890cab5bc..ecb4edfd40c 100644
--- a/docs/generators.md
+++ b/docs/generators.md
@@ -27,6 +27,7 @@ The following generators are available:
- [erlang-proper](generators/erlang-proper.md)
- [flash](generators/flash.md)
- [go](generators/go.md)
+ - [go-experimental](generators/go-experimental.md)
- [groovy](generators/groovy.md)
- [haskell-http-client](generators/haskell-http-client.md)
- [java](generators/java.md)
@@ -42,6 +43,7 @@ The following generators are available:
- [php](generators/php.md)
- [powershell](generators/powershell.md)
- [python](generators/python.md)
+ - [python-experimental](generators/python-experimental.md)
- [r](generators/r.md)
- [ruby](generators/ruby.md)
- [rust](generators/rust.md)
diff --git a/docs/generators/go-experimental.md b/docs/generators/go-experimental.md
new file mode 100644
index 00000000000..23670cfd7b0
--- /dev/null
+++ b/docs/generators/go-experimental.md
@@ -0,0 +1,16 @@
+
+---
+id: generator-opts-client-go-experimental
+title: Config Options for go-experimental
+sidebar_label: go-experimental
+---
+
+| Option | Description | Values | Default |
+| ------ | ----------- | ------ | ------- |
+|packageName|Go package name (convention: lowercase).| |openapi|
+|packageVersion|Go package version.| |1.0.0|
+|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true|
+|isGoSubmodule|whether the generated Go module is a submodule| |false|
+|withGoCodegenComment|whether to include Go codegen comment to disable Go Lint and collapse by default GitHub in PRs and diffs| |false|
+|withXml|whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)| |false|
+|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
diff --git a/docs/generators/java.md b/docs/generators/java.md
index 809773a8bdf..bb4b92d6ffe 100644
--- a/docs/generators/java.md
+++ b/docs/generators/java.md
@@ -55,4 +55,4 @@ sidebar_label: java
|feignVersion|Version of OpenFeign: '10.x', '9.x' (default)| |false|
|useReflectionEqualsHashCode|Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact.| |false|
|caseInsensitiveResponseHeaders|Make API response's headers case-insensitive. Available on okhttp-gson, jersey2 libraries| |false|
-|library|library template (sub-template) to use|
- **jersey1**
- HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.8.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead.
- **jersey2**
- HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.8.x
- **feign**
- HTTP client: OpenFeign 9.x or 10.x. JSON processing: Jackson 2.8.x. To enable OpenFeign 10.x, set the 'feignVersion' option to '10.x'
- **okhttp-gson**
- [DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.
- **retrofit**
- HTTP client: OkHttp 2.x. JSON processing: Gson 2.x (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.
- **retrofit2**
- HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)
- **resttemplate**
- HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.8.x
- **webclient**
- HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x
- **resteasy**
- HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.8.x
- **vertx**
- HTTP client: VertX client 3.x. JSON processing: Jackson 2.8.x
- **google-api-client**
- HTTP client: Google API client 1.x. JSON processing: Jackson 2.8.x
- **rest-assured**
- HTTP client: rest-assured : 3.x. JSON processing: Gson 2.x. Only for Java8
|okhttp-gson|
+|library|library template (sub-template) to use|- **jersey1**
- HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.8.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead.
- **jersey2**
- HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.8.x
- **feign**
- HTTP client: OpenFeign 9.x or 10.x. JSON processing: Jackson 2.8.x. To enable OpenFeign 10.x, set the 'feignVersion' option to '10.x'
- **okhttp-gson**
- [DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.
- **retrofit**
- HTTP client: OkHttp 2.x. JSON processing: Gson 2.x (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.
- **retrofit2**
- HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)
- **resttemplate**
- HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.8.x
- **webclient**
- HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x
- **resteasy**
- HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.8.x
- **vertx**
- HTTP client: VertX client 3.x. JSON processing: Jackson 2.8.x
- **google-api-client**
- HTTP client: Google API client 1.x. JSON processing: Jackson 2.8.x
- **rest-assured**
- HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x. Only for Java8
|okhttp-gson|
diff --git a/docs/generators/python-experimental.md b/docs/generators/python-experimental.md
new file mode 100644
index 00000000000..c36f84b4a05
--- /dev/null
+++ b/docs/generators/python-experimental.md
@@ -0,0 +1,17 @@
+
+---
+id: generator-opts-client-python-experimental
+title: Config Options for python-experimental
+sidebar_label: python-experimental
+---
+
+| Option | Description | Values | Default |
+| ------ | ----------- | ------ | ------- |
+|packageName|python package name (convention: snake_case).| |openapi_client|
+|projectName|python project name in setup.py (e.g. petstore-api).| |null|
+|packageVersion|python package version.| |1.0.0|
+|packageUrl|python package URL.| |null|
+|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
+|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true|
+|generateSourceCodeOnly|Specifies that only a library source code is to be generated.| |false|
+|library|library template (sub-template) to use: asyncio, tornado, urllib3| |urllib3|
diff --git a/docs/generators/r.md b/docs/generators/r.md
index 3265db5cafd..9d6f83350a1 100644
--- a/docs/generators/r.md
+++ b/docs/generators/r.md
@@ -10,3 +10,5 @@ sidebar_label: r
|packageName|R package name (convention: lowercase).| |openapi|
|packageVersion|R package version.| |1.0.0|
|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true|
+|returnExceptionOnFailure|Throw an exception on non success response codes| |false|
+|exceptionPackage|Specify the exception handling package|- **default**
- Use stop() for raising exceptions.
- **rlang**
- Use rlang package for exceptions.
|default|
diff --git a/docs/generators/spring.md b/docs/generators/spring.md
index eed7875d227..51e46424f06 100644
--- a/docs/generators/spring.md
+++ b/docs/generators/spring.md
@@ -48,6 +48,7 @@ sidebar_label: spring
|interfaceOnly|Whether to generate only API interface stubs without the server files.| |false|
|delegatePattern|Whether to generate the server files using the delegate pattern| |false|
|singleContentTypes|Whether to select only one produces/consumes content-type by operation.| |false|
+|skipDefaultInterface|Whether to generate default implementations for java8 interfaces| |false|
|async|use async Callable controllers| |false|
|reactive|wrap responses in Mono/Flux Reactor types (spring-boot only)| |false|
|responseWrapper|wrap the responses in given type (Future,Callable,CompletableFuture,ListenableFuture,DeferredResult,HystrixCommand,RxObservable,RxSingle or fully qualified type)| |null|
@@ -61,4 +62,5 @@ sidebar_label: spring
|useOptional|Use Optional container for optional parameters| |false|
|hateoas|Use Spring HATEOAS library to allow adding HATEOAS links| |false|
|returnSuccessCode|Generated server returns 2xx code| |false|
+|unhandledException|Declare operation methods to throw a generic exception and allow unhandled exceptions (useful for Spring `@ControllerAdvice` directives).| |false|
|library|library template (sub-template)|- **spring-boot**
- Spring-boot Server application using the SpringFox integration.
- **spring-mvc**
- Spring-MVC Server application using the SpringFox integration.
- **spring-cloud**
- Spring-Cloud-Feign client with Spring-Boot auto-configured settings.
|spring-boot|
diff --git a/docs/online.md b/docs/online.md
index 417b4099f7d..9ae4eb9853a 100644
--- a/docs/online.md
+++ b/docs/online.md
@@ -23,9 +23,7 @@ Example usage:
```bash
# Start container at port 8888 and save the container id
-CID=$(docker run -d -p 8888:8080 \
- -e GENERATOR_HOST=http://localhost:8888 \
- openapitools/openapi-generator-online)
+CID=$(docker run -d -p 8888:8080 openapitools/openapi-generator-online)
# allow for startup
sleep 10
diff --git a/modules/openapi-generator-gradle-plugin/README.adoc b/modules/openapi-generator-gradle-plugin/README.adoc
index a6680177ec0..3ed40ed1ea0 100644
--- a/modules/openapi-generator-gradle-plugin/README.adoc
+++ b/modules/openapi-generator-gradle-plugin/README.adoc
@@ -45,7 +45,7 @@ compileJava.dependsOn tasks.openApiGenerate
[source,group]
----
plugins {
- id "org.openapi.generator" version "4.0.3-SNAPSHOT"
+ id "org.openapi.generator" version "4.0.3"
}
----
@@ -61,7 +61,7 @@ buildscript {
// url "https://plugins.gradle.org/m2/"
}
dependencies {
- classpath "org.openapitools:openapi-generator-gradle-plugin:4.0.3-SNAPSHOT"
+ classpath "org.openapitools:openapi-generator-gradle-plugin:4.0.3"
}
}
@@ -609,7 +609,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
- classpath('org.openapitools:openapi-generator-gradle-plugin:4.0.3-SNAPSHOT') {
+ classpath('org.openapitools:openapi-generator-gradle-plugin:4.0.3') {
exclude group: 'com.google.guava'
}
}
diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md b/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md
index 0dc7527c2a4..178b02089a2 100644
--- a/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md
+++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md
@@ -17,5 +17,5 @@ gradle generateGoWithInvalidSpec
The samples can be tested against other versions of the plugin using the `openApiGeneratorVersion` property. For example:
```bash
-gradle -PopenApiGeneratorVersion=4.0.3-SNAPSHOT openApiValidate
+gradle -PopenApiGeneratorVersion=4.0.3 openApiValidate
```
diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties
index c70502e281f..00abde066a2 100644
--- a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties
+++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties
@@ -1,3 +1,3 @@
# RELEASE_VERSION
-openApiGeneratorVersion=4.0.3-SNAPSHOT
+openApiGeneratorVersion=4.0.3
# /RELEASE_VERSION
diff --git a/modules/openapi-generator-maven-plugin/README.md b/modules/openapi-generator-maven-plugin/README.md
index 681b44f7f4c..20015bddf01 100644
--- a/modules/openapi-generator-maven-plugin/README.md
+++ b/modules/openapi-generator-maven-plugin/README.md
@@ -12,7 +12,7 @@ Add to your `build->plugins` section (default phase is `generate-sources` phase)
org.openapitools
openapi-generator-maven-plugin
- 4.0.3-SNAPSHOT
+ 4.0.3
diff --git a/modules/openapi-generator-maven-plugin/examples/java-client.xml b/modules/openapi-generator-maven-plugin/examples/java-client.xml
index 3d362fe3ad9..e8f0bc88d6b 100644
--- a/modules/openapi-generator-maven-plugin/examples/java-client.xml
+++ b/modules/openapi-generator-maven-plugin/examples/java-client.xml
@@ -13,7 +13,7 @@
org.openapitools
openapi-generator-maven-plugin
- 4.0.3-SNAPSHOT
+ 4.0.3
diff --git a/modules/openapi-generator-maven-plugin/examples/multi-module/java-client/pom.xml b/modules/openapi-generator-maven-plugin/examples/multi-module/java-client/pom.xml
index 186592e69de..d7dcdbd7dfa 100644
--- a/modules/openapi-generator-maven-plugin/examples/multi-module/java-client/pom.xml
+++ b/modules/openapi-generator-maven-plugin/examples/multi-module/java-client/pom.xml
@@ -19,7 +19,7 @@
org.openapitools
openapi-generator-maven-plugin
- 4.0.3-SNAPSHOT
+ 4.0.3
diff --git a/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml b/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml
index b1d3bfb3794..8ea704877f8 100644
--- a/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml
+++ b/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml
@@ -13,7 +13,7 @@
org.openapitools
openapi-generator-maven-plugin
- 4.0.3-SNAPSHOT
+ 4.0.3
diff --git a/modules/openapi-generator-maven-plugin/examples/non-java.xml b/modules/openapi-generator-maven-plugin/examples/non-java.xml
index d733b0ee6e6..ccace5a9933 100644
--- a/modules/openapi-generator-maven-plugin/examples/non-java.xml
+++ b/modules/openapi-generator-maven-plugin/examples/non-java.xml
@@ -13,7 +13,7 @@
org.openapitools
openapi-generator-maven-plugin
- 4.0.3-SNAPSHOT
+ 4.0.3
diff --git a/modules/openapi-generator-online/Dockerfile b/modules/openapi-generator-online/Dockerfile
index 59cc5813555..ae0de1cc2e2 100644
--- a/modules/openapi-generator-online/Dockerfile
+++ b/modules/openapi-generator-online/Dockerfile
@@ -4,9 +4,12 @@ WORKDIR /generator
COPY target/openapi-generator-online.jar /generator/openapi-generator-online.jar
-ENV GENERATOR_HOST=http://localhost
+# GENERATOR_HOST can be used to determine the target location of a download link.
+# The default value asumes binding to host via: docker -p 8080:8080 image_name
+# Generally, this "just works" without GENERATOR_HOST, and this is provided only as
+# a workaround if all else fails.
+ENV GENERATOR_HOST=""
EXPOSE 8080
-CMD ["java", "-jar", "/generator/openapi-generator-online.jar"]
-
+CMD ["java", "-jar", "/generator/openapi-generator-online.jar" ]
diff --git a/modules/openapi-generator-online/README.md b/modules/openapi-generator-online/README.md
index b6dde7e276c..2c77fa3c69c 100644
--- a/modules/openapi-generator-online/README.md
+++ b/modules/openapi-generator-online/README.md
@@ -1,15 +1,57 @@
# OpenAPI generated server
-Spring Boot Server
+A Spring Boot Server application which hosts a client/server generator API.
## Overview
+
This server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.
-By using the [OpenAPI-Spec](https://openapis.org), you can easily generate a server stub.
+By using the [OpenAPI-Spec](https://openapis.org), you can easily generate a server stub or one of 100+ client packages.
+
This is an example of building a OpenAPI-enabled server in Java using the SpringBoot framework.
The underlying library integrating OpenAPI to SpringBoot is [springfox](https://github.com/springfox/springfox)
-Start your server as a simple java application
+## Building
-Change default port value in application.properties
+Refer to [root README](../../README.md) for build directions.
+
+## Running
+
+### Via command line
+
+Running is as simple as:
+
+```
+java -jar ./target/openapi-generator-online.jar
+```
+
+This exposes the API on local port 8080.
+
+Springfox supports configuration of the "host" value in the output OpenAPI document by setting the `Host` HTTP header in the request.
+To set this explicitly, pass the system property `springfox.documentation.swagger.v2.host` with the desired host. For example:
+
+```
+java -Dspringfox.documentation.swagger.v2.host=example.com:8888 -jar ./target/openapi-generator-online.jar
+```
+
+### Via Docker
+
+After building from source, change to this module directory (`cd modules/openapi-generator-online`) and build the docker image:
+
+```
+docker build -t openapitools/openapi-generator-online:latest .
+```
+
+Now, run the docker image:
+
+```
+docker run -d -p 8888:8080 openapitools/openapi-generator-online
+```
+
+The `GENERATOR_HOST` variable is used here to ensure download links generated by the API refer to the proper API location.
+
+## Environment
+
+`GENERATOR_HOST` can be set to force the scheme/host/port used for download link generation. In most cases, this environment variable is not
+necessary to be set and the download link will be generated to match the originating request. The variable is provided simply as a fallback.
\ No newline at end of file
diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/configuration/OpenAPIDocumentationConfig.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/configuration/OpenAPIDocumentationConfig.java
index 5eaa29f051a..39fb8bb2a5f 100644
--- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/configuration/OpenAPIDocumentationConfig.java
+++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/configuration/OpenAPIDocumentationConfig.java
@@ -52,7 +52,6 @@ public class OpenAPIDocumentationConfig {
String version = properties.getProperty("version", "unknown");
-
return new ApiInfoBuilder()
.title("OpenAPI Generator Online")
.description("This is an online openapi generator server. You can find out more at https://github.com/OpenAPITools/openapi-generator.")
@@ -66,14 +65,7 @@ public class OpenAPIDocumentationConfig {
@Bean
public Docket customImplementation(){
- String host;
- try {
- host = new URI(System.getProperty("GENERATOR_HOST", "http://localhost")).getHost();
- } catch (URISyntaxException e) {
- host = "";
- }
return new Docket(DocumentationType.SWAGGER_2)
- .host(host)
.select()
.apis(RequestHandlerSelectors.basePackage("org.openapitools.codegen.online.api"))
.build()
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
index 0f03cacec6e..02ec63ec5b6 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
@@ -306,4 +306,6 @@ public class CodegenConstants {
public static final String SNAPSHOT_VERSION = "snapshotVersion";
public static final String SNAPSHOT_VERSION_DESC = "Uses a SNAPSHOT version.";
+ public static final String EXCEPTION_ON_FAILURE = "returnExceptionOnFailure";
+ public static final String EXCEPTION_ON_FAILURE_DESC = "Throw an exception on non success response codes";
}
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 f50e0aa8999..5373b99e934 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
@@ -1475,7 +1475,7 @@ public class DefaultCodegen implements CodegenConfig {
* @param schema
* @return type
*/
- private static String getPrimitiveType(Schema schema) {
+ private String getPrimitiveType(Schema schema) {
if (schema == null) {
throw new RuntimeException("schema cannot be null in getPrimitiveType");
} else if (ModelUtils.isStringSchema(schema) && "number".equals(schema.getFormat())) {
@@ -1519,6 +1519,13 @@ public class DefaultCodegen implements CodegenConfig {
} else if (ModelUtils.isURISchema(schema)) {
return "URI";
} else if (ModelUtils.isStringSchema(schema)) {
+ if(typeMapping.containsKey(schema.getFormat())) {
+ // If the format matches a typeMapping (supplied with the --typeMappings flag)
+ // then treat the format as a primitive type.
+ // This allows the typeMapping flag to add a new custom type which can then
+ // be used in the format field.
+ return schema.getFormat();
+ }
return "string";
} else if (ModelUtils.isFreeFormObject(schema)) {
return "object";
@@ -1860,8 +1867,10 @@ public class DefaultCodegen implements CodegenConfig {
discriminator.setMapping(schema.getDiscriminator().getMapping());
if (schema.getDiscriminator().getMapping() != null && !schema.getDiscriminator().getMapping().isEmpty()) {
for (Entry e : schema.getDiscriminator().getMapping().entrySet()) {
- String name = toModelName(ModelUtils.getSimpleRef(e.getValue())); // e.g e.getValue => #/components/schemas/Dog
- discriminator.getMappedModels().add(new MappedModel(e.getKey(), name));
+ String nameOrRef = e.getValue();
+ String name = nameOrRef.indexOf('/') >= 0 ? ModelUtils.getSimpleRef(nameOrRef) : nameOrRef;
+ String modelName = toModelName(name);
+ discriminator.getMappedModels().add(new MappedModel(e.getKey(), modelName));
}
} else {
Map allDefinitions = ModelUtils.getSchemas(this.openAPI);
@@ -3668,7 +3677,7 @@ public class DefaultCodegen implements CodegenConfig {
* @param schemas The complete set of model definitions (schemas).
* @return A mapping from model name to type alias
*/
- static Map getAllAliases(Map schemas) {
+ Map getAllAliases(Map schemas) {
if (schemas == null || schemas.isEmpty()) {
return new HashMap<>();
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java
index cc5246dc212..4a3a68d2a86 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java
@@ -446,7 +446,9 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig {
op.path = ("\"" + path + "\"").replaceAll(" \\+\\+ \"\"", "");
} else {
final List paths = Arrays.asList(op.path.substring(1).split("/"));
- String path = paths.stream().map(str -> str.charAt(0) == '{' ? str : "\"" + str + "\"").collect(Collectors.joining(", "));
+ String path = paths.stream()
+ .map(str -> str.startsWith("{") && str.endsWith("}") ? str : "\"" + str + "\"")
+ .collect(Collectors.joining(", "));
for (CodegenParameter param : op.pathParams) {
String str = paramToString("params", param, false, null);
path = path.replace("{" + param.paramName + "}", str);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientExperimentalCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientExperimentalCodegen.java
new file mode 100644
index 00000000000..14148714e64
--- /dev/null
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientExperimentalCodegen.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openapitools.codegen.languages;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GoClientExperimentalCodegen extends GoClientCodegen {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(GoClientExperimentalCodegen.class);
+
+ public GoClientExperimentalCodegen() {
+ super();
+ }
+
+ /**
+ * Configures a friendly name for the generator. This will be used by the generator
+ * to select the library with the -g flag.
+ *
+ * @return the friendly name for the generator
+ */
+ @Override
+ public String getName() {
+ return "go-experimental";
+ }
+
+ /**
+ * Returns human-friendly help for the generator. Provide the consumer with help
+ * tips, parameters here
+ *
+ * @return A string value for the help message
+ */
+ @Override
+ public String getHelp() {
+ return "Generates a Go client library (experimental and may subject to breaking changes without further notice).";
+ }
+
+}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java
index dd8ca1b529f..a46452c65c1 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java
@@ -411,6 +411,11 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
for (CodegenParameter param : pathParams) {
captureTypes.put(param.baseName, param.dataType);
}
+
+ // Properly handle root-only routes (#3256)
+ if (path.contentEquals("/")) {
+ return new ArrayList<>();
+ }
// Cut off the leading slash, if it is present.
if (path.startsWith("/")) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
index 89ad9e0dd91..83938212fb1 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
@@ -138,7 +138,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen
supportedLibraries.put(RESTEASY, "HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.8.x");
supportedLibraries.put(VERTX, "HTTP client: VertX client 3.x. JSON processing: Jackson 2.8.x");
supportedLibraries.put(GOOGLE_API_CLIENT, "HTTP client: Google API client 1.x. JSON processing: Jackson 2.8.x");
- supportedLibraries.put(REST_ASSURED, "HTTP client: rest-assured : 3.x. JSON processing: Gson 2.x. Only for Java8");
+ supportedLibraries.put(REST_ASSURED, "HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x. Only for Java8");
CliOption libraryOption = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use");
libraryOption.setEnum(supportedLibraries);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientExperimentalCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientExperimentalCodegen.java
new file mode 100644
index 00000000000..ba468d47ded
--- /dev/null
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientExperimentalCodegen.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openapitools.codegen.languages;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class PythonClientExperimentalCodegen extends PythonClientCodegen {
+ private static final Logger LOGGER = LoggerFactory.getLogger(PythonClientExperimentalCodegen.class);
+
+ public PythonClientExperimentalCodegen() {
+ super();
+ }
+
+ /**
+ * Configures a friendly name for the generator. This will be used by the
+ * generator to select the library with the -g flag.
+ *
+ * @return the friendly name for the generator
+ */
+ @Override
+ public String getName() {
+ return "python-experimental";
+ }
+}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java
index 0ce2cee9914..c451a5166a0 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java
@@ -42,6 +42,18 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
protected String apiDocPath = "docs/";
protected String modelDocPath = "docs/";
protected String testFolder = "tests/testthat";
+ protected boolean returnExceptionOnFailure = false;
+ protected String exceptionPackage = "default";
+ protected Map exceptionPackages = new LinkedHashMap();
+
+ public static final String EXCEPTION_PACKAGE = "exceptionPackage";
+ public static final String USE_DEFAULT_EXCEPTION = "useDefaultExceptionHandling";
+ public static final String USE_RLANG_EXCEPTION = "useRlangExceptionHandling";
+ public static final String DEFAULT = "default";
+ public static final String RLANG = "rlang";
+
+ protected boolean useDefaultExceptionHandling = false;
+ protected boolean useRlangExceptionHandling = false;
public CodegenType getTag() {
return CodegenType.CLIENT;
@@ -114,7 +126,16 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
.defaultValue("1.0.0"));
cliOptions.add(new CliOption(CodegenConstants.HIDE_GENERATION_TIMESTAMP, CodegenConstants.HIDE_GENERATION_TIMESTAMP_DESC)
.defaultValue(Boolean.TRUE.toString()));
+ cliOptions.add(new CliOption(CodegenConstants.EXCEPTION_ON_FAILURE, CodegenConstants.EXCEPTION_ON_FAILURE_DESC)
+ .defaultValue(Boolean.FALSE.toString()));
+ exceptionPackages.put(DEFAULT, "Use stop() for raising exceptions.");
+ exceptionPackages.put(RLANG, "Use rlang package for exceptions.");
+
+ CliOption exceptionPackage = new CliOption(EXCEPTION_PACKAGE, "Specify the exception handling package");
+ exceptionPackage.setEnum(exceptionPackages);
+ exceptionPackage.setDefault(DEFAULT);
+ cliOptions.add(exceptionPackage);
}
@Override
@@ -133,8 +154,27 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
setPackageVersion("1.0.0");
}
+ if (additionalProperties.containsKey(CodegenConstants.EXCEPTION_ON_FAILURE)) {
+ boolean booleanValue = Boolean.valueOf(additionalProperties.get(CodegenConstants.EXCEPTION_ON_FAILURE).toString());
+ setReturnExceptionOnFailure(booleanValue);
+ } else {
+ setReturnExceptionOnFailure(false);
+ }
+
+ if (additionalProperties.containsKey(EXCEPTION_PACKAGE)) {
+ String exceptionPackage = additionalProperties.get(EXCEPTION_PACKAGE).toString();
+ setExceptionPackageToUse(exceptionPackage);
+ } else {
+ setExceptionPackageToUse(DEFAULT);
+ }
+
additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName);
additionalProperties.put(CodegenConstants.PACKAGE_VERSION, packageVersion);
+ additionalProperties.put(CodegenConstants.EXCEPTION_ON_FAILURE, returnExceptionOnFailure);
+
+ additionalProperties.put(USE_DEFAULT_EXCEPTION, this.useDefaultExceptionHandling);
+ additionalProperties.put(USE_RLANG_EXCEPTION, this.useRlangExceptionHandling);
+
additionalProperties.put("apiDocPath", apiDocPath);
additionalProperties.put("modelDocPath", modelDocPath);
@@ -384,6 +424,19 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
this.packageVersion = packageVersion;
}
+ public void setReturnExceptionOnFailure(boolean returnExceptionOnFailure) {
+ this.returnExceptionOnFailure = returnExceptionOnFailure;
+ }
+
+ public void setExceptionPackageToUse(String exceptionPackage) {
+ if(DEFAULT.equals(exceptionPackage))
+ this.useDefaultExceptionHandling = true;
+ if(RLANG.equals(exceptionPackage)){
+ supportingFiles.add(new SupportingFile("api_exception.mustache", File.separator + "R", "api_exception.R"));
+ this.useRlangExceptionHandling = true;
+ }
+ }
+
@Override
public String escapeQuotationMark(String input) {
// remove " to avoid code injection
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java
index 4e2c694fd8b..4b8373004f7 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java
@@ -52,6 +52,7 @@ public class SpringCodegen extends AbstractJavaCodegen
public static final String DELEGATE_PATTERN = "delegatePattern";
public static final String SINGLE_CONTENT_TYPES = "singleContentTypes";
public static final String VIRTUAL_SERVICE = "virtualService";
+ public static final String SKIP_DEFAULT_INTERFACE = "skipDefaultInterface";
public static final String JAVA_8 = "java8";
public static final String ASYNC = "async";
@@ -66,6 +67,7 @@ public class SpringCodegen extends AbstractJavaCodegen
public static final String API_FIRST = "apiFirst";
public static final String HATEOAS = "hateoas";
public static final String RETURN_SUCCESS_CODE = "returnSuccessCode";
+ public static final String UNHANDLED_EXCEPTION_HANDLING = "unhandledException";
protected String title = "OpenAPI Spring";
protected String configPackage = "org.openapitools.configuration";
@@ -78,6 +80,7 @@ public class SpringCodegen extends AbstractJavaCodegen
protected boolean async = false;
protected boolean reactive = false;
protected String responseWrapper = "";
+ protected boolean skipDefaultInterface = false;
protected boolean useTags = false;
protected boolean useBeanValidation = true;
protected boolean performBeanValidation = false;
@@ -88,6 +91,7 @@ public class SpringCodegen extends AbstractJavaCodegen
protected boolean virtualService = false;
protected boolean hateoas = false;
protected boolean returnSuccessCode = false;
+ protected boolean unhandledException = false;
public SpringCodegen() {
super();
@@ -117,6 +121,7 @@ public class SpringCodegen extends AbstractJavaCodegen
cliOptions.add(CliOption.newBoolean(DELEGATE_PATTERN, "Whether to generate the server files using the delegate pattern", delegatePattern));
cliOptions.add(CliOption.newBoolean(SINGLE_CONTENT_TYPES, "Whether to select only one produces/consumes content-type by operation.", singleContentTypes));
updateJava8CliOptions();
+ cliOptions.add(CliOption.newBoolean(SKIP_DEFAULT_INTERFACE, "Whether to generate default implementations for java8 interfaces", skipDefaultInterface));
cliOptions.add(CliOption.newBoolean(ASYNC, "use async Callable controllers", async));
cliOptions.add(CliOption.newBoolean(REACTIVE, "wrap responses in Mono/Flux Reactor types (spring-boot only)", reactive));
cliOptions.add(new CliOption(RESPONSE_WRAPPER, "wrap the responses in given type (Future,Callable,CompletableFuture,ListenableFuture,DeferredResult,HystrixCommand,RxObservable,RxSingle or fully qualified type)"));
@@ -130,6 +135,7 @@ public class SpringCodegen extends AbstractJavaCodegen
cliOptions.add(CliOption.newBoolean(USE_OPTIONAL,"Use Optional container for optional parameters", useOptional));
cliOptions.add(CliOption.newBoolean(HATEOAS, "Use Spring HATEOAS library to allow adding HATEOAS links", hateoas));
cliOptions.add(CliOption.newBoolean(RETURN_SUCCESS_CODE, "Generated server returns 2xx code", returnSuccessCode));
+ cliOptions.add(CliOption.newBoolean(UNHANDLED_EXCEPTION_HANDLING, "Declare operation methods to throw a generic exception and allow unhandled exceptions (useful for Spring `@ControllerAdvice` directives).", unhandledException));
supportedLibraries.put(SPRING_BOOT, "Spring-boot Server application using the SpringFox integration.");
supportedLibraries.put(SPRING_MVC_LIBRARY, "Spring-MVC Server application using the SpringFox integration.");
@@ -231,6 +237,10 @@ public class SpringCodegen extends AbstractJavaCodegen
this.setSingleContentTypes(Boolean.valueOf(additionalProperties.get(SINGLE_CONTENT_TYPES).toString()));
}
+ if (additionalProperties.containsKey(SKIP_DEFAULT_INTERFACE)) {
+ this.setSkipDefaultInterface(Boolean.valueOf(additionalProperties.get(SKIP_DEFAULT_INTERFACE).toString()));
+ }
+
if (additionalProperties.containsKey(ASYNC)) {
this.setAsync(Boolean.valueOf(additionalProperties.get(ASYNC).toString()));
//fix for issue/1164
@@ -286,6 +296,12 @@ public class SpringCodegen extends AbstractJavaCodegen
this.setReturnSuccessCode(Boolean.valueOf(additionalProperties.get(RETURN_SUCCESS_CODE).toString()));
}
+ if (additionalProperties.containsKey(UNHANDLED_EXCEPTION_HANDLING)) {
+ this.setUnhandledException(Boolean.valueOf(additionalProperties.get(UNHANDLED_EXCEPTION_HANDLING).toString()));
+ } else {
+ additionalProperties.put(UNHANDLED_EXCEPTION_HANDLING, this.isUnhandledException());
+ }
+
typeMapping.put("file", "Resource");
importMapping.put("Resource", "org.springframework.core.io.Resource");
@@ -384,6 +400,7 @@ public class SpringCodegen extends AbstractJavaCodegen
if (this.java8) {
additionalProperties.put("javaVersion", "1.8");
+ additionalProperties.put("jdk8-default-interface", !this.skipDefaultInterface);
if (!SPRING_CLOUD_LIBRARY.equals(library)) {
additionalProperties.put("jdk8", true);
}
@@ -405,6 +422,7 @@ public class SpringCodegen extends AbstractJavaCodegen
// Some well-known Spring or Spring-Cloud response wrappers
if (isNotEmpty(this.responseWrapper)) {
additionalProperties.put("jdk8", false);
+ additionalProperties.put("jdk8-default-interface", false);
switch (this.responseWrapper) {
case "Future":
case "Callable":
@@ -687,6 +705,10 @@ public class SpringCodegen extends AbstractJavaCodegen
return this.configPackage;
}
+ public boolean isUnhandledException() {
+ return unhandledException;
+ }
+
public void setBasePackage(String basePackage) {
this.basePackage = basePackage;
}
@@ -703,6 +725,8 @@ public class SpringCodegen extends AbstractJavaCodegen
this.singleContentTypes = singleContentTypes;
}
+ public void setSkipDefaultInterface(boolean skipDefaultInterface) { this.skipDefaultInterface = skipDefaultInterface; }
+
public void setJava8(boolean java8) { this.java8 = java8; }
public void setVirtualService(boolean virtualService) { this.virtualService = virtualService; }
@@ -737,6 +761,10 @@ public class SpringCodegen extends AbstractJavaCodegen
this.returnSuccessCode = returnSuccessCode;
}
+ public void setUnhandledException(boolean unhandledException) {
+ this.unhandledException = unhandledException;
+ }
+
@Override
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
super.postProcessModelProperty(model, property);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptJqueryClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptJqueryClientCodegen.java
index 0be86b0de78..b0a84d0796d 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptJqueryClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptJqueryClientCodegen.java
@@ -35,7 +35,6 @@ public class TypeScriptJqueryClientCodegen extends AbstractTypeScriptClientCodeg
private static final Logger LOGGER = LoggerFactory.getLogger(TypeScriptJqueryClientCodegen.class);
public static final String NPM_REPOSITORY = "npmRepository";
- public static final String SNAPSHOT = "snapshot";
public static final String JQUERY_ALREADY_IMPORTED = "jqueryAlreadyImported";
protected String npmRepository = null;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
index 15c29299696..ad991f67954 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
@@ -173,23 +173,12 @@ public class ModelUtils {
if (allOperations != null) {
for (Operation operation : allOperations) {
//Params:
- if (operation.getParameters() != null) {
- for (Parameter p : operation.getParameters()) {
- Parameter parameter = getReferencedParameter(openAPI, p);
- if (parameter.getSchema() != null) {
- visitSchema(openAPI, parameter.getSchema(), null, visitedSchemas, visitor);
- }
- }
- }
+ visitParameters(openAPI, operation.getParameters(), visitor, visitedSchemas);
//RequestBody:
RequestBody requestBody = getReferencedRequestBody(openAPI, operation.getRequestBody());
- if (requestBody != null && requestBody.getContent() != null) {
- for (Entry e : requestBody.getContent().entrySet()) {
- if (e.getValue().getSchema() != null) {
- visitSchema(openAPI, e.getValue().getSchema(), e.getKey(), visitedSchemas, visitor);
- }
- }
+ if (requestBody != null) {
+ visitContent(openAPI, requestBody.getContent(), visitor, visitedSchemas);
}
//Responses:
@@ -197,19 +186,14 @@ public class ModelUtils {
for (ApiResponse r : operation.getResponses().values()) {
ApiResponse apiResponse = getReferencedApiResponse(openAPI, r);
if (apiResponse != null) {
- if (apiResponse.getContent() != null) {
- for (Entry e : apiResponse.getContent().entrySet()) {
- if (e.getValue().getSchema() != null) {
- visitSchema(openAPI, e.getValue().getSchema(), e.getKey(), visitedSchemas, visitor);
- }
- }
- }
+ visitContent(openAPI, apiResponse.getContent(), visitor, visitedSchemas);
if (apiResponse.getHeaders() != null) {
for (Entry e : apiResponse.getHeaders().entrySet()) {
Header header = getReferencedHeader(openAPI, e.getValue());
if (header.getSchema() != null) {
visitSchema(openAPI, header.getSchema(), e.getKey(), visitedSchemas, visitor);
}
+ visitContent(openAPI, header.getContent(), visitor, visitedSchemas);
}
}
}
@@ -229,6 +213,31 @@ public class ModelUtils {
}
}
}
+ //Params:
+ visitParameters(openAPI, pathItem.getParameters(), visitor, visitedSchemas);
+ }
+
+ private static void visitParameters(OpenAPI openAPI, List parameters, OpenAPISchemaVisitor visitor,
+ List visitedSchemas) {
+ if (parameters != null) {
+ for (Parameter p : parameters) {
+ Parameter parameter = getReferencedParameter(openAPI, p);
+ if (parameter.getSchema() != null) {
+ visitSchema(openAPI, parameter.getSchema(), null, visitedSchemas, visitor);
+ }
+ visitContent(openAPI, parameter.getContent(), visitor, visitedSchemas);
+ }
+ }
+ }
+
+ private static void visitContent(OpenAPI openAPI, Content content, OpenAPISchemaVisitor visitor, List visitedSchemas) {
+ if (content != null) {
+ for (Entry e : content.entrySet()) {
+ if (e.getValue().getSchema() != null) {
+ visitSchema(openAPI, e.getValue().getSchema(), e.getKey(), visitedSchemas, visitor);
+ }
+ }
+ }
}
private static void visitSchema(OpenAPI openAPI, Schema schema, String mimeType, List visitedSchemas, OpenAPISchemaVisitor visitor) {
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/build.gradle.mustache
index 6ca2e18a7cd..08462012dd6 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/build.gradle.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/build.gradle.mustache
@@ -161,3 +161,7 @@ dependencies {
{{/java8}}
testCompile "junit:junit:$junit_version"
}
+
+javadoc {
+ options.tags = [ "http.response.details:a:Http Response Details" ]
+}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pom.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pom.mustache
index d8b553a434a..a6b6d039f80 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/pom.mustache
@@ -170,17 +170,17 @@
jar
-
-
-
- http.response.details
- a
- Http Response Details:
-
-
-
+
+
+
+ http.response.details
+ a
+ Http Response Details:
+
+
+
org.apache.maven.plugins
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache
index cb0e972ae37..f255d0123c8 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache
@@ -143,3 +143,7 @@ dependencies {
{{/threetenbp}}
testCompile 'junit:junit:4.12'
}
+
+javadoc {
+ options.tags = [ "http.response.details:a:Http Response Details" ]
+}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache
index 80a53397e3a..e1c68a17514 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache
@@ -24,6 +24,7 @@ lazy val root = (project in file(".")).
"org.threeten" % "threetenbp" % "1.3.5" % "compile",
{{/threetenbp}}
"io.gsonfire" % "gson-fire" % "1.8.3" % "compile",
+ "javax.annotation" % "jsr250-api" % "1.0" % "compile",
"junit" % "junit" % "4.12" % "test",
"com.novocode" % "junit-interface" % "0.10" % "test"
)
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pom.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pom.mustache
index 84b97f52c77..7aa9c2c8a84 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pom.mustache
@@ -149,17 +149,17 @@
jar
-
-
-
- http.response.details
- a
- Http Response Details:
-
-
-
+
+
+
+ http.response.details
+ a
+ Http Response Details:
+
+
+
org.apache.maven.plugins
@@ -284,6 +284,11 @@
provided
{{/parcelableModel}}
+
+ javax.annotation
+ jsr250-api
+ ${javax-annotation-version}
+
junit
@@ -297,7 +302,7 @@
${java.version}
${java.version}
1.8.3
- 1.5.21
+ 1.5.22
3.14.2
2.8.5
3.9
@@ -308,6 +313,7 @@
1.3.8
{{/threetenbp}}
1.0.0
+ 1.0
4.12
UTF-8
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.gradle.mustache
index 03ea659d066..285f42e475f 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.gradle.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.gradle.mustache
@@ -96,7 +96,7 @@ if(hasProperty('target') && target == 'android') {
ext {
swagger_annotations_version = "1.5.21"
- rest_assured_version = "3.3.0"
+ rest_assured_version = "4.0.0"
junit_version = "4.12"
gson_version = "2.8.5"
gson_fire_version = "1.8.3"
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.sbt.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.sbt.mustache
index 454ff06c346..d8d817271cb 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.sbt.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.sbt.mustache
@@ -10,7 +10,7 @@ lazy val root = (project in file(".")).
resolvers += Resolver.mavenLocal,
libraryDependencies ++= Seq(
"io.swagger" % "swagger-annotations" % "1.5.21",
- "io.rest-assured" % "scala-support" % "3.3.0",
+ "io.rest-assured" % "scala-support" % "4.0.0",
"com.google.code.gson" % "gson" % "2.8.5",
"io.gsonfire" % "gson-fire" % "1.8.3" % "compile",
{{#joda}}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/pom.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/pom.mustache
index d480939b403..5aa3ab7c617 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/pom.mustache
@@ -251,7 +251,7 @@
UTF-8
1.5.21
- 3.3.0
+ 4.0.0
2.8.5
1.8.3
1.0.0
diff --git a/modules/openapi-generator/src/main/resources/Java/travis.mustache b/modules/openapi-generator/src/main/resources/Java/travis.mustache
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/modules/openapi-generator/src/main/resources/Java/travis.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/travis.mustache
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/api.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/api.mustache
index e42ba2aca1b..067c32dbbdf 100644
--- a/modules/openapi-generator/src/main/resources/JavaSpring/api.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaSpring/api.mustache
@@ -66,7 +66,7 @@ import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#jdk8}}CompletableFuture
@VirtualService
{{/virtualService}}
public interface {{classname}} {
-{{#jdk8}}
+{{#jdk8-default-interface}}
{{^isDelegate}}
{{^reactive}}
@@ -81,7 +81,7 @@ public interface {{classname}} {
return new {{classname}}Delegate() {};
}
{{/isDelegate}}
-{{/jdk8}}
+{{/jdk8-default-interface}}
{{#operation}}
{{#virtualService}}
@@ -109,13 +109,13 @@ public interface {{classname}} {
produces = { {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }, {{/hasProduces}}{{#hasConsumes}}
consumes = { {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} },{{/hasConsumes}}{{/singleContentTypes}}
method = RequestMethod.{{httpMethod}})
- {{#jdk8}}default {{/jdk8}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{#delegate-method}}_{{/delegate-method}}{{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{^hasMore}}{{#reactive}}, {{/reactive}}{{/hasMore}}{{/allParams}}{{#reactive}}ServerWebExchange exchange{{/reactive}}){{^jdk8}};{{/jdk8}}{{#jdk8}} {
+ {{#jdk8-default-interface}}default {{/jdk8-default-interface}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{#delegate-method}}_{{/delegate-method}}{{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{^hasMore}}{{#reactive}}, {{/reactive}}{{/hasMore}}{{/allParams}}{{#reactive}}ServerWebExchange exchange{{/reactive}}){{^jdk8-default-interface}};{{/jdk8-default-interface}}{{#jdk8-default-interface}}{{#unhandledException}} throws Exception{{/unhandledException}} {
{{#delegate-method}}
return {{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}}, {{/hasParams}}exchange{{/reactive}});
}
// Override this method
- {{#jdk8}}default {{/jdk8}} {{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{^isFile}}{{^isBodyParam}}{{>optionalDataType}}{{/isBodyParam}}{{#isBodyParam}}{{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isListContainer}}Mono{{/isListContainer}}{{#isListContainer}}Flux{{/isListContainer}}<{{{baseType}}}>{{/reactive}}{{/isBodyParam}}{{/isFile}}{{#isFile}}MultipartFile{{/isFile}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}}, {{/hasParams}}ServerWebExchange exchange{{/reactive}}) {
+ {{#jdk8-default-interface}}default {{/jdk8-default-interface}} {{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{^isFile}}{{^isBodyParam}}{{>optionalDataType}}{{/isBodyParam}}{{#isBodyParam}}{{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isListContainer}}Mono{{/isListContainer}}{{#isListContainer}}Flux{{/isListContainer}}<{{{baseType}}}>{{/reactive}}{{/isBodyParam}}{{/isFile}}{{#isFile}}MultipartFile{{/isFile}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}}, {{/hasParams}}ServerWebExchange exchange{{/reactive}}) {
{{/delegate-method}}
{{^isDelegate}}
{{>methodBody}}
@@ -123,8 +123,8 @@ public interface {{classname}} {
{{#isDelegate}}
return getDelegate().{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}}, {{/hasParams}}exchange{{/reactive}});
{{/isDelegate}}
- }{{/jdk8}}
+ }{{/jdk8-default-interface}}
{{/operation}}
}
-{{/operations}}
\ No newline at end of file
+{{/operations}}
diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/apiDelegate.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/apiDelegate.mustache
index 76bc71fbb33..15a51ceb99e 100644
--- a/modules/openapi-generator/src/main/resources/JavaSpring/apiDelegate.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaSpring/apiDelegate.mustache
@@ -39,22 +39,22 @@ import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#jdk8}}CompletableFuture
*/
{{>generatedAnnotation}}
public interface {{classname}}Delegate {
-{{#jdk8}}
+{{#jdk8-default-interface}}
default Optional getRequest() {
return Optional.empty();
}
-{{/jdk8}}
+{{/jdk8-default-interface}}
{{#operation}}
/**
* @see {{classname}}#{{operationId}}
*/
- {{#jdk8}}default {{/jdk8}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{^isFile}}{{^isBodyParam}}{{>optionalDataType}}{{/isBodyParam}}{{#isBodyParam}}{{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isListContainer}}Mono{{/isListContainer}}{{#isListContainer}}Flux{{/isListContainer}}<{{{baseType}}}>{{/reactive}}{{/isBodyParam}}{{/isFile}}{{#isFile}}MultipartFile{{/isFile}} {{paramName}}{{#hasMore}},
+ {{#jdk8-default-interface}}default {{/jdk8-default-interface}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{^isFile}}{{^isBodyParam}}{{>optionalDataType}}{{/isBodyParam}}{{#isBodyParam}}{{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isListContainer}}Mono{{/isListContainer}}{{#isListContainer}}Flux{{/isListContainer}}<{{{baseType}}}>{{/reactive}}{{/isBodyParam}}{{/isFile}}{{#isFile}}MultipartFile{{/isFile}} {{paramName}}{{#hasMore}},
{{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}},
- {{/hasParams}}ServerWebExchange exchange{{/reactive}}){{^jdk8}};{{/jdk8}}{{#jdk8}} {
+ {{/hasParams}}ServerWebExchange exchange{{/reactive}}){{^jdk8-default-interface}};{{/jdk8-default-interface}}{{#jdk8-default-interface}} {
{{>methodBody}}
- }{{/jdk8}}
+ }{{/jdk8-default-interface}}
{{/operation}}
}
diff --git a/modules/openapi-generator/src/main/resources/Javascript-Flowtyped/package.mustache b/modules/openapi-generator/src/main/resources/Javascript-Flowtyped/package.mustache
index b8f07e12eec..4f2598fa343 100644
--- a/modules/openapi-generator/src/main/resources/Javascript-Flowtyped/package.mustache
+++ b/modules/openapi-generator/src/main/resources/Javascript-Flowtyped/package.mustache
@@ -32,7 +32,7 @@
"@babel/plugin-transform-flow-strip-types": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"babel-preset-react-app": "^7.0.0",
- "flow-copy-source": "^1.3.0",
+ "flow-copy-source": "^2.0.0",
"rimraf": "^2.6.2"
}
}
diff --git a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig
index 3f21ea57ec0..ac693c68c87 100644
--- a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig
+++ b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig
@@ -28,6 +28,7 @@ org.openapitools.codegen.languages.ErlangProperCodegen
org.openapitools.codegen.languages.ErlangServerCodegen
org.openapitools.codegen.languages.FlashClientCodegen
org.openapitools.codegen.languages.GoClientCodegen
+org.openapitools.codegen.languages.GoClientExperimentalCodegen
org.openapitools.codegen.languages.GoServerCodegen
org.openapitools.codegen.languages.GoGinServerCodegen
org.openapitools.codegen.languages.GraphQLSchemaCodegen
@@ -73,6 +74,7 @@ org.openapitools.codegen.languages.PhpSymfonyServerCodegen
org.openapitools.codegen.languages.PhpZendExpressivePathHandlerServerCodegen
org.openapitools.codegen.languages.PowerShellClientCodegen
org.openapitools.codegen.languages.PythonClientCodegen
+org.openapitools.codegen.languages.PythonClientExperimentalCodegen
org.openapitools.codegen.languages.PythonFlaskConnexionServerCodegen
org.openapitools.codegen.languages.PythonAiohttpConnexionServerCodegen
org.openapitools.codegen.languages.PythonBluePlanetServerCodegen
diff --git a/modules/openapi-generator/src/main/resources/dart-jaguar/apilib.mustache b/modules/openapi-generator/src/main/resources/dart-jaguar/apilib.mustache
index dd78422666e..cb41c5243ad 100644
--- a/modules/openapi-generator/src/main/resources/dart-jaguar/apilib.mustache
+++ b/modules/openapi-generator/src/main/resources/dart-jaguar/apilib.mustache
@@ -21,7 +21,7 @@ import 'package:jaguar_mimetype/jaguar_mimetype.dart';
final _jsonJaguarRepo = JsonRepo()
{{#models}}{{#model}}..add({{classname}}Serializer())
{{/model}}{{/models}};
-final Map _converters = {
+final Map converters = {
MimeTypes.json: _jsonJaguarRepo,
};
{{/jsonFormat}}
@@ -33,7 +33,7 @@ final _protoJaguarRepo = ProtoCodecRepo()
final _jsonJaguarRepo = ProtoCodecRepo(isJsonFormatEnabled: true)
{{#models}}{{#model}}..add((data) => {{classname}}.fromBuffer(List.from(data)))
{{/model}}{{/models}};
-final Map _converters = {
+final Map converters = {
MimeTypes.json: _jsonJaguarRepo,
MimeTypes.binary: _protoJaguarRepo,
};
@@ -91,7 +91,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return {{classname}}(base: base, converters: converters, timeout: timeout);
}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/.travis.yml b/modules/openapi-generator/src/main/resources/go-experimental/.travis.yml
new file mode 100644
index 00000000000..f5cb2ce9a5a
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/.travis.yml
@@ -0,0 +1,8 @@
+language: go
+
+install:
+ - go get -d -v .
+
+script:
+ - go build -v ./
+
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/README.mustache b/modules/openapi-generator/src/main/resources/go-experimental/README.mustache
new file mode 100644
index 00000000000..5c9639022a1
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/README.mustache
@@ -0,0 +1,119 @@
+# Go API client for {{packageName}}
+
+{{#appDescription}}
+{{{appDescription}}}
+{{/appDescription}}
+
+## Overview
+This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
+
+- API version: {{appVersion}}
+- Package version: {{packageVersion}}
+{{^hideGenerationTimestamp}}
+- Build date: {{generatedDate}}
+{{/hideGenerationTimestamp}}
+- Build package: {{generatorClass}}
+{{#infoUrl}}
+For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
+{{/infoUrl}}
+
+## Installation
+
+Install the following dependencies:
+
+```shell
+go get github.com/stretchr/testify/assert
+go get golang.org/x/oauth2
+go get golang.org/x/net/context
+go get github.com/antihax/optional
+```
+
+Put the package under your project folder and add the following in import:
+
+```golang
+import "./{{packageName}}"
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *{{basePath}}*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}}
+{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}}
+
+## Documentation For Models
+
+{{#models}}{{#model}} - [{{{classname}}}]({{modelDocPath}}{{{classname}}}.md)
+{{/model}}{{/models}}
+
+## Documentation For Authorization
+
+{{^authMethods}} Endpoints do not require authorization.
+{{/authMethods}}{{#authMethods}}{{#last}} Authentication schemes defined for the API:{{/last}}{{/authMethods}}
+{{#authMethods}}
+
+## {{{name}}}
+
+{{#isApiKey}}- **Type**: API key
+
+Example
+
+```golang
+auth := context.WithValue(context.Background(), sw.ContextAPIKey, sw.APIKey{
+ Key: "APIKEY",
+ Prefix: "Bearer", // Omit if not necessary.
+})
+r, err := client.Service.Operation(auth, args)
+```
+
+{{/isApiKey}}
+{{#isBasic}}- **Type**: HTTP basic authentication
+
+Example
+
+```golang
+auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
+ UserName: "username",
+ Password: "password",
+})
+r, err := client.Service.Operation(auth, args)
+```
+
+{{/isBasic}}
+{{#isOAuth}}
+
+- **Type**: OAuth
+- **Flow**: {{{flow}}}
+- **Authorization URL**: {{{authorizationUrl}}}
+- **Scopes**: {{^scopes}}N/A{{/scopes}}
+{{#scopes}} - **{{{scope}}}**: {{{description}}}
+{{/scopes}}
+
+Example
+
+```golang
+auth := context.WithValue(context.Background(), sw.ContextAccessToken, "ACCESSTOKENSTRING")
+r, err := client.Service.Operation(auth, args)
+```
+
+Or via OAuth2 module to automatically refresh tokens and perform user authentication.
+
+```golang
+import "golang.org/x/oauth2"
+
+/* Perform OAuth2 round trip request and obtain a token */
+
+tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
+auth := context.WithValue(oauth2.NoContext, sw.ContextOAuth2, tokenSource)
+r, err := client.Service.Operation(auth, args)
+```
+
+{{/isOAuth}}
+{{/authMethods}}
+
+## Author
+
+{{#apiInfo}}{{#apis}}{{^hasMore}}{{infoEmail}}
+{{/hasMore}}{{/apis}}{{/apiInfo}}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/api.mustache b/modules/openapi-generator/src/main/resources/go-experimental/api.mustache
new file mode 100644
index 00000000000..2b04681ac91
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/api.mustache
@@ -0,0 +1,322 @@
+{{>partial_header}}
+package {{packageName}}
+
+{{#operations}}
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+{{#imports}} "{{import}}"
+{{/imports}}
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type {{classname}}Service service
+{{#operation}}
+
+/*
+{{{classname}}}Service{{#summary}} {{{.}}}{{/summary}}
+{{#notes}}
+{{notes}}
+{{/notes}}
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+{{#allParams}}
+{{#required}}
+ * @param {{paramName}}{{#description}} {{{.}}}{{/description}}
+{{/required}}
+{{/allParams}}
+{{#hasOptionalParams}}
+ * @param optional nil or *{{{nickname}}}Opts - Optional Parameters:
+{{#allParams}}
+{{^required}}
+ * @param "{{vendorExtensions.x-exportParamName}}" ({{#isPrimitiveType}}{{^isBinary}}optional.{{vendorExtensions.x-optionalDataType}}{{/isBinary}}{{#isBinary}}optional.Interface of {{dataType}}{{/isBinary}}{{/isPrimitiveType}}{{^isPrimitiveType}}optional.Interface of {{dataType}}{{/isPrimitiveType}}) - {{#description}} {{{.}}}{{/description}}
+{{/required}}
+{{/allParams}}
+{{/hasOptionalParams}}
+{{#returnType}}
+@return {{{returnType}}}
+{{/returnType}}
+*/
+{{#hasOptionalParams}}
+
+type {{{nickname}}}Opts struct {
+{{#allParams}}
+{{^required}}
+{{#isPrimitiveType}}
+{{^isBinary}}
+ {{vendorExtensions.x-exportParamName}} optional.{{vendorExtensions.x-optionalDataType}}
+{{/isBinary}}
+{{#isBinary}}
+ {{vendorExtensions.x-exportParamName}} optional.Interface
+{{/isBinary}}
+{{/isPrimitiveType}}
+{{^isPrimitiveType}}
+ {{vendorExtensions.x-exportParamName}} optional.Interface
+{{/isPrimitiveType}}
+{{/required}}
+{{/allParams}}
+}
+
+{{/hasOptionalParams}}
+func (a *{{{classname}}}Service) {{{nickname}}}(ctx context.Context{{#hasParams}}, {{/hasParams}}{{#allParams}}{{#required}}{{paramName}} {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/required}}{{/allParams}}{{#hasOptionalParams}}localVarOptionals *{{{nickname}}}Opts{{/hasOptionalParams}}) ({{#returnType}}{{{returnType}}}, {{/returnType}}*http.Response, error) {
+ var (
+ localVarHttpMethod = http.Method{{httpMethod}}
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ {{#returnType}}
+ localVarReturnValue {{{returnType}}}
+ {{/returnType}}
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "{{{path}}}"{{#pathParams}}
+ localVarPath = strings.Replace(localVarPath, "{"+"{{baseName}}"+"}", fmt.Sprintf("%v", {{paramName}}), -1){{/pathParams}}
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ {{#allParams}}
+ {{#required}}
+ {{#minItems}}
+ if len({{paramName}}) < {{minItems}} {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must have at least {{minItems}} elements")
+ }
+ {{/minItems}}
+ {{#maxItems}}
+ if len({{paramName}}) > {{maxItems}} {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must have less than {{maxItems}} elements")
+ }
+ {{/maxItems}}
+ {{#minLength}}
+ if strlen({{paramName}}) < {{minLength}} {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must have at least {{minLength}} elements")
+ }
+ {{/minLength}}
+ {{#maxLength}}
+ if strlen({{paramName}}) > {{maxLength}} {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must have less than {{maxLength}} elements")
+ }
+ {{/maxLength}}
+ {{#minimum}}
+ {{#isString}}
+ {{paramName}}Txt, err := atoi({{paramName}})
+ if {{paramName}}Txt < {{minimum}} {
+ {{/isString}}
+ {{^isString}}
+ if {{paramName}} < {{minimum}} {
+ {{/isString}}
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must be greater than {{minimum}}")
+ }
+ {{/minimum}}
+ {{#maximum}}
+ {{#isString}}
+ {{paramName}}Txt, err := atoi({{paramName}})
+ if {{paramName}}Txt > {{maximum}} {
+ {{/isString}}
+ {{^isString}}
+ if {{paramName}} > {{maximum}} {
+ {{/isString}}
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must be less than {{maximum}}")
+ }
+ {{/maximum}}
+ {{/required}}
+ {{/allParams}}
+
+ {{#hasQueryParams}}
+ {{#queryParams}}
+ {{#required}}
+ localVarQueryParams.Add("{{baseName}}", parameterToString({{paramName}}, "{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}"))
+ {{/required}}
+ {{^required}}
+ if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-exportParamName}}.IsSet() {
+ localVarQueryParams.Add("{{baseName}}", parameterToString(localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value(), "{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}"))
+ }
+ {{/required}}
+ {{/queryParams}}
+ {{/hasQueryParams}}
+ // to determine the Content-Type header
+{{=<% %>=}}
+ localVarHttpContentTypes := []string{<%#consumes%>"<%&mediaType%>"<%^-last%>, <%/-last%><%/consumes%>}
+<%={{ }}=%>
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+{{=<% %>=}}
+ localVarHttpHeaderAccepts := []string{<%#produces%>"<%&mediaType%>"<%^-last%>, <%/-last%><%/produces%>}
+<%={{ }}=%>
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+{{#hasHeaderParams}}
+{{#headerParams}}
+ {{#required}}
+ localVarHeaderParams["{{baseName}}"] = parameterToString({{paramName}}, "{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}")
+ {{/required}}
+ {{^required}}
+ if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-exportParamName}}.IsSet() {
+ localVarHeaderParams["{{baseName}}"] = parameterToString(localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value(), "{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}")
+ }
+ {{/required}}
+{{/headerParams}}
+{{/hasHeaderParams}}
+{{#hasFormParams}}
+{{#formParams}}
+{{#isFile}}
+ localVarFormFileName = "{{baseName}}"
+{{#required}}
+ localVarFile := {{paramName}}
+{{/required}}
+{{^required}}
+ var localVarFile {{dataType}}
+ if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-exportParamName}}.IsSet() {
+ localVarFileOk := false
+ localVarFile, localVarFileOk = localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value().({{dataType}})
+ if !localVarFileOk {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} should be {{dataType}}")
+ }
+ }
+{{/required}}
+ if localVarFile != nil {
+ fbs, _ := ioutil.ReadAll(localVarFile)
+ localVarFileBytes = fbs
+ localVarFileName = localVarFile.Name()
+ localVarFile.Close()
+ }
+{{/isFile}}
+{{^isFile}}
+{{#required}}
+ localVarFormParams.Add("{{baseName}}", parameterToString({{paramName}}, "{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}"))
+{{/required}}
+{{^required}}
+{{#isModel}}
+ if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-exportParamName}}.IsSet() {
+ paramJson, err := parameterToJson(localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value())
+ if err != nil {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, err
+ }
+ localVarFormParams.Add("{{baseName}}", paramJson)
+ }
+{{/isModel}}
+{{^isModel}}
+ if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-exportParamName}}.IsSet() {
+ localVarFormParams.Add("{{baseName}}", parameterToString(localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value(), "{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}"))
+ }
+{{/isModel}}
+{{/required}}
+{{/isFile}}
+{{/formParams}}
+{{/hasFormParams}}
+{{#hasBodyParam}}
+{{#bodyParams}}
+ // body params
+{{#required}}
+ localVarPostBody = &{{paramName}}
+{{/required}}
+{{^required}}
+ if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-exportParamName}}.IsSet() {
+ {{#isPrimitiveType}}
+ localVarPostBody = localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value()
+ {{/isPrimitiveType}}
+ {{^isPrimitiveType}}
+ localVarOptional{{vendorExtensions.x-exportParamName}}, localVarOptional{{vendorExtensions.x-exportParamName}}ok := localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value().({{{dataType}}})
+ if !localVarOptional{{vendorExtensions.x-exportParamName}}ok {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} should be {{dataType}}")
+ }
+ localVarPostBody = &localVarOptional{{vendorExtensions.x-exportParamName}}
+ {{/isPrimitiveType}}
+ }
+
+{{/required}}
+{{/bodyParams}}
+{{/hasBodyParam}}
+{{#authMethods}}
+{{#isApiKey}}
+{{^isKeyInCookie}}
+ if ctx != nil {
+ // API Key Authentication
+ if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
+ var key string
+ if auth.Prefix != "" {
+ key = auth.Prefix + " " + auth.Key
+ } else {
+ key = auth.Key
+ }
+ {{#isKeyInHeader}}
+ localVarHeaderParams["{{keyParamName}}"] = key
+ {{/isKeyInHeader}}
+ {{#isKeyInQuery}}
+ localVarQueryParams.Add("{{keyParamName}}", key)
+ {{/isKeyInQuery}}
+ }
+ }
+{{/isKeyInCookie}}
+{{/isApiKey}}
+{{/authMethods}}
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ {{#responses}}
+ {{#dataType}}
+ if localVarHttpResponse.StatusCode == {{{code}}} {
+ var v {{{dataType}}}
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHttpResponse, newErr
+ }
+ {{/dataType}}
+ {{/responses}}
+ return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHttpResponse, newErr
+ }
+
+ {{#returnType}}
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHttpResponse, newErr
+ }
+
+ {{/returnType}}
+ return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHttpResponse, nil
+}
+{{/operation}}
+{{/operations}}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/api_doc.mustache b/modules/openapi-generator/src/main/resources/go-experimental/api_doc.mustache
new file mode 100644
index 00000000000..2ac67bb2221
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/api_doc.mustache
@@ -0,0 +1,58 @@
+# {{invokerPackage}}\{{classname}}{{#description}}
+
+{{description}}{{/description}}
+
+All URIs are relative to *{{basePath}}*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+{{#operations}}{{#operation}}[**{{operationId}}**]({{classname}}.md#{{operationId}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}}
+{{/operation}}{{/operations}}
+
+{{#operations}}
+{{#operation}}
+
+## {{{operationId}}}
+
+> {{#returnType}}{{{returnType}}} {{/returnType}}{{{operationId}}}(ctx, {{#allParams}}{{#required}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/required}}{{/allParams}}{{#hasOptionalParams}}optional{{/hasOptionalParams}})
+{{{summary}}}{{#notes}}
+
+{{{notes}}}{{/notes}}
+
+### Required Parameters
+
+{{^allParams}}This endpoint does not need any parameter.{{/allParams}}{{#allParams}}{{#-last}}
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.{{/-last}}{{/allParams}}{{#allParams}}{{#required}}
+**{{paramName}}** | {{#isFile}}**{{dataType}}**{{/isFile}}{{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{^isFile}}[**{{dataType}}**]({{baseType}}.md){{/isFile}}{{/isPrimitiveType}}| {{description}} | {{#defaultValue}}[default to {{defaultValue}}]{{/defaultValue}}{{/required}}{{/allParams}}{{#hasOptionalParams}}
+ **optional** | ***{{{nickname}}}Opts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a {{{nickname}}}Opts struct
+{{#allParams}}{{#-last}}
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------{{/-last}}{{/allParams}}{{#allParams}}
+{{^required}} **{{paramName}}** | {{#isFile}}**optional.Interface of {{dataType}}**{{/isFile}}{{#isPrimitiveType}}**optional.{{vendorExtensions.x-optionalDataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{^isFile}}[**optional.Interface of {{dataType}}**]({{baseType}}.md){{/isFile}}{{/isPrimitiveType}}| {{description}} | {{#defaultValue}}[default to {{defaultValue}}]{{/defaultValue}}{{/required}}{{/allParams}}{{/hasOptionalParams}}
+
+### Return type
+
+{{#returnType}}{{#returnTypeIsPrimitive}}**{{{returnType}}}**{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}[**{{{returnType}}}**]({{returnBaseType}}.md){{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}} (empty response body){{/returnType}}
+
+### Authorization
+
+{{^authMethods}}No authorization required{{/authMethods}}{{#authMethods}}[{{{name}}}](../README.md#{{{name}}}){{^-last}}, {{/-last}}{{/authMethods}}
+
+### HTTP request headers
+
+- **Content-Type**: {{#consumes}}{{{mediaType}}}{{#hasMore}}, {{/hasMore}}{{/consumes}}{{^consumes}}Not defined{{/consumes}}
+- **Accept**: {{#produces}}{{{mediaType}}}{{#hasMore}}, {{/hasMore}}{{/produces}}{{^produces}}Not defined{{/produces}}
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+{{/operation}}
+{{/operations}}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/client.mustache b/modules/openapi-generator/src/main/resources/go-experimental/client.mustache
new file mode 100644
index 00000000000..1c4241ff043
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/client.mustache
@@ -0,0 +1,503 @@
+{{>partial_header}}
+package {{packageName}}
+
+import (
+ "bytes"
+ "context"
+ "encoding/json"
+ "encoding/xml"
+ "errors"
+ "fmt"
+ "io"
+ "mime/multipart"
+ "net/http"
+ "net/url"
+ "os"
+ "path/filepath"
+ "reflect"
+ "regexp"
+ "strconv"
+ "strings"
+ "time"
+ "unicode/utf8"
+
+ "golang.org/x/oauth2"
+)
+
+var (
+ jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?json)`)
+ xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`)
+)
+
+// APIClient manages communication with the {{appName}} API v{{version}}
+// In most cases there should be only one, shared, APIClient.
+type APIClient struct {
+ cfg *Configuration
+ common service // Reuse a single struct instead of allocating one for each service on the heap.
+
+ // API Services
+{{#apiInfo}}
+{{#apis}}
+{{#operations}}
+
+ {{classname}} *{{classname}}Service
+{{/operations}}
+{{/apis}}
+{{/apiInfo}}
+}
+
+type service struct {
+ client *APIClient
+}
+
+// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
+// optionally a custom http.Client to allow for advanced features such as caching.
+func NewAPIClient(cfg *Configuration) *APIClient {
+ if cfg.HTTPClient == nil {
+ cfg.HTTPClient = http.DefaultClient
+ }
+
+ c := &APIClient{}
+ c.cfg = cfg
+ c.common.client = c
+
+{{#apiInfo}}
+ // API Services
+{{#apis}}
+{{#operations}}
+ c.{{classname}} = (*{{classname}}Service)(&c.common)
+{{/operations}}
+{{/apis}}
+{{/apiInfo}}
+
+ return c
+}
+
+func atoi(in string) (int, error) {
+ return strconv.Atoi(in)
+}
+
+// selectHeaderContentType select a content type from the available list.
+func selectHeaderContentType(contentTypes []string) string {
+ if len(contentTypes) == 0 {
+ return ""
+ }
+ if contains(contentTypes, "application/json") {
+ return "application/json"
+ }
+ return contentTypes[0] // use the first content type specified in 'consumes'
+}
+
+// selectHeaderAccept join all accept types and return
+func selectHeaderAccept(accepts []string) string {
+ if len(accepts) == 0 {
+ return ""
+ }
+
+ if contains(accepts, "application/json") {
+ return "application/json"
+ }
+
+ return strings.Join(accepts, ",")
+}
+
+// contains is a case insenstive match, finding needle in a haystack
+func contains(haystack []string, needle string) bool {
+ for _, a := range haystack {
+ if strings.ToLower(a) == strings.ToLower(needle) {
+ return true
+ }
+ }
+ return false
+}
+
+// Verify optional parameters are of the correct type.
+func typeCheckParameter(obj interface{}, expected string, name string) error {
+ // Make sure there is an object.
+ if obj == nil {
+ return nil
+ }
+
+ // Check the type is as expected.
+ if reflect.TypeOf(obj).String() != expected {
+ return fmt.Errorf("Expected %s to be of type %s but received %s.", name, expected, reflect.TypeOf(obj).String())
+ }
+ return nil
+}
+
+// parameterToString convert interface{} parameters to string, using a delimiter if format is provided.
+func parameterToString(obj interface{}, collectionFormat string) string {
+ var delimiter string
+
+ switch collectionFormat {
+ case "pipes":
+ delimiter = "|"
+ case "ssv":
+ delimiter = " "
+ case "tsv":
+ delimiter = "\t"
+ case "csv":
+ delimiter = ","
+ }
+
+ if reflect.TypeOf(obj).Kind() == reflect.Slice {
+ return strings.Trim(strings.Replace(fmt.Sprint(obj), " ", delimiter, -1), "[]")
+ } else if t, ok := obj.(time.Time); ok {
+ return t.Format(time.RFC3339)
+ }
+
+ return fmt.Sprintf("%v", obj)
+}
+
+// helper for converting interface{} parameters to json strings
+func parameterToJson(obj interface{}) (string, error) {
+ jsonBuf, err := json.Marshal(obj)
+ if err != nil {
+ return "", err
+ }
+ return string(jsonBuf), err
+}
+
+
+// callAPI do the request.
+func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
+ return c.cfg.HTTPClient.Do(request)
+}
+
+// Change base path to allow switching to mocks
+func (c *APIClient) ChangeBasePath(path string) {
+ c.cfg.BasePath = path
+}
+
+// prepareRequest build the request
+func (c *APIClient) prepareRequest(
+ ctx context.Context,
+ path string, method string,
+ postBody interface{},
+ headerParams map[string]string,
+ queryParams url.Values,
+ formParams url.Values,
+ formFileName string,
+ fileName string,
+ fileBytes []byte) (localVarRequest *http.Request, err error) {
+
+ var body *bytes.Buffer
+
+ // Detect postBody type and post.
+ if postBody != nil {
+ contentType := headerParams["Content-Type"]
+ if contentType == "" {
+ contentType = detectContentType(postBody)
+ headerParams["Content-Type"] = contentType
+ }
+
+ body, err = setBody(postBody, contentType)
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ // add form parameters and file if available.
+ if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(fileBytes) > 0 && fileName != "") {
+ if body != nil {
+ return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
+ }
+ body = &bytes.Buffer{}
+ w := multipart.NewWriter(body)
+
+ for k, v := range formParams {
+ for _, iv := range v {
+ if strings.HasPrefix(k, "@") { // file
+ err = addFile(w, k[1:], iv)
+ if err != nil {
+ return nil, err
+ }
+ } else { // form value
+ w.WriteField(k, iv)
+ }
+ }
+ }
+ if len(fileBytes) > 0 && fileName != "" {
+ w.Boundary()
+ //_, fileNm := filepath.Split(fileName)
+ part, err := w.CreateFormFile(formFileName, filepath.Base(fileName))
+ if err != nil {
+ return nil, err
+ }
+ _, err = part.Write(fileBytes)
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ // Set the Boundary in the Content-Type
+ headerParams["Content-Type"] = w.FormDataContentType()
+
+ // Set Content-Length
+ headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
+ w.Close()
+ }
+
+ if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 {
+ if body != nil {
+ return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.")
+ }
+ body = &bytes.Buffer{}
+ body.WriteString(formParams.Encode())
+ // Set Content-Length
+ headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
+ }
+
+ // Setup path and query parameters
+ url, err := url.Parse(path)
+ if err != nil {
+ return nil, err
+ }
+
+ // Override request host, if applicable
+ if c.cfg.Host != "" {
+ url.Host = c.cfg.Host
+ }
+
+ // Override request scheme, if applicable
+ if c.cfg.Scheme != "" {
+ url.Scheme = c.cfg.Scheme
+ }
+
+ // Adding Query Param
+ query := url.Query()
+ for k, v := range queryParams {
+ for _, iv := range v {
+ query.Add(k, iv)
+ }
+ }
+
+ // Encode the parameters.
+ url.RawQuery = query.Encode()
+
+ // Generate a new request
+ if body != nil {
+ localVarRequest, err = http.NewRequest(method, url.String(), body)
+ } else {
+ localVarRequest, err = http.NewRequest(method, url.String(), nil)
+ }
+ if err != nil {
+ return nil, err
+ }
+
+ // add header parameters, if any
+ if len(headerParams) > 0 {
+ headers := http.Header{}
+ for h, v := range headerParams {
+ headers.Set(h, v)
+ }
+ localVarRequest.Header = headers
+ }
+
+ // Add the user agent to the request.
+ localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent)
+
+ if ctx != nil {
+ // add context to the request
+ localVarRequest = localVarRequest.WithContext(ctx)
+
+ // Walk through any authentication.
+
+ // OAuth2 authentication
+ if tok, ok := ctx.Value(ContextOAuth2).(oauth2.TokenSource); ok {
+ // We were able to grab an oauth2 token from the context
+ var latestToken *oauth2.Token
+ if latestToken, err = tok.Token(); err != nil {
+ return nil, err
+ }
+
+ latestToken.SetAuthHeader(localVarRequest)
+ }
+
+ // Basic HTTP Authentication
+ if auth, ok := ctx.Value(ContextBasicAuth).(BasicAuth); ok {
+ localVarRequest.SetBasicAuth(auth.UserName, auth.Password)
+ }
+
+ // AccessToken Authentication
+ if auth, ok := ctx.Value(ContextAccessToken).(string); ok {
+ localVarRequest.Header.Add("Authorization", "Bearer "+auth)
+ }
+ }
+
+ for header, value := range c.cfg.DefaultHeader {
+ localVarRequest.Header.Add(header, value)
+ }
+
+ return localVarRequest, nil
+}
+
+func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
+ if s, ok := v.(*string); ok {
+ *s = string(b)
+ return nil
+ }
+ if xmlCheck.MatchString(contentType) {
+ if err = xml.Unmarshal(b, v); err != nil {
+ return err
+ }
+ return nil
+ }
+ if jsonCheck.MatchString(contentType) {
+ if err = json.Unmarshal(b, v); err != nil {
+ return err
+ }
+ return nil
+ }
+ return errors.New("undefined response type")
+}
+
+// Add a file to the multipart request
+func addFile(w *multipart.Writer, fieldName, path string) error {
+ file, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+
+ part, err := w.CreateFormFile(fieldName, filepath.Base(path))
+ if err != nil {
+ return err
+ }
+ _, err = io.Copy(part, file)
+
+ return err
+}
+
+// Prevent trying to import "fmt"
+func reportError(format string, a ...interface{}) error {
+ return fmt.Errorf(format, a...)
+}
+
+// Set request body from an interface{}
+func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
+ if bodyBuf == nil {
+ bodyBuf = &bytes.Buffer{}
+ }
+
+ if reader, ok := body.(io.Reader); ok {
+ _, err = bodyBuf.ReadFrom(reader)
+ } else if b, ok := body.([]byte); ok {
+ _, err = bodyBuf.Write(b)
+ } else if s, ok := body.(string); ok {
+ _, err = bodyBuf.WriteString(s)
+ } else if s, ok := body.(*string); ok {
+ _, err = bodyBuf.WriteString(*s)
+ } else if jsonCheck.MatchString(contentType) {
+ err = json.NewEncoder(bodyBuf).Encode(body)
+ } else if xmlCheck.MatchString(contentType) {
+ err = xml.NewEncoder(bodyBuf).Encode(body)
+ }
+
+ if err != nil {
+ return nil, err
+ }
+
+ if bodyBuf.Len() == 0 {
+ err = fmt.Errorf("Invalid body type %s\n", contentType)
+ return nil, err
+ }
+ return bodyBuf, nil
+}
+
+// detectContentType method is used to figure out `Request.Body` content type for request header
+func detectContentType(body interface{}) string {
+ contentType := "text/plain; charset=utf-8"
+ kind := reflect.TypeOf(body).Kind()
+
+ switch kind {
+ case reflect.Struct, reflect.Map, reflect.Ptr:
+ contentType = "application/json; charset=utf-8"
+ case reflect.String:
+ contentType = "text/plain; charset=utf-8"
+ default:
+ if b, ok := body.([]byte); ok {
+ contentType = http.DetectContentType(b)
+ } else if kind == reflect.Slice {
+ contentType = "application/json; charset=utf-8"
+ }
+ }
+
+ return contentType
+}
+
+// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go
+type cacheControl map[string]string
+
+func parseCacheControl(headers http.Header) cacheControl {
+ cc := cacheControl{}
+ ccHeader := headers.Get("Cache-Control")
+ for _, part := range strings.Split(ccHeader, ",") {
+ part = strings.Trim(part, " ")
+ if part == "" {
+ continue
+ }
+ if strings.ContainsRune(part, '=') {
+ keyval := strings.Split(part, "=")
+ cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",")
+ } else {
+ cc[part] = ""
+ }
+ }
+ return cc
+}
+
+// CacheExpires helper function to determine remaining time before repeating a request.
+func CacheExpires(r *http.Response) time.Time {
+ // Figure out when the cache expires.
+ var expires time.Time
+ now, err := time.Parse(time.RFC1123, r.Header.Get("date"))
+ if err != nil {
+ return time.Now()
+ }
+ respCacheControl := parseCacheControl(r.Header)
+
+ if maxAge, ok := respCacheControl["max-age"]; ok {
+ lifetime, err := time.ParseDuration(maxAge + "s")
+ if err != nil {
+ expires = now
+ } else {
+ expires = now.Add(lifetime)
+ }
+ } else {
+ expiresHeader := r.Header.Get("Expires")
+ if expiresHeader != "" {
+ expires, err = time.Parse(time.RFC1123, expiresHeader)
+ if err != nil {
+ expires = now
+ }
+ }
+ }
+ return expires
+}
+
+func strlen(s string) int {
+ return utf8.RuneCountInString(s)
+}
+
+// GenericOpenAPIError Provides access to the body, error and model on returned errors.
+type GenericOpenAPIError struct {
+ body []byte
+ error string
+ model interface{}
+}
+
+// Error returns non-empty string if there was an error.
+func (e GenericOpenAPIError) Error() string {
+ return e.error
+}
+
+// Body returns the raw bytes of the response
+func (e GenericOpenAPIError) Body() []byte {
+ return e.body
+}
+
+// Model returns the unpacked model of the error
+func (e GenericOpenAPIError) Model() interface{} {
+ return e.model
+}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/configuration.mustache b/modules/openapi-generator/src/main/resources/go-experimental/configuration.mustache
new file mode 100644
index 00000000000..81d3a41b7bd
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/configuration.mustache
@@ -0,0 +1,64 @@
+{{>partial_header}}
+package {{packageName}}
+
+import (
+ "net/http"
+)
+
+// contextKeys are used to identify the type of value in the context.
+// Since these are string, it is possible to get a short description of the
+// context key for logging and debugging using key.String().
+
+type contextKey string
+
+func (c contextKey) String() string {
+ return "auth " + string(c)
+}
+
+var (
+ // ContextOAuth2 takes an oauth2.TokenSource as authentication for the request.
+ ContextOAuth2 = contextKey("token")
+
+ // ContextBasicAuth takes BasicAuth as authentication for the request.
+ ContextBasicAuth = contextKey("basic")
+
+ // ContextAccessToken takes a string oauth2 access token as authentication for the request.
+ ContextAccessToken = contextKey("accesstoken")
+
+ // ContextAPIKey takes an APIKey as authentication for the request
+ ContextAPIKey = contextKey("apikey")
+)
+
+// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth
+type BasicAuth struct {
+ UserName string `json:"userName,omitempty"`
+ Password string `json:"password,omitempty"`
+}
+
+// APIKey provides API key based authentication to a request passed via context using ContextAPIKey
+type APIKey struct {
+ Key string
+ Prefix string
+}
+
+type Configuration struct {
+ BasePath string `json:"basePath,omitempty"`
+ Host string `json:"host,omitempty"`
+ Scheme string `json:"scheme,omitempty"`
+ DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
+ UserAgent string `json:"userAgent,omitempty"`
+ HTTPClient *http.Client
+}
+
+func NewConfiguration() *Configuration {
+ cfg := &Configuration{
+ BasePath: "{{{basePath}}}",
+ DefaultHeader: make(map[string]string),
+ UserAgent: "{{#httpUserAgent}}{{{.}}}{{/httpUserAgent}}{{^httpUserAgent}}OpenAPI-Generator/{{{packageVersion}}}/go{{/httpUserAgent}}",
+ }
+ return cfg
+}
+
+func (c *Configuration) AddDefaultHeader(key string, value string) {
+ c.DefaultHeader[key] = value
+}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/git_push.sh.mustache b/modules/openapi-generator/src/main/resources/go-experimental/git_push.sh.mustache
new file mode 100755
index 00000000000..8a32e53995d
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/git_push.sh.mustache
@@ -0,0 +1,52 @@
+#!/bin/sh
+# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
+#
+# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update"
+
+git_user_id=$1
+git_repo_id=$2
+release_note=$3
+
+if [ "$git_user_id" = "" ]; then
+ git_user_id="{{{gitUserId}}}"
+ echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
+fi
+
+if [ "$git_repo_id" = "" ]; then
+ git_repo_id="{{{gitRepoId}}}"
+ echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
+fi
+
+if [ "$release_note" = "" ]; then
+ release_note="{{{releaseNote}}}"
+ echo "[INFO] No command line input provided. Set \$release_note to $release_note"
+fi
+
+# Initialize the local directory as a Git repository
+git init
+
+# Adds the files in the local repository and stages them for commit.
+git add .
+
+# Commits the tracked changes and prepares them to be pushed to a remote repository.
+git commit -m "$release_note"
+
+# Sets the new remote
+git_remote=`git remote`
+if [ "$git_remote" = "" ]; then # git remote not defined
+
+ if [ "$GIT_TOKEN" = "" ]; then
+ echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
+ git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git
+ else
+ git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git
+ fi
+
+fi
+
+git pull origin master
+
+# Pushes (Forces) the changes in the local repository up to the remote repository
+echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git"
+git push origin master 2>&1 | grep -v 'To https'
+
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/gitignore.mustache b/modules/openapi-generator/src/main/resources/go-experimental/gitignore.mustache
new file mode 100644
index 00000000000..daf913b1b34
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/gitignore.mustache
@@ -0,0 +1,24 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+*.prof
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/go.mod.mustache b/modules/openapi-generator/src/main/resources/go-experimental/go.mod.mustache
new file mode 100644
index 00000000000..ec4310dd593
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/go.mod.mustache
@@ -0,0 +1,6 @@
+module github.com/{{gitUserId}}/{{gitRepoId}}{{#isGoSubmodule}}/{{packageName}}{{/isGoSubmodule}}
+
+require (
+ github.com/antihax/optional v0.0.0-20180406194304-ca021399b1a6
+ golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a
+)
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/go.sum b/modules/openapi-generator/src/main/resources/go-experimental/go.sum
new file mode 100644
index 00000000000..e3c16fef3ac
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/go.sum
@@ -0,0 +1,11 @@
+cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/antihax/optional v0.0.0-20180406194304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a h1:tImsplftrFpALCYumobsd0K86vlAs/eXGFms2txfJfA=
+golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/model.mustache b/modules/openapi-generator/src/main/resources/go-experimental/model.mustache
new file mode 100644
index 00000000000..1a9f8d1c5aa
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/model.mustache
@@ -0,0 +1,43 @@
+{{>partial_header}}
+package {{packageName}}
+{{#models}}
+{{#imports}}
+{{#-first}}
+import (
+{{/-first}}
+ "{{import}}"
+{{#-last}}
+)
+{{/-last}}
+{{/imports}}
+{{#model}}
+{{#isEnum}}
+{{#description}}
+// {{{classname}}} : {{{description}}}
+{{/description}}
+type {{{classname}}} {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/format}}
+
+// List of {{{name}}}
+const (
+ {{#allowableValues}}
+ {{#enumVars}}
+ {{^-first}}
+ {{/-first}}
+ {{name}} {{{classname}}} = "{{{value}}}"
+ {{/enumVars}}
+ {{/allowableValues}}
+){{/isEnum}}{{^isEnum}}{{#description}}
+// {{{description}}}{{/description}}
+type {{classname}} struct {
+{{#vars}}
+{{^-first}}
+{{/-first}}
+{{#description}}
+ // {{{description}}}
+{{/description}}
+ {{name}} {{#isNullable}}*{{/isNullable}}{{{dataType}}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{baseName}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}`
+{{/vars}}
+}
+{{/isEnum}}
+{{/model}}
+{{/models}}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/model_doc.mustache b/modules/openapi-generator/src/main/resources/go-experimental/model_doc.mustache
new file mode 100644
index 00000000000..546238243b1
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/model_doc.mustache
@@ -0,0 +1,12 @@
+{{#models}}{{#model}}# {{classname}}
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+{{#vars}}**{{name}}** | {{#isNullable}}Pointer to {{/isNullable}}{{#isPrimitiveType}}**{{{dataType}}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{{dataType}}}**]({{complexType}}.md){{/isPrimitiveType}} | {{description}} | {{^required}}[optional] {{/required}}{{#readOnly}}[readonly] {{/readOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}}
+{{/vars}}
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+{{/model}}{{/models}}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/openapi.mustache b/modules/openapi-generator/src/main/resources/go-experimental/openapi.mustache
new file mode 100644
index 00000000000..51ebafb0187
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/openapi.mustache
@@ -0,0 +1 @@
+{{{openapi-yaml}}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/partial_header.mustache b/modules/openapi-generator/src/main/resources/go-experimental/partial_header.mustache
new file mode 100644
index 00000000000..e23b21520a9
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/partial_header.mustache
@@ -0,0 +1,23 @@
+/*
+ {{#appName}}
+ * {{{appName}}}
+ *
+ {{/appName}}
+ {{#appDescription}}
+ * {{{appDescription}}}
+ *
+ {{/appDescription}}
+ {{#version}}
+ * API version: {{{version}}}
+ {{/version}}
+ {{#infoEmail}}
+ * Contact: {{{infoEmail}}}
+ {{/infoEmail}}
+{{^withGoCodegenComment}}
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+{{/withGoCodegenComment}}
+ */
+{{#withGoCodegenComment}}
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+{{/withGoCodegenComment}}
diff --git a/modules/openapi-generator/src/main/resources/go-experimental/response.mustache b/modules/openapi-generator/src/main/resources/go-experimental/response.mustache
new file mode 100644
index 00000000000..e15d7e6a783
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/go-experimental/response.mustache
@@ -0,0 +1,35 @@
+{{>partial_header}}
+package {{packageName}}
+
+import (
+ "net/http"
+)
+
+type APIResponse struct {
+ *http.Response `json:"-"`
+ Message string `json:"message,omitempty"`
+ // Operation is the name of the OpenAPI operation.
+ Operation string `json:"operation,omitempty"`
+ // RequestURL is the request URL. This value is always available, even if the
+ // embedded *http.Response is nil.
+ RequestURL string `json:"url,omitempty"`
+ // Method is the HTTP method used for the request. This value is always
+ // available, even if the embedded *http.Response is nil.
+ Method string `json:"method,omitempty"`
+ // Payload holds the contents of the response body (which may be nil or empty).
+ // This is provided here as the raw response.Body() reader will have already
+ // been drained.
+ Payload []byte `json:"-"`
+}
+
+func NewAPIResponse(r *http.Response) *APIResponse {
+
+ response := &APIResponse{Response: r}
+ return response
+}
+
+func NewAPIResponseWithError(errorMessage string) *APIResponse {
+
+ response := &APIResponse{Message: errorMessage}
+ return response
+}
diff --git a/modules/openapi-generator/src/main/resources/java-pkmst/config/appconfig.mustache b/modules/openapi-generator/src/main/resources/java-pkmst/config/appconfig.mustache
index 67d99d563e8..d5c60cde0d8 100644
--- a/modules/openapi-generator/src/main/resources/java-pkmst/config/appconfig.mustache
+++ b/modules/openapi-generator/src/main/resources/java-pkmst/config/appconfig.mustache
@@ -87,7 +87,7 @@ public class AppConfig extends WebMvcConfigurerAdapter {
* .exposedHeaders("header1", "header2")
* .allowCredentials(false).maxAge(3600);
*
- * @return
+ * @return a new WebMvcConfigurer instance
*/
@Bean
public WebMvcConfigurer corsConfigurer() {
diff --git a/modules/openapi-generator/src/main/resources/java-pkmst/security/oAuth2SecurityConfiguration.mustache b/modules/openapi-generator/src/main/resources/java-pkmst/security/oAuth2SecurityConfiguration.mustache
index a84cd0ba579..35d965a6465 100644
--- a/modules/openapi-generator/src/main/resources/java-pkmst/security/oAuth2SecurityConfiguration.mustache
+++ b/modules/openapi-generator/src/main/resources/java-pkmst/security/oAuth2SecurityConfiguration.mustache
@@ -18,7 +18,7 @@ import org.springframework.security.oauth2.provider.request.DefaultOAuth2Request
import org.springframework.security.oauth2.provider.token.TokenStore;
import org.springframework.security.oauth2.provider.token.store.InMemoryTokenStore;
/**
- * Provides a convenient base class for creating a {@link WebSecurityConfigurer}
+ * Provides a convenient base class for creating a WebSecurityConfigurer
* instance. The implementation allows customization by overriding methods.
*
* @see EnableWebSecurity
diff --git a/modules/openapi-generator/src/main/resources/java-pkmst/security/resourceServerConfiguration.mustache b/modules/openapi-generator/src/main/resources/java-pkmst/security/resourceServerConfiguration.mustache
index 654fa148910..4377494ec2d 100644
--- a/modules/openapi-generator/src/main/resources/java-pkmst/security/resourceServerConfiguration.mustache
+++ b/modules/openapi-generator/src/main/resources/java-pkmst/security/resourceServerConfiguration.mustache
@@ -10,7 +10,7 @@ import org.springframework.http.HttpMethod;
/**
* Configurer class for @EnableResourceServer
classes. This class adjust the access
* rules and paths that are protected by OAuth2 security. If more than one configures the same property, then the last
- * one wins. The configurers are sorted by {@link Order} before being applied.
+ * one wins. The configurers are sorted by Order before being applied.
*
* @author pkmst
*
diff --git a/modules/openapi-generator/src/main/resources/php-laravel/phpunit.xml b/modules/openapi-generator/src/main/resources/php-laravel/phpunit.xml
index c9e326b6959..1037dd6ad08 100644
--- a/modules/openapi-generator/src/main/resources/php-laravel/phpunit.xml
+++ b/modules/openapi-generator/src/main/resources/php-laravel/phpunit.xml
@@ -23,6 +23,7 @@
+
diff --git a/modules/openapi-generator/src/main/resources/php-lumen/phpunit.xml b/modules/openapi-generator/src/main/resources/php-lumen/phpunit.xml
index c703297e25a..218bbb4b49b 100644
--- a/modules/openapi-generator/src/main/resources/php-lumen/phpunit.xml
+++ b/modules/openapi-generator/src/main/resources/php-lumen/phpunit.xml
@@ -20,6 +20,7 @@
+
diff --git a/modules/openapi-generator/src/main/resources/php-slim-server/phpunit.xml.mustache b/modules/openapi-generator/src/main/resources/php-slim-server/phpunit.xml.mustache
index dbddf2737da..b8852944a12 100644
--- a/modules/openapi-generator/src/main/resources/php-slim-server/phpunit.xml.mustache
+++ b/modules/openapi-generator/src/main/resources/php-slim-server/phpunit.xml.mustache
@@ -24,4 +24,7 @@
{{modelSrcPath}}
-
\ No newline at end of file
+
+
+
+
diff --git a/modules/openapi-generator/src/main/resources/php-symfony/testing/phpunit.xml.mustache b/modules/openapi-generator/src/main/resources/php-symfony/testing/phpunit.xml.mustache
index bd5b2978ee0..8a6ff770c44 100644
--- a/modules/openapi-generator/src/main/resources/php-symfony/testing/phpunit.xml.mustache
+++ b/modules/openapi-generator/src/main/resources/php-symfony/testing/phpunit.xml.mustache
@@ -11,15 +11,14 @@
{{modelTestPath}}
-
-
-
-
-
{{apiSrcPath}}
{{modelSrcPath}}
+
+
+
+
diff --git a/modules/openapi-generator/src/main/resources/php/phpunit.xml.mustache b/modules/openapi-generator/src/main/resources/php/phpunit.xml.mustache
index 089480f6b1e..66b2c40c983 100644
--- a/modules/openapi-generator/src/main/resources/php/phpunit.xml.mustache
+++ b/modules/openapi-generator/src/main/resources/php/phpunit.xml.mustache
@@ -11,11 +11,13 @@
{{modelTestPath}}
-
{{apiSrcPath}}
{{modelSrcPath}}
+
+
+
diff --git a/modules/openapi-generator/src/main/resources/r/ApiResponse.mustache b/modules/openapi-generator/src/main/resources/r/ApiResponse.mustache
index 3851ebbf9f0..28571b104a0 100644
--- a/modules/openapi-generator/src/main/resources/r/ApiResponse.mustache
+++ b/modules/openapi-generator/src/main/resources/r/ApiResponse.mustache
@@ -1,6 +1,9 @@
-#' ApiResponse Class
-#'
-#' ApiResponse Class
+#' @docType class
+#' @title ApiResponse
+#' @description ApiResponse Class
+#' @format An \code{R6Class} generator object
+#' @field content The deserialized response body.
+#' @field response The raw response from the endpoint.
#' @export
ApiResponse <- R6::R6Class(
'ApiResponse',
diff --git a/modules/openapi-generator/src/main/resources/r/api.mustache b/modules/openapi-generator/src/main/resources/r/api.mustache
index b56c7827999..04fd3634e38 100644
--- a/modules/openapi-generator/src/main/resources/r/api.mustache
+++ b/modules/openapi-generator/src/main/resources/r/api.mustache
@@ -1,23 +1,150 @@
{{>partial_header}}
{{#operations}}
+#' @docType class
#' @title {{baseName}} operations
#' @description {{importPath}}
-#'
-#' @field path Stores url path of the request.
+#' @format An \code{R6Class} generator object
#' @field apiClient Handles the client-server communication.
#'
-#' @importFrom R6 R6Class
-#'
#' @section Methods:
+{{! Adding the below changes for generating documentation for the api methods. }}
#' \describe{
{{#operation}}
+#' \strong{ {{operationId}} } \emph{ {{summary}} }
+#' {{notes}}
#'
-#' {{operationId}} {{summary}}
+#' \itemize{
+{{#allParams}}
+{{#isEnum}}
+#' \item \emph{ @param } {{paramName}} Enum < {{#allowableValues}}{{values}}{{/allowableValues}} >
+{{/isEnum}}
+{{^isEnum}}
+{{#isContainer}}
+{{#isListContainer}}
+{{#items}}
+{{#isPrimitiveType}}
+#' \item \emph{ @param } {{paramName}} list( {{dataType}} )
+{{/isPrimitiveType}}
+{{^isPrimitiveType}}
+#' \item \emph{ @param } {{paramName}} list( \link[{{packageName}}:{{baseType}}]{ {{dataType}} } )
+{{/isPrimitiveType}}
+{{/items}}
+{{/isListContainer}}
+{{#isMapContainer}}
+{{#isPrimitiveType}}
+#' \item \emph{ @param } {{paramName}} named list( {{dataType}} )
+{{/isPrimitiveType}}
+{{^isPrimitiveType}}
+#' \item \emph{ @param } {{paramName}} named list( \link[{{packageName}}:{{baseType}}]{ {{dataType}} } )
+{{/isPrimitiveType}}
+{{/isMapContainer}}
+{{/isContainer}}
+{{^isContainer}}
+{{#isPrimitiveType}}
+#' \item \emph{ @param } {{paramName}} {{dataType}}
+{{/isPrimitiveType}}
+{{^isPrimitiveType}}
+#' \item \emph{ @param } {{paramName}} \link[{{packageName}}:{{baseType}}]{ {{dataType}} }
+{{/isPrimitiveType}}
+{{/isContainer}}
+{{/isEnum}}
+{{/allParams}}
+{{#returnType}}
+{{^returnTypeIsPrimitive}}
+#' \item \emph{ @returnType } \link[{{packageName}}:{{returnBaseType}}]{ {{#returnContainer}}{{#isListContainer}}list({{returnBaseType}}){{/isListContainer}}{{#isMapContainer}}named list({{returnBaseType}}){{/isMapContainer}}{{/returnContainer}}{{^returnContainer}}{{returnType}}{{/returnContainer}} } \cr
+{{/returnTypeIsPrimitive}}
+{{/returnType}}
+#'
+{{#useRlangExceptionHandling}}
+#' \item On encountering errors, an error of subclass ApiException will be thrown.
+{{/useRlangExceptionHandling}}
+#'
+{{#responses}}
+#' \item status code : {{code}} | {{message}}
+#'
+#'{{#dataType}} \item return type : {{dataType}} {{/dataType}}
+#' \item response headers :
+#'
+#' \tabular{ll}{
+{{#headers}}
+#' {{name}} \tab {{description}} \cr
+{{/headers}}
+#' }
+{{/responses}}
+#' }
#'
{{/operation}}
#' }
#'
+#'
+#' @examples
+#' \donttest{
+{{#operation}}
+#' #################### {{operationId}} ####################
+#'
+#' library({{{packageName}}})
+{{#allParams}}
+#' var.{{{paramName}}} <- {{{example}}} # {{{dataType}}} | {{{description}}}
+{{/allParams}}
+#'
+{{#summary}}
+#' #{{{.}}}
+{{/summary}}
+#' api.instance <- {{{classname}}}$new()
+{{#hasAuthMethods}}
+{{#authMethods}}
+#'
+{{#isBasic}}
+#' #Configure HTTP basic authorization: {{{name}}}
+#' # provide your username in the user-serial format
+#' api.instance$apiClient$username <- '';
+#' # provide your api key generated using the developer portal
+#' api.instance$apiClient$password <- '';
+{{/isBasic}}
+{{#isApiKey}}
+#' #Configure API key authorization: {{{name}}}
+#' api.instance$apiClient$apiKeys['{{{keyParamName}}}'] <- 'TODO_YOUR_API_KEY';
+{{/isApiKey}}
+{{#isOAuth}}
+#' # Configure OAuth2 access token for authorization: {{{name}}}
+#' api.instance$apiClient$accessToken <- 'TODO_YOUR_ACCESS_TOKEN';
+{{/isOAuth}}
+{{/authMethods}}
+{{/hasAuthMethods}}
+#'
+{{#returnExceptionOnFailure}}
+{{#useRlangExceptionHandling}}
+#'result <- tryCatch(
+#' api.instance${{{operationId}}}({{#requiredParams}}var.{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-first}}{{#requiredParams.0}}, {{/requiredParams.0}}{{/-first}}{{{paramName}}}=var.{{{paramName}}}{{^-last}}, {{/-last}}{{/optionalParams}}),
+#' ApiException = function(ex) ex
+#' )
+#' # In case of error, print the error object
+#' if(!is.null(result$ApiException)) {
+#' cat(result$ApiException$toString())
+#' } else {
+{{#returnType}}
+#' # deserialized response object
+#' response.object <- result$content
+{{/returnType}}
+#' # response headers
+#' response.headers <- result$response$headers
+#' # response status code
+#' response.status.code <- result$response$status_code
+#' }
+{{/useRlangExceptionHandling}}
+{{/returnExceptionOnFailure}}
+{{^useRlangExceptionHandling}}
+#' result <- api.instance${{{operationId}}}({{#requiredParams}}var.{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-first}}{{#requiredParams.0}}, {{/requiredParams.0}}{{/-first}}{{{paramName}}}=var.{{{paramName}}}{{^-last}}, {{/-last}}{{/optionalParams}})
+{{/useRlangExceptionHandling}}
+#'
+#'
+{{/operation}}
+#' }
+#' @importFrom R6 R6Class
#' @importFrom caTools base64encode
+{{#useRlangExceptionHandling}}
+#' @importFrom rlang abort
+{{/useRlangExceptionHandling}}
#' @export
{{classname}} <- R6::R6Class(
'{{classname}}',
@@ -51,7 +178,12 @@
{{#requiredParams}}
if (missing(`{{paramName}}`)) {
+ {{#useDefaultExceptionHandling}}
stop("Missing required parameter `{{{paramName}}}`.")
+ {{/useDefaultExceptionHandling}}
+ {{#useRlangExceptionHandling}}
+ rlang::abort(message = "Missing required parameter `{{{paramName}}}`.", .subclass = "ApiException", ApiException = ApiException$new(status = 0, reason = "Missing required parameter `{{{paramName}}}`."))
+ {{/useRlangExceptionHandling}}
}
{{/requiredParams}}
@@ -141,7 +273,17 @@
ApiResponse$new(content,resp)
{{/isPrimitiveType}}
{{^isPrimitiveType}}
- deserializedRespObj <- self$apiClient$deserialize(resp, "{{returnType}}", "package:{{packageName}}")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "{{returnType}}", "package:{{packageName}}"),
+ error = function(e){
+ {{#useDefaultExceptionHandling}}
+ stop("Failed to deserialize response")
+ {{/useDefaultExceptionHandling}}
+ {{#useRlangExceptionHandling}}
+ rlang::abort(message = "Failed to deserialize response", .subclass = "ApiException", ApiException = ApiException$new(http_response = resp))
+ {{/useRlangExceptionHandling}}
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
{{/isPrimitiveType}}
{{/returnType}}
@@ -150,9 +292,37 @@
ApiResponse$new(NULL, resp)
{{/returnType}}
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
+ {{#returnExceptionOnFailure}}
+ errorMsg <- toString(content(resp))
+ if(errorMsg == ""){
+ errorMsg <- "Api client exception encountered."
+ }
+ {{#useDefaultExceptionHandling}}
+ stop(errorMsg)
+ {{/useDefaultExceptionHandling}}
+ {{#useRlangExceptionHandling}}
+ rlang::abort(message = errorMsg, .subclass = "ApiException", ApiException = ApiException$new(http_response = resp))
+ {{/useRlangExceptionHandling}}
+ {{/returnExceptionOnFailure}}
+ {{^returnExceptionOnFailure}}
ApiResponse$new("API client error", resp)
+ {{/returnExceptionOnFailure}}
} else if (httr::status_code(resp) >= 500 && httr::status_code(resp) <= 599) {
+ {{#returnExceptionOnFailure}}
+ errorMsg <- toString(content(resp))
+ if(errorMsg == ""){
+ errorMsg <- "Api server exception encountered."
+ }
+ {{#useDefaultExceptionHandling}}
+ stop(errorMsg)
+ {{/useDefaultExceptionHandling}}
+ {{#useRlangExceptionHandling}}
+ rlang::abort(message = errorMsg, .subclass = "ApiException", ApiException = ApiException$new(http_response = resp))
+ {{/useRlangExceptionHandling}}
+ {{/returnExceptionOnFailure}}
+ {{^returnExceptionOnFailure}}
ApiResponse$new("API server error", resp)
+ {{/returnExceptionOnFailure}}
}
}{{#hasMore}},{{/hasMore}}
{{/operation}}
diff --git a/modules/openapi-generator/src/main/resources/r/api_client.mustache b/modules/openapi-generator/src/main/resources/r/api_client.mustache
index 4a7e01b588a..eb70bad3447 100644
--- a/modules/openapi-generator/src/main/resources/r/api_client.mustache
+++ b/modules/openapi-generator/src/main/resources/r/api_client.mustache
@@ -12,14 +12,22 @@
#' Ref: https://openapi-generator.tech
#' Do not edit the class manually.
#'
-#' @field basePath
-#' @field userAgent
+#' @docType class
+#' @title ApiClient
+#' @description ApiClient Class
+#' @format An \code{R6Class} generator object
+#' @field basePath Base url
+#' @field userAgent Default user agent
#' @field defaultHeaders
-#' @field username
-#' @field password
+#' @field username Username for HTTP basic authentication
+#' @field password Password for HTTP basic authentication
#' @field apiKeys
#' @field accessToken
-#' @importFrom httr
+#' @field timeout Default timeout in seconds
+#' @importFrom httr add_headers accept timeout content
+{{#useRlangExceptionHandling}}
+#' @importFrom rlang abort
+{{/useRlangExceptionHandling}}
#' @export
ApiClient <- R6::R6Class(
'ApiClient',
@@ -98,26 +106,42 @@ ApiClient <- R6::R6Class(
} else if (method == "DELETE") {
httr::DELETE(url, query = queryParams, headers, httpTimeout, httpTimeout, httr::user_agent(self$`userAgent`), ...)
} else {
- stop("http method must be `GET`, `HEAD`, `OPTIONS`, `POST`, `PATCH`, `PUT` or `DELETE`.")
+ errMsg <- "Http method must be `GET`, `HEAD`, `OPTIONS`, `POST`, `PATCH`, `PUT` or `DELETE`."
+ {{#useDefaultExceptionHandling}}
+ stop(errMsg)
+ {{/useDefaultExceptionHandling}}
+ {{#useRlangExceptionHandling}}
+ rlang::abort(message = errMsg, .subclass = "ApiException", ApiException = ApiException$new(status = 0, reason = errMsg))
+ {{/useRlangExceptionHandling}}
}
},
+ # Deserialize the content of api response to the given type.
deserialize = function(resp, returnType, pkgEnv) {
respObj <- jsonlite::fromJSON(httr::content(resp, "text", encoding = "UTF-8"))
self$deserializeObj(respObj, returnType, pkgEnv)
},
+
+ # Deserialize the response from jsonlite object based on the given type
+ # by handling complex and nested types by iterating recursively
+ # Example returnTypes will be like "array[integer]", "map(Pet)", "array[map(Tag)]", etc.,
+
deserializeObj = function(obj, returnType, pkgEnv) {
returnObj <- NULL
primitiveTypes <- c("character", "numeric", "integer", "logical", "complex")
+ # To handle the "map" type
if (startsWith(returnType, "map(")) {
innerReturnType <- regmatches(returnType, regexec(pattern = "map\\((.*)\\)", returnType))[[1]][2]
returnObj <- lapply(names(obj), function(name) {
self$deserializeObj(obj[[name]], innerReturnType, pkgEnv)
})
names(returnObj) <- names(obj)
- } else if (startsWith(returnType, "array[")) {
+ }
+
+ # To handle the "array" type
+ else if (startsWith(returnType, "array[")) {
innerReturnType <- regmatches(returnType, regexec(pattern = "array\\[(.*)\\]", returnType))[[1]][2]
if (c(innerReturnType) %in% primitiveTypes) {
returnObj <- vector("list", length = length(obj))
@@ -134,11 +158,17 @@ ApiClient <- R6::R6Class(
}
}
}
- } else if (exists(returnType, pkgEnv) && !(c(returnType) %in% primitiveTypes)) {
+ }
+
+ # To handle model objects which are not array or map containers. Ex:"Pet"
+ else if (exists(returnType, pkgEnv) && !(c(returnType) %in% primitiveTypes)) {
returnType <- get(returnType, envir = as.environment(pkgEnv))
returnObj <- returnType$new()
returnObj$fromJSON(jsonlite::toJSON(obj, digits = NA))
- } else {
+ }
+
+ # To handle primitive type
+ else {
returnObj <- obj
}
returnObj
diff --git a/modules/openapi-generator/src/main/resources/r/api_exception.mustache b/modules/openapi-generator/src/main/resources/r/api_exception.mustache
new file mode 100644
index 00000000000..f8e1fa61af8
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/r/api_exception.mustache
@@ -0,0 +1,55 @@
+{{! ApiException class for returning the ApiException object on encountering errors}}
+#' @docType class
+#' @title ApiException
+#' @description ApiException Class
+#' @format An \code{R6Class} generator object
+#' @field status Status of the ApiException
+#' @field reason Reason of the ApiException
+#' @field body Body of the http response
+#' @field headers Headers of the http response
+#' @export
+ApiException <- R6::R6Class(
+ "ApiException",
+ public = list(
+ status = NULL,
+ reason = NULL,
+ body = NULL,
+ headers = NULL,
+
+ initialize = function(status = NULL, reason = NULL, http_response = NULL) {
+ if (!is.null(http_response)) {
+ self$status <- http_response$status_code
+ errorMsg <- toString(content(http_response))
+ if(errorMsg == ""){
+ errorMsg <- "Api exception encountered."
+ }
+ self$body <- errorMsg
+ self$headers <- http_response$headers
+ self$reason <- httr::http_status(http_response)$reason
+ } else {
+ self$status <- status
+ self$reason <- reason
+ self$body <- NULL
+ self$headers <- NULL
+ }
+ },
+
+ # returns the string format of ApiException
+ toString = function() {
+ errorMsg <- ""
+ errorMsg <- paste("status : ", self$status, "\n", sep = "")
+ errorMsg <- paste(errorMsg, "Reason : ", self$reason, "\n", sep = "")
+ if (!is.null(self$headers)) {
+ errorMsg <- paste(errorMsg, "Headers : ", "\n", sep = "")
+ for (name in names(self$headers)) {
+ errorMsg <- paste(errorMsg, name, " : ", self$headers[[name]], "\n", sep = " ")
+ }
+ }
+ if (!is.null(self$body)) {
+ errorMsg <- paste(errorMsg, "Body : ", "\n", sep = "")
+ errorMsg <- paste(errorMsg, self$body,"\n")
+ }
+ errorMsg
+ }
+ )
+)
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/r/description.mustache b/modules/openapi-generator/src/main/resources/r/description.mustache
index 2bf0cd10082..f4d5756752c 100644
--- a/modules/openapi-generator/src/main/resources/r/description.mustache
+++ b/modules/openapi-generator/src/main/resources/r/description.mustache
@@ -8,5 +8,5 @@ Encoding: UTF-8
License: Unlicense
LazyData: true
Suggests: testthat
-Imports: jsonlite, httr, R6, caTools
+Imports: jsonlite, httr, R6, caTools{{#useRlangExceptionHandling}}, rlang{{/useRlangExceptionHandling}}
RoxygenNote: 6.0.1.9000
diff --git a/modules/openapi-generator/src/main/resources/r/model.mustache b/modules/openapi-generator/src/main/resources/r/model.mustache
index 6559ef18067..3b83d469562 100644
--- a/modules/openapi-generator/src/main/resources/r/model.mustache
+++ b/modules/openapi-generator/src/main/resources/r/model.mustache
@@ -1,11 +1,13 @@
{{#models}}
{{#model}}
{{>partial_header}}
-
-#' {{classname}} Class
-#'
+#' @docType class
+#' @title {{classname}}
+#' @description {{classname}} Class
+#' @format An \code{R6Class} generator object
{{#vars}}
-#' @field {{baseName}} {{title}}
+#' @field {{baseName}} {{title}} {{^isPrimitiveType}} \link[{{packageName}}:{{complexType}}]{ {{/isPrimitiveType}} {{#isContainer}} {{#isListContainer}}list({{#items}}{{dataType}}{{/items}}){{/isListContainer}}{{#isMapContainer}}named list({{#items}}{{dataType}}{{/items}}){{/isMapContainer}} {{/isContainer}}{{^isContainer}}{{dataType}}{{/isContainer}} {{^isPrimitiveType}} } {{/isPrimitiveType}} {{^required}}[optional]{{/required}}
+#'
{{/vars}}
#'
#' @importFrom R6 R6Class
diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache
index fc160bb14b9..8711fc7e59a 100644
--- a/modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache
+++ b/modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache
@@ -31,7 +31,7 @@ export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
export function {{classname}}FromJSON(json: any): {{classname}} {
{{#hasVars}}
return {
- {{#allVars}}
+ {{#vars}}
{{#isPrimitiveType}}
{{#isDate}}
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}new Date(json['{{baseName}}']),
@@ -63,7 +63,7 @@ export function {{classname}}FromJSON(json: any): {{classname}} {
{{/isMapContainer}}
{{/isListContainer}}
{{/isPrimitiveType}}
- {{/allVars}}
+ {{/vars}}
};
{{/hasVars}}
{{^hasVars}}
@@ -77,7 +77,7 @@ export function {{classname}}ToJSON(value?: {{classname}}): any {
return undefined;
}
return {
- {{#allVars}}
+ {{#vars}}
{{^isReadOnly}}
{{#isPrimitiveType}}
'{{baseName}}': {{#isDate}}{{^required}}value.{{name}} === undefined ? undefined : {{/required}}value.{{name}}.toISOString().substr(0,10){{/isDate}}{{#isDateTime}}{{^required}}value.{{name}} === undefined ? undefined : {{/required}}value.{{name}}.toISOString(){{/isDateTime}}{{^isDate}}{{^isDateTime}}value.{{name}}{{/isDateTime}}{{/isDate}},
@@ -101,7 +101,7 @@ export function {{classname}}ToJSON(value?: {{classname}}): any {
{{/isListContainer}}
{{/isPrimitiveType}}
{{/isReadOnly}}
- {{/allVars}}
+ {{/vars}}
};
{{/hasVars}}
{{^hasVars}}
diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache
index 19f893b62d3..b426f80ab0f 100644
--- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache
+++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache
@@ -107,7 +107,7 @@ export class BaseAPI {
return of(params).pipe(
map((args) => {
if (preMiddlewares) {
- preMiddlewares.forEach((mw) => (args = mw.pre({ ...args })));
+ preMiddlewares.forEach((mw) => (args = mw.pre!({ ...args })));
}
return args;
}),
@@ -115,7 +115,7 @@ export class BaseAPI {
ajax({ url: args.url, ...args.options }).pipe(
map((response) => {
if (postMiddlewares) {
- postMiddlewares.forEach((mw) => (response = mw.post({ ...params, response })));
+ postMiddlewares.forEach((mw) => (response = mw.post!({ ...params, response })));
}
return response;
})
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
index b8b3a717905..a95b6f106b1 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
@@ -189,6 +189,7 @@ public class DefaultCodegenTest {
@Test
public void testArraySchemaIsNotIncluedInAliases() throws Exception {
+ final DefaultCodegen codegen = new DefaultCodegen();
Map schemas = new HashMap() {
{
put("ArraySchemaTest", new ArraySchema());
@@ -196,7 +197,7 @@ public class DefaultCodegenTest {
};
- Map aliases = DefaultCodegen.getAllAliases(schemas);
+ Map aliases = codegen.getAllAliases(schemas);
Assert.assertEquals(aliases.size(), 0);
}
@@ -582,7 +583,7 @@ public class DefaultCodegenTest {
test.setPropertyName("DollarUnderscoretype");
test.setMapping(new HashMap<>());
test.getMapping().put("a", "#/components/schemas/Adult");
- test.getMapping().put("c", "#/components/schemas/Child");
+ test.getMapping().put("c", "Child");
test.getMappedModels().add(new CodegenDiscriminator.MappedModel("a", "Adult"));
test.getMappedModels().add(new CodegenDiscriminator.MappedModel("c", "Child"));
Assert.assertEquals(discriminator, test);
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/elm/ElmClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/elm/ElmClientCodegenTest.java
new file mode 100644
index 00000000000..5bc8904073d
--- /dev/null
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/elm/ElmClientCodegenTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2019 OpenAPI-Generator Contributors (https://openapi-generator.tech)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openapitools.codegen.elm;
+
+import static com.google.common.collect.Lists.newArrayList;
+import static java.util.Collections.emptyList;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.openapitools.codegen.ClientOptInput;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.MockDefaultGenerator;
+import org.openapitools.codegen.languages.ElmClientCodegen;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableMap;
+
+import io.swagger.parser.OpenAPIParser;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.parser.core.models.ParseOptions;
+
+public class ElmClientCodegenTest {
+
+ @Test
+ public void testPostProcessRootEndpoint() {
+ // given
+ final ElmClientCodegen codegen = new ElmClientCodegen();
+
+ CodegenOperation rootOp = new CodegenOperation() {{ path = "/"; }};
+ List ops = newArrayList(rootOp);
+
+ Map operations = new HashMap<>();
+ operations.put("operations", ImmutableMap
+ .builder()
+ .put("operation", ops)
+ .build());
+
+ // when
+ Map result = codegen.postProcessOperationsWithModels(operations, emptyList());
+
+ // then
+ assertEquals(result.size(), 2);
+ assertTrue(result.containsKey("operations"));
+ assertTrue(result.containsKey("elmImports"));
+
+ assertEquals(rootOp.path, "\"\"");
+ }
+
+ @Test
+ public void testGenerateRootEndpoint() throws IOException {
+ // given
+ File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
+ output.deleteOnExit();
+ String outputPath = output.getAbsolutePath().replace('\\', '/');
+
+ final ElmClientCodegen codegen = new ElmClientCodegen();
+ codegen.setOutputDir(output.getAbsolutePath());
+
+ OpenAPI openAPI = new OpenAPIParser()
+ .readLocation("src/test/resources/3_0/rootOperation.yaml", null, new ParseOptions())
+ .getOpenAPI();
+
+ ClientOptInput input = new ClientOptInput();
+ input.setOpenAPI(openAPI);
+ input.setConfig(codegen);
+
+ // when
+ MockDefaultGenerator generator = new MockDefaultGenerator();
+ generator.opts(input).generate();
+
+ // then
+ assertFileContains(generator, outputPath + "/src/Request/Default.elm", "rootGet", "[\"\"]");
+ }
+
+ private static void assertFileContains(MockDefaultGenerator generator, String file, String... expected) {
+ String content = generator.getFiles().get(file);
+ assertNotNull(content, "The file \"" + file + "\" was not generated");
+ for (String line : expected) {
+ assertTrue(content.contains(line), "The file \"" + file + "\" does not contain \"" + line + "\"");
+ }
+ }
+}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellservant/HaskellServantCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellservant/HaskellServantCodegenTest.java
new file mode 100644
index 00000000000..f4f0591e3e0
--- /dev/null
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellservant/HaskellServantCodegenTest.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2019 OpenAPI-Generator Contributors (https://openapi-generator.tech)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openapitools.codegen.haskellservant;
+
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.Arrays;
+
+import org.openapitools.codegen.ClientOptInput;
+import org.openapitools.codegen.MockDefaultGenerator;
+import org.openapitools.codegen.languages.HaskellServantCodegen;
+import org.testng.annotations.Test;
+
+import io.swagger.parser.OpenAPIParser;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.parser.core.models.ParseOptions;
+
+public class HaskellServantCodegenTest {
+
+ @Test
+ public void testGenerateRootEndpoint() throws IOException {
+ // given
+ File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
+ output.deleteOnExit();
+ String outputPath = output.getAbsolutePath().replace('\\', '/');
+
+ final HaskellServantCodegen codegen = new HaskellServantCodegen();
+ codegen.setOutputDir(output.getAbsolutePath());
+
+ OpenAPI openAPI = new OpenAPIParser()
+ .readLocation("src/test/resources/3_0/rootOperation.yaml", null, new ParseOptions())
+ .getOpenAPI();
+
+ ClientOptInput input = new ClientOptInput();
+ input.setOpenAPI(openAPI);
+ input.setConfig(codegen);
+
+ // when
+ MockDefaultGenerator generator = new MockDefaultGenerator();
+ generator.opts(input).generate();
+
+ // then
+ assertFileNotContains(generator, outputPath + "/lib/RootOperation/API.hs", "\"\" :>");
+ }
+
+ private static void assertFileNotContains(MockDefaultGenerator generator, String file, String... expected) {
+ String content = generator.getFiles().get(file);
+ assertNotNull(content, "The file \"" + file + "\" was not generated");
+ for (String line : expected) {
+ assertFalse(content.contains(line), "The file \"" + file + "\" contains \"" + line + "\"");
+ }
+ }
+}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java
index a611aa8b1a9..4fa35f9675a 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java
@@ -66,6 +66,7 @@ public class SpringCodegenTest {
Assert.assertEquals(codegen.getConfigPackage(), "org.openapitools.configuration");
Assert.assertEquals(codegen.additionalProperties().get(SpringCodegen.CONFIG_PACKAGE), "org.openapitools.configuration");
Assert.assertEquals(codegen.additionalProperties().get(SpringCodegen.SERVER_PORT), "8082");
+ Assert.assertEquals(codegen.additionalProperties().get(SpringCodegen.UNHANDLED_EXCEPTION_HANDLING), false);
}
@Test
@@ -77,6 +78,7 @@ public class SpringCodegenTest {
codegen.setInvokerPackage("xx.yyyyyyyy.invoker");
codegen.setBasePackage("xx.yyyyyyyy.base");
codegen.setConfigPackage("xx.yyyyyyyy.config");
+ codegen.setUnhandledException(true);
codegen.processOpts();
Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.TRUE);
@@ -91,6 +93,8 @@ public class SpringCodegenTest {
Assert.assertEquals(codegen.additionalProperties().get(SpringCodegen.BASE_PACKAGE), "xx.yyyyyyyy.base");
Assert.assertEquals(codegen.getConfigPackage(), "xx.yyyyyyyy.config");
Assert.assertEquals(codegen.additionalProperties().get(SpringCodegen.CONFIG_PACKAGE), "xx.yyyyyyyy.config");
+ Assert.assertEquals(codegen.isUnhandledException(), true);
+ Assert.assertEquals(codegen.additionalProperties().get(SpringCodegen.UNHANDLED_EXCEPTION_HANDLING), true);
}
@Test
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java
index 34532c35ad4..4f428705a19 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java
@@ -37,7 +37,7 @@ public class ModelUtilsTest {
public void testGetAllUsedSchemas() {
final OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/unusedSchemas.yaml");
List allUsedSchemas = ModelUtils.getAllUsedSchemas(openAPI);
- Assert.assertEquals(allUsedSchemas.size(), 34);
+ Assert.assertEquals(allUsedSchemas.size(), 38);
Assert.assertTrue(allUsedSchemas.contains("SomeObjShared"), "contains 'SomeObjShared'");
Assert.assertTrue(allUsedSchemas.contains("SomeObj1"), "contains 'UnusedObj1'");
@@ -73,6 +73,10 @@ public class ModelUtilsTest {
Assert.assertTrue(allUsedSchemas.contains("SOutput22"), "contains 'SInput22'");
Assert.assertTrue(allUsedSchemas.contains("SomeHeader23"), "contains 'SomeHeader23'");
Assert.assertTrue(allUsedSchemas.contains("SomeHeader24"), "contains 'SomeHeader24'");
+ Assert.assertTrue(allUsedSchemas.contains("SomeObj25"), "contains 'SomeObj25'");
+ Assert.assertTrue(allUsedSchemas.contains("SomeObj26"), "contains 'SomeObj26'");
+ Assert.assertTrue(allUsedSchemas.contains("Param27"), "contains 'Param27'");
+ Assert.assertTrue(allUsedSchemas.contains("Param28"), "contains 'Param28'");
}
@Test
diff --git a/modules/openapi-generator/src/test/resources/2_0/python-client-experimental/petstore-with-fake-endpoints-models-for-testing.yaml b/modules/openapi-generator/src/test/resources/2_0/python-client-experimental/petstore-with-fake-endpoints-models-for-testing.yaml
new file mode 100644
index 00000000000..ed907f27854
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/2_0/python-client-experimental/petstore-with-fake-endpoints-models-for-testing.yaml
@@ -0,0 +1,1942 @@
+swagger: '2.0'
+info:
+ description: "This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\"
+ version: 1.0.0
+ title: OpenAPI Petstore
+ license:
+ name: Apache-2.0
+ url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
+host: petstore.swagger.io:80
+basePath: /v2
+tags:
+ - name: pet
+ description: Everything about your Pets
+ - name: store
+ description: Access to Petstore orders
+ - name: user
+ description: Operations about user
+schemes:
+ - http
+paths:
+ /pet:
+ post:
+ tags:
+ - pet
+ summary: Add a new pet to the store
+ description: ''
+ operationId: addPet
+ consumes:
+ - application/json
+ - application/xml
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: Pet object that needs to be added to the store
+ required: true
+ schema:
+ $ref: '#/definitions/Pet'
+ responses:
+ '200':
+ description: successful operation
+ '405':
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ put:
+ tags:
+ - pet
+ summary: Update an existing pet
+ description: ''
+ operationId: updatePet
+ consumes:
+ - application/json
+ - application/xml
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: Pet object that needs to be added to the store
+ required: true
+ schema:
+ $ref: '#/definitions/Pet'
+ responses:
+ '200':
+ description: successful operation
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Pet not found
+ '405':
+ description: Validation exception
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ /pet/findByStatus:
+ get:
+ tags:
+ - pet
+ summary: Finds Pets by status
+ description: Multiple status values can be provided with comma separated strings
+ operationId: findPetsByStatus
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: status
+ in: query
+ description: Status values that need to be considered for filter
+ required: true
+ type: array
+ items:
+ type: string
+ enum:
+ - available
+ - pending
+ - sold
+ default: available
+ collectionFormat: csv
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/Pet'
+ '400':
+ description: Invalid status value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ /pet/findByTags:
+ get:
+ tags:
+ - pet
+ summary: Finds Pets by tags
+ description: 'Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.'
+ operationId: findPetsByTags
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: tags
+ in: query
+ description: Tags to filter by
+ required: true
+ type: array
+ items:
+ type: string
+ collectionFormat: csv
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/Pet'
+ '400':
+ description: Invalid tag value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ deprecated: true
+ '/pet/{petId}':
+ get:
+ tags:
+ - pet
+ summary: Find pet by ID
+ description: Returns a single pet
+ operationId: getPetById
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet to return
+ required: true
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/Pet'
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Pet not found
+ security:
+ - api_key: []
+ post:
+ tags:
+ - pet
+ summary: Updates a pet in the store with form data
+ description: ''
+ operationId: updatePetWithForm
+ consumes:
+ - application/x-www-form-urlencoded
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet that needs to be updated
+ required: true
+ type: integer
+ format: int64
+ - name: name
+ in: formData
+ description: Updated name of the pet
+ required: false
+ type: string
+ - name: status
+ in: formData
+ description: Updated status of the pet
+ required: false
+ type: string
+ responses:
+ '405':
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ delete:
+ tags:
+ - pet
+ summary: Deletes a pet
+ description: ''
+ operationId: deletePet
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: api_key
+ in: header
+ required: false
+ type: string
+ - name: petId
+ in: path
+ description: Pet id to delete
+ required: true
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: successful operation
+ '400':
+ description: Invalid pet value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ '/pet/{petId}/uploadImage':
+ post:
+ tags:
+ - pet
+ summary: uploads an image
+ description: ''
+ operationId: uploadFile
+ consumes:
+ - multipart/form-data
+ produces:
+ - application/json
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet to update
+ required: true
+ type: integer
+ format: int64
+ - name: additionalMetadata
+ in: formData
+ description: Additional data to pass to server
+ required: false
+ type: string
+ - name: file
+ in: formData
+ description: file to upload
+ required: false
+ type: file
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/ApiResponse'
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ /store/inventory:
+ get:
+ tags:
+ - store
+ summary: Returns pet inventories by status
+ description: Returns a map of status codes to quantities
+ operationId: getInventory
+ produces:
+ - application/json
+ parameters: []
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: object
+ additionalProperties:
+ type: integer
+ format: int32
+ security:
+ - api_key: []
+ /store/order:
+ post:
+ tags:
+ - store
+ summary: Place an order for a pet
+ description: ''
+ operationId: placeOrder
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: order placed for purchasing the pet
+ required: true
+ schema:
+ $ref: '#/definitions/Order'
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/Order'
+ '400':
+ description: Invalid Order
+ '/store/order/{order_id}':
+ get:
+ tags:
+ - store
+ summary: Find purchase order by ID
+ description: 'For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions'
+ operationId: getOrderById
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: order_id
+ in: path
+ description: ID of pet that needs to be fetched
+ required: true
+ type: integer
+ maximum: 5
+ minimum: 1
+ format: int64
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/Order'
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Order not found
+ delete:
+ tags:
+ - store
+ summary: Delete purchase order by ID
+ description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+ operationId: deleteOrder
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: order_id
+ in: path
+ description: ID of the order that needs to be deleted
+ required: true
+ type: string
+ responses:
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Order not found
+ /user:
+ post:
+ tags:
+ - user
+ summary: Create user
+ description: This can only be done by the logged in user.
+ operationId: createUser
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: Created user object
+ required: true
+ schema:
+ $ref: '#/definitions/User'
+ responses:
+ default:
+ description: successful operation
+ /user/createWithArray:
+ post:
+ tags:
+ - user
+ summary: Creates list of users with given input array
+ description: ''
+ operationId: createUsersWithArrayInput
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: List of user object
+ required: true
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/User'
+ responses:
+ default:
+ description: successful operation
+ /user/createWithList:
+ post:
+ tags:
+ - user
+ summary: Creates list of users with given input array
+ description: ''
+ operationId: createUsersWithListInput
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: List of user object
+ required: true
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/User'
+ responses:
+ default:
+ description: successful operation
+ /user/login:
+ get:
+ tags:
+ - user
+ summary: Logs user into the system
+ description: ''
+ operationId: loginUser
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: username
+ in: query
+ description: The user name for login
+ required: true
+ type: string
+ - name: password
+ in: query
+ description: The password for login in clear text
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: string
+ headers:
+ X-Rate-Limit:
+ type: integer
+ format: int32
+ description: calls per hour allowed by the user
+ X-Expires-After:
+ type: string
+ format: date-time
+ description: date in UTC when token expires
+ '400':
+ description: Invalid username/password supplied
+ /user/logout:
+ get:
+ tags:
+ - user
+ summary: Logs out current logged in user session
+ description: ''
+ operationId: logoutUser
+ produces:
+ - application/xml
+ - application/json
+ parameters: []
+ responses:
+ default:
+ description: successful operation
+ '/user/{username}':
+ get:
+ tags:
+ - user
+ summary: Get user by user name
+ description: ''
+ operationId: getUserByName
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: username
+ in: path
+ description: 'The name that needs to be fetched. Use user1 for testing.'
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/User'
+ '400':
+ description: Invalid username supplied
+ '404':
+ description: User not found
+ put:
+ tags:
+ - user
+ summary: Updated user
+ description: This can only be done by the logged in user.
+ operationId: updateUser
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: username
+ in: path
+ description: name that need to be deleted
+ required: true
+ type: string
+ - in: body
+ name: body
+ description: Updated user object
+ required: true
+ schema:
+ $ref: '#/definitions/User'
+ responses:
+ '400':
+ description: Invalid user supplied
+ '404':
+ description: User not found
+ delete:
+ tags:
+ - user
+ summary: Delete user
+ description: This can only be done by the logged in user.
+ operationId: deleteUser
+ produces:
+ - application/xml
+ - application/json
+ parameters:
+ - name: username
+ in: path
+ description: The name that needs to be deleted
+ required: true
+ type: string
+ responses:
+ '400':
+ description: Invalid username supplied
+ '404':
+ description: User not found
+
+ /fake_classname_test:
+ patch:
+ tags:
+ - "fake_classname_tags 123#$%^"
+ summary: To test class name in snake case
+ description: To test class name in snake case
+ operationId: testClassname
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: client model
+ required: true
+ schema:
+ $ref: '#/definitions/Client'
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/Client'
+ security:
+ - api_key_query: []
+ /fake:
+ patch:
+ tags:
+ - fake
+ summary: To test "client" model
+ description: To test "client" model
+ operationId: testClientModel
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: client model
+ required: true
+ schema:
+ $ref: '#/definitions/Client'
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/Client'
+ get:
+ tags:
+ - fake
+ summary: To test enum parameters
+ description: To test enum parameters
+ operationId: testEnumParameters
+ consumes:
+ - "application/x-www-form-urlencoded"
+ parameters:
+ - name: enum_form_string_array
+ type: array
+ items:
+ type: string
+ default: '$'
+ enum:
+ - '>'
+ - '$'
+ in: formData
+ description: Form parameter enum test (string array)
+ - name: enum_form_string
+ type: string
+ default: '-efg'
+ enum:
+ - _abc
+ - '-efg'
+ - (xyz)
+ in: formData
+ description: Form parameter enum test (string)
+ - name: enum_header_string_array
+ type: array
+ items:
+ type: string
+ default: '$'
+ enum:
+ - '>'
+ - '$'
+ in: header
+ description: Header parameter enum test (string array)
+ - name: enum_header_string
+ type: string
+ default: '-efg'
+ enum:
+ - _abc
+ - '-efg'
+ - (xyz)
+ in: header
+ description: Header parameter enum test (string)
+ - name: enum_query_string_array
+ type: array
+ items:
+ type: string
+ default: '$'
+ enum:
+ - '>'
+ - '$'
+ in: query
+ description: Query parameter enum test (string array)
+ - name: enum_query_string
+ type: string
+ default: '-efg'
+ enum:
+ - _abc
+ - '-efg'
+ - (xyz)
+ in: query
+ description: Query parameter enum test (string)
+ - name: enum_query_integer
+ type: integer
+ format: int32
+ enum:
+ - 1
+ - -2
+ in: query
+ description: Query parameter enum test (double)
+ - name: enum_query_double
+ type: number
+ format: double
+ enum:
+ - 1.1
+ - -1.2
+ in: query
+ description: Query parameter enum test (double)
+ responses:
+ '400':
+ description: Invalid request
+ '404':
+ description: Not found
+ post:
+ tags:
+ - fake
+ summary: |
+ Fake endpoint for testing various parameters
+ 假端點
+ 偽のエンドポイント
+ 가짜 엔드 포인트
+ description: |
+ Fake endpoint for testing various parameters
+ 假端點
+ 偽のエンドポイント
+ 가짜 엔드 포인트
+ operationId: testEndpointParameters
+ consumes:
+ - application/x-www-form-urlencoded
+ parameters:
+ - name: integer
+ type: integer
+ maximum: 100
+ minimum: 10
+ in: formData
+ description: None
+ - name: int32
+ type: integer
+ format: int32
+ maximum: 200
+ minimum: 20
+ in: formData
+ description: None
+ - name: int64
+ type: integer
+ format: int64
+ in: formData
+ description: None
+ - name: number
+ type: number
+ maximum: 543.2
+ minimum: 32.1
+ in: formData
+ description: None
+ required: true
+ - name: float
+ type: number
+ format: float
+ maximum: 987.6
+ in: formData
+ description: None
+ - name: double
+ type: number
+ in: formData
+ format: double
+ maximum: 123.4
+ minimum: 67.8
+ required: true
+ description: None
+ - name: string
+ type: string
+ pattern: /[a-z]/i
+ in: formData
+ description: None
+ - name: pattern_without_delimiter
+ type: string
+ pattern: "^[A-Z].*"
+ in: formData
+ description: None
+ required: true
+ - name: byte
+ type: string
+ format: byte
+ in: formData
+ description: None
+ required: true
+ - name: binary
+ type: string
+ format: binary
+ in: formData
+ description: None
+ - name: date
+ type: string
+ format: date
+ in: formData
+ description: None
+ - name: dateTime
+ type: string
+ format: date-time
+ in: formData
+ description: None
+ - name: password
+ type: string
+ format: password
+ maxLength: 64
+ minLength: 10
+ in: formData
+ description: None
+ - name: callback
+ type: string
+ in: formData
+ description: None
+ responses:
+ '400':
+ description: Invalid username supplied
+ '404':
+ description: User not found
+ security:
+ - http_basic_test: []
+ delete:
+ tags:
+ - fake
+ summary: Fake endpoint to test group parameters (optional)
+ description: Fake endpoint to test group parameters (optional)
+ operationId: testGroupParameters
+ x-group-parameters: true
+ parameters:
+ - name: required_string_group
+ type: integer
+ in: query
+ description: Required String in group parameters
+ required: true
+ - name: required_boolean_group
+ type: boolean
+ in: header
+ description: Required Boolean in group parameters
+ required: true
+ - name: required_int64_group
+ type: integer
+ format: int64
+ in: query
+ description: Required Integer in group parameters
+ required: true
+ - name: string_group
+ type: integer
+ in: query
+ description: String in group parameters
+ - name: boolean_group
+ type: boolean
+ in: header
+ description: Boolean in group parameters
+ - name: int64_group
+ type: integer
+ format: int64
+ in: query
+ description: Integer in group parameters
+ responses:
+ '400':
+ description: Someting wrong
+ /fake/outer/number:
+ post:
+ tags:
+ - fake
+ description: Test serialization of outer number types
+ operationId: fakeOuterNumberSerialize
+ parameters:
+ - name: body
+ in: body
+ description: Input number as post body
+ schema:
+ $ref: '#/definitions/OuterNumber'
+ responses:
+ '200':
+ description: Output number
+ schema:
+ $ref: '#/definitions/OuterNumber'
+ /fake/outer/string:
+ post:
+ tags:
+ - fake
+ description: Test serialization of outer string types
+ operationId: fakeOuterStringSerialize
+ parameters:
+ - name: body
+ in: body
+ description: Input string as post body
+ schema:
+ $ref: '#/definitions/OuterString'
+ responses:
+ '200':
+ description: Output string
+ schema:
+ $ref: '#/definitions/OuterString'
+ /fake/outer/boolean:
+ post:
+ tags:
+ - fake
+ description: Test serialization of outer boolean types
+ operationId: fakeOuterBooleanSerialize
+ parameters:
+ - name: body
+ in: body
+ description: Input boolean as post body
+ schema:
+ $ref: '#/definitions/OuterBoolean'
+ responses:
+ '200':
+ description: Output boolean
+ schema:
+ $ref: '#/definitions/OuterBoolean'
+ /fake/outer/composite:
+ post:
+ tags:
+ - fake
+ description: Test serialization of object with outer number type
+ operationId: fakeOuterCompositeSerialize
+ parameters:
+ - name: body
+ in: body
+ description: Input composite as post body
+ schema:
+ $ref: '#/definitions/OuterComposite'
+ responses:
+ '200':
+ description: Output composite
+ schema:
+ $ref: '#/definitions/OuterComposite'
+ /fake/jsonFormData:
+ get:
+ tags:
+ - fake
+ summary: test json serialization of form data
+ description: ''
+ operationId: testJsonFormData
+ consumes:
+ - application/x-www-form-urlencoded
+ parameters:
+ - name: param
+ in: formData
+ description: field1
+ required: true
+ type: string
+ - name: param2
+ in: formData
+ description: field2
+ required: true
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ /fake/inline-additionalProperties:
+ post:
+ tags:
+ - fake
+ summary: test inline additionalProperties
+ description: ''
+ operationId: testInlineAdditionalProperties
+ consumes:
+ - application/json
+ parameters:
+ - name: param
+ in: body
+ description: request body
+ required: true
+ schema:
+ type: object
+ additionalProperties:
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ /fake/body-with-query-params:
+ put:
+ tags:
+ - fake
+ operationId: testBodyWithQueryParams
+ parameters:
+ - name: body
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/User'
+ - name: query
+ in: query
+ required: true
+ type: string
+ consumes:
+ - application/json
+ responses:
+ '200':
+ description: Success
+ /fake/create_xml_item:
+ post:
+ tags:
+ - fake
+ operationId: createXmlItem
+ summary: creates an XmlItem
+ description: this route creates an XmlItem
+ consumes:
+ - 'application/xml'
+ - 'application/xml; charset=utf-8'
+ - 'application/xml; charset=utf-16'
+ - 'text/xml'
+ - 'text/xml; charset=utf-8'
+ - 'text/xml; charset=utf-16'
+ produces:
+ - 'application/xml'
+ - 'application/xml; charset=utf-8'
+ - 'application/xml; charset=utf-16'
+ - 'text/xml'
+ - 'text/xml; charset=utf-8'
+ - 'text/xml; charset=utf-16'
+ parameters:
+ - in: body
+ name: XmlItem
+ description: XmlItem Body
+ required: true
+ schema:
+ $ref: '#/definitions/XmlItem'
+ responses:
+ 200:
+ description: successful operation
+ /another-fake/dummy:
+ patch:
+ tags:
+ - "$another-fake?"
+ summary: To test special tags
+ description: To test special tags and operation ID starting with number
+ operationId: 123_test_@#$%_special_tags
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - in: body
+ name: body
+ description: client model
+ required: true
+ schema:
+ $ref: '#/definitions/Client'
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/Client'
+ /fake/body-with-file-schema:
+ put:
+ tags:
+ - fake
+ description: 'For this test, the body for this request much reference a schema named `File`.'
+ operationId: testBodyWithFileSchema
+ parameters:
+ - name: body
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/FileSchemaTestClass'
+ consumes:
+ - application/json
+ responses:
+ '200':
+ description: Success
+ '/fake/{petId}/uploadImageWithRequiredFile':
+ post:
+ tags:
+ - pet
+ summary: uploads an image (required)
+ description: ''
+ operationId: uploadFileWithRequiredFile
+ consumes:
+ - multipart/form-data
+ produces:
+ - application/json
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet to update
+ required: true
+ type: integer
+ format: int64
+ - name: additionalMetadata
+ in: formData
+ description: Additional data to pass to server
+ required: false
+ type: string
+ - name: requiredFile
+ in: formData
+ description: file to upload
+ required: true
+ type: file
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ $ref: '#/definitions/ApiResponse'
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+securityDefinitions:
+ petstore_auth:
+ type: oauth2
+ authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog'
+ flow: implicit
+ scopes:
+ 'write:pets': modify pets in your account
+ 'read:pets': read your pets
+ api_key:
+ type: apiKey
+ name: api_key
+ in: header
+ api_key_query:
+ type: apiKey
+ name: api_key_query
+ in: query
+ http_basic_test:
+ type: basic
+definitions:
+ Order:
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ petId:
+ type: integer
+ format: int64
+ quantity:
+ type: integer
+ format: int32
+ shipDate:
+ type: string
+ format: date-time
+ status:
+ type: string
+ description: Order Status
+ enum:
+ - placed
+ - approved
+ - delivered
+ complete:
+ type: boolean
+ default: false
+ xml:
+ name: Order
+ Category:
+ type: object
+ required:
+ - name
+ properties:
+ id:
+ type: integer
+ format: int64
+ name:
+ type: string
+ default: default-name
+ xml:
+ name: Category
+ User:
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ x-is-unique: true
+ username:
+ type: string
+ firstName:
+ type: string
+ lastName:
+ type: string
+ email:
+ type: string
+ password:
+ type: string
+ phone:
+ type: string
+ userStatus:
+ type: integer
+ format: int32
+ description: User Status
+ xml:
+ name: User
+ Tag:
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ name:
+ type: string
+ xml:
+ name: Tag
+ Pet:
+ type: object
+ required:
+ - name
+ - photoUrls
+ properties:
+ id:
+ type: integer
+ format: int64
+ x-is-unique: true
+ category:
+ $ref: '#/definitions/Category'
+ name:
+ type: string
+ example: doggie
+ photoUrls:
+ type: array
+ xml:
+ name: photoUrl
+ wrapped: true
+ items:
+ type: string
+ tags:
+ type: array
+ xml:
+ name: tag
+ wrapped: true
+ items:
+ $ref: '#/definitions/Tag'
+ status:
+ type: string
+ description: pet status in the store
+ enum:
+ - available
+ - pending
+ - sold
+ xml:
+ name: Pet
+ ApiResponse:
+ type: object
+ properties:
+ code:
+ type: integer
+ format: int32
+ type:
+ type: string
+ message:
+ type: string
+ '$special[model.name]':
+ properties:
+ '$special[property.name]':
+ type: integer
+ format: int64
+ xml:
+ name: '$special[model.name]'
+ Return:
+ description: Model for testing reserved words
+ properties:
+ return:
+ type: integer
+ format: int32
+ xml:
+ name: Return
+ Name:
+ description: Model for testing model name same as property name
+ required:
+ - name
+ properties:
+ name:
+ type: integer
+ format: int32
+ snake_case:
+ readOnly: true
+ type: integer
+ format: int32
+ property:
+ type: string
+ 123Number:
+ type: integer
+ readOnly: true
+ xml:
+ name: Name
+ 200_response:
+ description: Model for testing model name starting with number
+ properties:
+ name:
+ type: integer
+ format: int32
+ class:
+ type: string
+ xml:
+ name: Name
+ ClassModel:
+ description: Model for testing model with "_class" property
+ properties:
+ _class:
+ type: string
+ Dog:
+ allOf:
+ - $ref: '#/definitions/Animal'
+ - type: object
+ properties:
+ breed:
+ type: string
+ Cat:
+ allOf:
+ - $ref: '#/definitions/Animal'
+ - type: object
+ properties:
+ declawed:
+ type: boolean
+ Animal:
+ type: object
+ discriminator: className
+ required:
+ - className
+ properties:
+ className:
+ type: string
+ color:
+ type: string
+ default: 'red'
+ AnimalFarm:
+ type: array
+ items:
+ $ref: '#/definitions/Animal'
+ format_test:
+ type: object
+ required:
+ - number
+ - byte
+ - date
+ - password
+ properties:
+ integer:
+ type: integer
+ maximum: 100
+ minimum: 10
+ int32:
+ type: integer
+ format: int32
+ maximum: 200
+ minimum: 20
+ int64:
+ type: integer
+ format: int64
+ number:
+ maximum: 543.2
+ minimum: 32.1
+ type: number
+ float:
+ type: number
+ format: float
+ maximum: 987.6
+ minimum: 54.3
+ double:
+ type: number
+ format: double
+ maximum: 123.4
+ minimum: 67.8
+ string:
+ type: string
+ pattern: /[a-z]/i
+ byte:
+ type: string
+ format: byte
+ binary:
+ type: string
+ format: binary
+ date:
+ type: string
+ format: date
+ dateTime:
+ type: string
+ format: date-time
+ uuid:
+ type: string
+ format: uuid
+ example: 72f98069-206d-4f12-9f12-3d1e525a8e84
+ password:
+ type: string
+ format: password
+ maxLength: 64
+ minLength: 10
+ EnumClass:
+ type: string
+ default: '-efg'
+ enum:
+ - _abc
+ - '-efg'
+ - (xyz)
+ Enum_Test:
+ type: object
+ required:
+ - enum_string_required
+ properties:
+ enum_string:
+ type: string
+ enum:
+ - UPPER
+ - lower
+ - ''
+ enum_string_required:
+ type: string
+ enum:
+ - UPPER
+ - lower
+ - ''
+ enum_integer:
+ type: integer
+ format: int32
+ enum:
+ - 1
+ - -1
+ enum_number:
+ type: number
+ format: double
+ enum:
+ - 1.1
+ - -1.2
+ outerEnum:
+ $ref: '#/definitions/OuterEnum'
+ AdditionalPropertiesClass:
+ type: object
+ properties:
+ map_string:
+ type: object
+ additionalProperties:
+ type: string
+ map_number:
+ type: object
+ additionalProperties:
+ type: number
+ map_integer:
+ type: object
+ additionalProperties:
+ type: integer
+ map_boolean:
+ type: object
+ additionalProperties:
+ type: boolean
+ map_array_integer:
+ type: object
+ additionalProperties:
+ type: array
+ items:
+ type: integer
+ map_array_anytype:
+ type: object
+ additionalProperties:
+ type: array
+ items:
+ type: object
+ map_map_string:
+ type: object
+ additionalProperties:
+ type: object
+ additionalProperties:
+ type: string
+ map_map_anytype:
+ type: object
+ additionalProperties:
+ type: object
+ additionalProperties:
+ type: object
+ anytype_1:
+ type: object
+ anytype_2: {}
+ anytype_3:
+ type: object
+ properties: {}
+ AdditionalPropertiesString:
+ type: object
+ properties:
+ name:
+ type: string
+ additionalProperties:
+ type: string
+ AdditionalPropertiesInteger:
+ type: object
+ properties:
+ name:
+ type: string
+ additionalProperties:
+ type: integer
+ AdditionalPropertiesNumber:
+ type: object
+ properties:
+ name:
+ type: string
+ additionalProperties:
+ type: number
+ AdditionalPropertiesBoolean:
+ type: object
+ properties:
+ name:
+ type: string
+ additionalProperties:
+ type: boolean
+ AdditionalPropertiesArray:
+ type: object
+ properties:
+ name:
+ type: string
+ additionalProperties:
+ type: array
+ items:
+ type: object
+ AdditionalPropertiesObject:
+ type: object
+ properties:
+ name:
+ type: string
+ additionalProperties:
+ type: object
+ additionalProperties:
+ type: object
+ AdditionalPropertiesAnyType:
+ type: object
+ properties:
+ name:
+ type: string
+ additionalProperties:
+ type: object
+ MixedPropertiesAndAdditionalPropertiesClass:
+ type: object
+ properties:
+ uuid:
+ type: string
+ format: uuid
+ dateTime:
+ type: string
+ format: date-time
+ map:
+ type: object
+ additionalProperties:
+ $ref: '#/definitions/Animal'
+ List:
+ type: object
+ properties:
+ 123-list:
+ type: string
+ Client:
+ type: object
+ properties:
+ client:
+ type: string
+ ReadOnlyFirst:
+ type: object
+ properties:
+ bar:
+ type: string
+ readOnly: true
+ baz:
+ type: string
+ hasOnlyReadOnly:
+ type: object
+ properties:
+ bar:
+ type: string
+ readOnly: true
+ foo:
+ type: string
+ readOnly: true
+ Capitalization:
+ type: object
+ properties:
+ smallCamel:
+ type: string
+ CapitalCamel:
+ type: string
+ small_Snake:
+ type: string
+ Capital_Snake:
+ type: string
+ SCA_ETH_Flow_Points:
+ type: string
+ ATT_NAME:
+ description: >
+ Name of the pet
+ type: string
+ MapTest:
+ type: object
+ properties:
+ map_map_of_string:
+ type: object
+ additionalProperties:
+ type: object
+ additionalProperties:
+ type: string
+ # comment out the following (map of map of enum) as many language not yet support this
+ #map_map_of_enum:
+ # type: object
+ # additionalProperties:
+ # type: object
+ # additionalProperties:
+ # type: string
+ # enum:
+ # - UPPER
+ # - lower
+ map_of_enum_string:
+ type: object
+ additionalProperties:
+ type: string
+ enum:
+ - UPPER
+ - lower
+ direct_map:
+ type: object
+ additionalProperties:
+ type: boolean
+ indirect_map:
+ $ref: "#/definitions/StringBooleanMap"
+ ArrayTest:
+ type: object
+ properties:
+ array_of_string:
+ type: array
+ items:
+ type: string
+ array_array_of_integer:
+ type: array
+ items:
+ type: array
+ items:
+ type: integer
+ format: int64
+ array_array_of_model:
+ type: array
+ items:
+ type: array
+ items:
+ $ref: '#/definitions/ReadOnlyFirst'
+ # commented out the below test case for array of enum for the time being
+ # as not all language can handle it
+ #array_of_enum:
+ # type: array
+ # items:
+ # type: string
+ # enum:
+ # - UPPER
+ # - lower
+ NumberOnly:
+ type: object
+ properties:
+ JustNumber:
+ type: number
+ ArrayOfNumberOnly:
+ type: object
+ properties:
+ ArrayNumber:
+ type: array
+ items:
+ type: number
+ ArrayOfArrayOfNumberOnly:
+ type: object
+ properties:
+ ArrayArrayNumber:
+ type: array
+ items:
+ type: array
+ items:
+ type: number
+ EnumArrays:
+ type: object
+ properties:
+ just_symbol:
+ type: string
+ enum:
+ - ">="
+ - "$"
+ array_enum:
+ type: array
+ items:
+ type: string
+ enum:
+ - fish
+ - crab
+ # comment out the following as 2d array of enum is not supported at the moment
+ #array_array_enum:
+ # type: array
+ # items:
+ # type: array
+ # items:
+ # type: string
+ # enum:
+ # - Cat
+ # - Dog
+ OuterEnum:
+ type: string
+ enum:
+ - "placed"
+ - "approved"
+ - "delivered"
+ OuterComposite:
+ type: object
+ properties:
+ my_number:
+ $ref: '#/definitions/OuterNumber'
+ my_string:
+ $ref: '#/definitions/OuterString'
+ my_boolean:
+ $ref: '#/definitions/OuterBoolean'
+ OuterNumber:
+ type: number
+ OuterString:
+ type: string
+ OuterBoolean:
+ type: boolean
+ x-codegen-body-parameter-name: boolean_post_body
+ StringBooleanMap:
+ additionalProperties:
+ type: boolean
+ FileSchemaTestClass:
+ type: object
+ properties:
+ file:
+ $ref: "#/definitions/File"
+ files:
+ type: array
+ items:
+ $ref: "#/definitions/File"
+ File:
+ type: object
+ description: 'Must be named `File` for test.'
+ properties:
+ sourceURI:
+ description: 'Test capitalization'
+ type: string
+ TypeHolderDefault:
+ type: object
+ required:
+ - string_item
+ - number_item
+ - integer_item
+ - bool_item
+ - array_item
+ properties:
+ string_item:
+ type: string
+ default: what
+ number_item:
+ type: number
+ default: 1.234
+ integer_item:
+ type: integer
+ default: -2
+ bool_item:
+ type: boolean
+ default: true
+ array_item:
+ type: array
+ items:
+ type: integer
+ default:
+ - 0
+ - 1
+ - 2
+ - 3
+ TypeHolderExample:
+ type: object
+ required:
+ - string_item
+ - number_item
+ - integer_item
+ - bool_item
+ - array_item
+ properties:
+ string_item:
+ type: string
+ example: what
+ number_item:
+ type: number
+ example: 1.234
+ integer_item:
+ type: integer
+ example: -2
+ bool_item:
+ type: boolean
+ example: true
+ array_item:
+ type: array
+ items:
+ type: integer
+ example:
+ - 0
+ - 1
+ - 2
+ - 3
+ XmlItem:
+ type: object
+ xml:
+ namespace: http://a.com/schema
+ prefix: pre
+ properties:
+ attribute_string:
+ type: string
+ example: string
+ xml:
+ attribute: true
+ attribute_number:
+ type: number
+ example: 1.234
+ xml:
+ attribute: true
+ attribute_integer:
+ type: integer
+ example: -2
+ xml:
+ attribute: true
+ attribute_boolean:
+ type: boolean
+ example: true
+ xml:
+ attribute: true
+ wrapped_array:
+ type: array
+ xml:
+ wrapped: true
+ items:
+ type: integer
+ name_string:
+ type: string
+ example: string
+ xml:
+ name: xml_name_string
+ name_number:
+ type: number
+ example: 1.234
+ xml:
+ name: xml_name_number
+ name_integer:
+ type: integer
+ example: -2
+ xml:
+ name: xml_name_integer
+ name_boolean:
+ type: boolean
+ example: true
+ xml:
+ name: xml_name_boolean
+ name_array:
+ type: array
+ items:
+ type: integer
+ xml:
+ name: xml_name_array_item
+ name_wrapped_array:
+ type: array
+ xml:
+ wrapped: true
+ name: xml_name_wrapped_array
+ items:
+ type: integer
+ xml:
+ name: xml_name_wrapped_array_item
+ prefix_string:
+ type: string
+ example: string
+ xml:
+ prefix: ab
+ prefix_number:
+ type: number
+ example: 1.234
+ xml:
+ prefix: cd
+ prefix_integer:
+ type: integer
+ example: -2
+ xml:
+ prefix: ef
+ prefix_boolean:
+ type: boolean
+ example: true
+ xml:
+ prefix: gh
+ prefix_array:
+ type: array
+ items:
+ type: integer
+ xml:
+ prefix: ij
+ prefix_wrapped_array:
+ type: array
+ xml:
+ wrapped: true
+ prefix: kl
+ items:
+ type: integer
+ xml:
+ prefix: mn
+ namespace_string:
+ type: string
+ example: string
+ xml:
+ namespace: http://a.com/schema
+ namespace_number:
+ type: number
+ example: 1.234
+ xml:
+ namespace: http://b.com/schema
+ namespace_integer:
+ type: integer
+ example: -2
+ xml:
+ namespace: http://c.com/schema
+ namespace_boolean:
+ type: boolean
+ example: true
+ xml:
+ namespace: http://d.com/schema
+ namespace_array:
+ type: array
+ items:
+ type: integer
+ xml:
+ namespace: http://e.com/schema
+ namespace_wrapped_array:
+ type: array
+ xml:
+ wrapped: true
+ namespace: http://f.com/schema
+ items:
+ type: integer
+ xml:
+ namespace: http://g.com/schema
+ prefix_ns_string:
+ type: string
+ example: string
+ xml:
+ namespace: http://a.com/schema
+ prefix: a
+ prefix_ns_number:
+ type: number
+ example: 1.234
+ xml:
+ namespace: http://b.com/schema
+ prefix: b
+ prefix_ns_integer:
+ type: integer
+ example: -2
+ xml:
+ namespace: http://c.com/schema
+ prefix: c
+ prefix_ns_boolean:
+ type: boolean
+ example: true
+ xml:
+ namespace: http://d.com/schema
+ prefix: d
+ prefix_ns_array:
+ type: array
+ items:
+ type: integer
+ xml:
+ namespace: http://e.com/schema
+ prefix: e
+ prefix_ns_wrapped_array:
+ type: array
+ xml:
+ wrapped: true
+ namespace: http://f.com/schema
+ prefix: f
+ items:
+ type: integer
+ xml:
+ namespace: http://g.com/schema
+ prefix: g
diff --git a/modules/openapi-generator/src/test/resources/3_0/allOf.yaml b/modules/openapi-generator/src/test/resources/3_0/allOf.yaml
index 6f01aeb80c9..4d781cb871a 100644
--- a/modules/openapi-generator/src/test/resources/3_0/allOf.yaml
+++ b/modules/openapi-generator/src/test/resources/3_0/allOf.yaml
@@ -32,7 +32,7 @@ components:
propertyName: $_type
mapping:
a: '#/components/schemas/Adult'
- c: '#/components/schemas/Child'
+ c: Child
properties:
$_type:
type: string
diff --git a/modules/openapi-generator/src/test/resources/3_0/rootOperation.yaml b/modules/openapi-generator/src/test/resources/3_0/rootOperation.yaml
new file mode 100644
index 00000000000..15004510a4f
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/3_0/rootOperation.yaml
@@ -0,0 +1,13 @@
+openapi: 3.0.0
+
+info:
+ title: Root Operation
+ version: 1.0.0
+
+paths:
+ /:
+ get:
+ summary: Simple root endpoint
+ responses:
+ 204:
+ description: No response body
diff --git a/modules/openapi-generator/src/test/resources/3_0/unusedSchemas.yaml b/modules/openapi-generator/src/test/resources/3_0/unusedSchemas.yaml
index 7b09f13004c..57027f58027 100644
--- a/modules/openapi-generator/src/test/resources/3_0/unusedSchemas.yaml
+++ b/modules/openapi-generator/src/test/resources/3_0/unusedSchemas.yaml
@@ -301,6 +301,57 @@ paths:
headers:
x-app-info:
$ref: "#/components/headers/sharedHeader24"
+ /some/p25:
+ post:
+ operationId: op25
+ parameters:
+ - name: q
+ in: query
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SomeObj25"
+ responses:
+ '200':
+ description: OK
+ /some/p26:
+ post:
+ operationId: op26
+ responses:
+ '200':
+ description: OK
+ headers:
+ x-something:
+ description: basic app info
+ style: simple
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SomeObj26"
+ /some/p27/{q}:
+ parameters:
+ - name: q
+ in: path
+ schema:
+ $ref: "#/components/schemas/Param27"
+ post:
+ operationId: op27
+ responses:
+ '200':
+ description: OK
+ /some/p28/{q}:
+ parameters:
+ - name: q
+ in: path
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Param28"
+ post:
+ operationId: op27
+ responses:
+ '200':
+ description: OK
components:
schemas:
UnusedObj1:
@@ -564,6 +615,32 @@ components:
SomeHeader24:
type: integer
format: int64
+ SomeObj25:
+ type: object
+ properties:
+ p1:
+ type: string
+ p2:
+ type: string
+ SomeObj26:
+ type: object
+ properties:
+ q1:
+ type: string
+ q2:
+ type: string
+ Param27:
+ type: string
+ enum:
+ - alpha
+ - beta
+ Param28:
+ type: object
+ properties:
+ r1:
+ type: string
+ r2:
+ type: string
SomeObjShared:
type: object
properties:
diff --git a/pom.xml b/pom.xml
index 1f023eaff61..d906fab3975 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1041,6 +1041,7 @@
samples/client/petstore/javascript-promise-es6
samples/client/petstore/javascript-flowtyped
samples/client/petstore/python
+ samples/client/petstore/python-experimental
samples/client/petstore/python-asyncio
samples/client/petstore/python-tornado
samples/openapi3/client/petstore/python
@@ -1063,8 +1064,8 @@
samples/server/petstore/rust-server
samples/server/petstore/python-aiohttp
- samples/server/petstore/python-flask
- samples/server/petstore/python-flask-python2
+
@@ -1080,6 +1081,7 @@
samples/client/petstore/go
+ samples/client/petstore/go-experimental
samples/client/petstore/scala-httpclient
@@ -1254,9 +1256,9 @@
samples/client/petstore/R
- samples/client/petstore/haskell-http-client
+
- samples/server/petstore/haskell-servant
+
diff --git a/samples/client/petstore/R/R/api_client.R b/samples/client/petstore/R/R/api_client.R
index ec5af87dd39..45396b84391 100644
--- a/samples/client/petstore/R/R/api_client.R
+++ b/samples/client/petstore/R/R/api_client.R
@@ -19,14 +19,19 @@
#' Ref: https://openapi-generator.tech
#' Do not edit the class manually.
#'
-#' @field basePath
-#' @field userAgent
+#' @docType class
+#' @title ApiClient
+#' @description ApiClient Class
+#' @format An \code{R6Class} generator object
+#' @field basePath Base url
+#' @field userAgent Default user agent
#' @field defaultHeaders
-#' @field username
-#' @field password
+#' @field username Username for HTTP basic authentication
+#' @field password Password for HTTP basic authentication
#' @field apiKeys
#' @field accessToken
-#' @importFrom httr
+#' @field timeout Default timeout in seconds
+#' @importFrom httr add_headers accept timeout content
#' @export
ApiClient <- R6::R6Class(
'ApiClient',
@@ -104,26 +109,37 @@ ApiClient <- R6::R6Class(
} else if (method == "DELETE") {
httr::DELETE(url, query = queryParams, headers, httpTimeout, httpTimeout, httr::user_agent(self$`userAgent`), ...)
} else {
- stop("http method must be `GET`, `HEAD`, `OPTIONS`, `POST`, `PATCH`, `PUT` or `DELETE`.")
+ errMsg <- "Http method must be `GET`, `HEAD`, `OPTIONS`, `POST`, `PATCH`, `PUT` or `DELETE`."
+ stop(errMsg)
}
},
+ # Deserialize the content of api response to the given type.
deserialize = function(resp, returnType, pkgEnv) {
respObj <- jsonlite::fromJSON(httr::content(resp, "text", encoding = "UTF-8"))
self$deserializeObj(respObj, returnType, pkgEnv)
},
+
+ # Deserialize the response from jsonlite object based on the given type
+ # by handling complex and nested types by iterating recursively
+ # Example returnTypes will be like "array[integer]", "map(Pet)", "array[map(Tag)]", etc.,
+
deserializeObj = function(obj, returnType, pkgEnv) {
returnObj <- NULL
primitiveTypes <- c("character", "numeric", "integer", "logical", "complex")
+ # To handle the "map" type
if (startsWith(returnType, "map(")) {
innerReturnType <- regmatches(returnType, regexec(pattern = "map\\((.*)\\)", returnType))[[1]][2]
returnObj <- lapply(names(obj), function(name) {
self$deserializeObj(obj[[name]], innerReturnType, pkgEnv)
})
names(returnObj) <- names(obj)
- } else if (startsWith(returnType, "array[")) {
+ }
+
+ # To handle the "array" type
+ else if (startsWith(returnType, "array[")) {
innerReturnType <- regmatches(returnType, regexec(pattern = "array\\[(.*)\\]", returnType))[[1]][2]
if (c(innerReturnType) %in% primitiveTypes) {
returnObj <- vector("list", length = length(obj))
@@ -140,11 +156,17 @@ ApiClient <- R6::R6Class(
}
}
}
- } else if (exists(returnType, pkgEnv) && !(c(returnType) %in% primitiveTypes)) {
+ }
+
+ # To handle model objects which are not array or map containers. Ex:"Pet"
+ else if (exists(returnType, pkgEnv) && !(c(returnType) %in% primitiveTypes)) {
returnType <- get(returnType, envir = as.environment(pkgEnv))
returnObj <- returnType$new()
returnObj$fromJSON(jsonlite::toJSON(obj, digits = NA))
- } else {
+ }
+
+ # To handle primitive type
+ else {
returnObj <- obj
}
returnObj
diff --git a/samples/client/petstore/R/R/api_response.R b/samples/client/petstore/R/R/api_response.R
index 3851ebbf9f0..28571b104a0 100644
--- a/samples/client/petstore/R/R/api_response.R
+++ b/samples/client/petstore/R/R/api_response.R
@@ -1,6 +1,9 @@
-#' ApiResponse Class
-#'
-#' ApiResponse Class
+#' @docType class
+#' @title ApiResponse
+#' @description ApiResponse Class
+#' @format An \code{R6Class} generator object
+#' @field content The deserialized response body.
+#' @field response The raw response from the endpoint.
#' @export
ApiResponse <- R6::R6Class(
'ApiResponse',
diff --git a/samples/client/petstore/R/R/category.R b/samples/client/petstore/R/R/category.R
index de662eaed4c..05d5d77cce3 100644
--- a/samples/client/petstore/R/R/category.R
+++ b/samples/client/petstore/R/R/category.R
@@ -6,11 +6,14 @@
#
# Generated by: https://openapi-generator.tech
-
-#' Category Class
+#' @docType class
+#' @title Category
+#' @description Category Class
+#' @format An \code{R6Class} generator object
+#' @field id integer [optional]
+#'
+#' @field name character [optional]
#'
-#' @field id
-#' @field name
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
diff --git a/samples/client/petstore/R/R/model_api_response.R b/samples/client/petstore/R/R/model_api_response.R
index 5985ed033c0..747dcc550a5 100644
--- a/samples/client/petstore/R/R/model_api_response.R
+++ b/samples/client/petstore/R/R/model_api_response.R
@@ -6,12 +6,16 @@
#
# Generated by: https://openapi-generator.tech
-
-#' ModelApiResponse Class
+#' @docType class
+#' @title ModelApiResponse
+#' @description ModelApiResponse Class
+#' @format An \code{R6Class} generator object
+#' @field code integer [optional]
+#'
+#' @field type character [optional]
+#'
+#' @field message character [optional]
#'
-#' @field code
-#' @field type
-#' @field message
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
diff --git a/samples/client/petstore/R/R/order.R b/samples/client/petstore/R/R/order.R
index 839db2951c4..4629dcfb715 100644
--- a/samples/client/petstore/R/R/order.R
+++ b/samples/client/petstore/R/R/order.R
@@ -6,15 +6,22 @@
#
# Generated by: https://openapi-generator.tech
-
-#' Order Class
+#' @docType class
+#' @title Order
+#' @description Order Class
+#' @format An \code{R6Class} generator object
+#' @field id integer [optional]
+#'
+#' @field petId integer [optional]
+#'
+#' @field quantity integer [optional]
+#'
+#' @field shipDate character [optional]
+#'
+#' @field status character [optional]
+#'
+#' @field complete character [optional]
#'
-#' @field id
-#' @field petId
-#' @field quantity
-#' @field shipDate
-#' @field status
-#' @field complete
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
diff --git a/samples/client/petstore/R/R/pet.R b/samples/client/petstore/R/R/pet.R
index 69c67d243d6..fd38160a957 100644
--- a/samples/client/petstore/R/R/pet.R
+++ b/samples/client/petstore/R/R/pet.R
@@ -6,15 +6,22 @@
#
# Generated by: https://openapi-generator.tech
-
-#' Pet Class
+#' @docType class
+#' @title Pet
+#' @description Pet Class
+#' @format An \code{R6Class} generator object
+#' @field id integer [optional]
+#'
+#' @field category \link[petstore:Category]{ Category } [optional]
+#'
+#' @field name character
+#'
+#' @field photoUrls list(character)
+#'
+#' @field tags \link[petstore:Tag]{ list(Tag) } [optional]
+#'
+#' @field status character [optional]
#'
-#' @field id
-#' @field category
-#' @field name
-#' @field photoUrls
-#' @field tags
-#' @field status
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
diff --git a/samples/client/petstore/R/R/pet_api.R b/samples/client/petstore/R/R/pet_api.R
index 6855f64ffdd..3bc7bfafb39 100644
--- a/samples/client/petstore/R/R/pet_api.R
+++ b/samples/client/petstore/R/R/pet_api.R
@@ -6,42 +6,317 @@
#
# Generated by: https://openapi-generator.tech
+#' @docType class
#' @title Pet operations
#' @description petstore.Pet
-#'
-#' @field path Stores url path of the request.
+#' @format An \code{R6Class} generator object
#' @field apiClient Handles the client-server communication.
#'
-#' @importFrom R6 R6Class
-#'
#' @section Methods:
#' \describe{
+#' \strong{ AddPet } \emph{ Add a new pet to the store }
+#'
#'
-#' AddPet Add a new pet to the store
+#' \itemize{
+#' \item \emph{ @param } body \link[petstore:Pet]{ Pet }
#'
#'
-#' DeletePet Deletes a pet
+#' \item status code : 405 | Invalid input
#'
#'
-#' FindPetsByStatus Finds Pets by status
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ DeletePet } \emph{ Deletes a pet }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } pet.id integer
+#' \item \emph{ @param } api.key character
#'
#'
-#' FindPetsByTags Finds Pets by tags
+#' \item status code : 400 | Invalid pet value
#'
#'
-#' GetPetById Find pet by ID
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ FindPetsByStatus } \emph{ Finds Pets by status }
+#' Multiple status values can be provided with comma separated strings
+#'
+#' \itemize{
+#' \item \emph{ @param } status Enum < [available, pending, sold] >
+#' \item \emph{ @returnType } \link[petstore:Pet]{ list(Pet) } \cr
#'
#'
-#' UpdatePet Update an existing pet
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : array[Pet]
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 400 | Invalid status value
#'
#'
-#' UpdatePetWithForm Updates a pet in the store with form data
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ FindPetsByTags } \emph{ Finds Pets by tags }
+#' Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+#'
+#' \itemize{
+#' \item \emph{ @param } tags list( character )
+#' \item \emph{ @returnType } \link[petstore:Pet]{ list(Pet) } \cr
#'
#'
-#' UploadFile uploads an image
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : array[Pet]
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 400 | Invalid tag value
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ GetPetById } \emph{ Find pet by ID }
+#' Returns a single pet
+#'
+#' \itemize{
+#' \item \emph{ @param } pet.id integer
+#' \item \emph{ @returnType } \link[petstore:Pet]{ Pet } \cr
+#'
+#'
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : Pet
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 400 | Invalid ID supplied
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 404 | Pet not found
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ UpdatePet } \emph{ Update an existing pet }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } body \link[petstore:Pet]{ Pet }
+#'
+#'
+#' \item status code : 400 | Invalid ID supplied
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 404 | Pet not found
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 405 | Validation exception
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ UpdatePetWithForm } \emph{ Updates a pet in the store with form data }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } pet.id integer
+#' \item \emph{ @param } name character
+#' \item \emph{ @param } status character
+#'
+#'
+#' \item status code : 405 | Invalid input
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ UploadFile } \emph{ uploads an image }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } pet.id integer
+#' \item \emph{ @param } additional.metadata character
+#' \item \emph{ @param } file data.frame
+#' \item \emph{ @returnType } \link[petstore:ApiResponse]{ ModelApiResponse } \cr
+#'
+#'
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : ModelApiResponse
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
#'
#' }
#'
+#'
+#' @examples
+#' \donttest{
+#' #################### AddPet ####################
+#'
+#' library(petstore)
+#' var.body <- Pet$new() # Pet | Pet object that needs to be added to the store
+#'
+#' #Add a new pet to the store
+#' api.instance <- PetApi$new()
+#'
+#' # Configure OAuth2 access token for authorization: petstore_auth
+#' api.instance$apiClient$accessToken <- 'TODO_YOUR_ACCESS_TOKEN';
+#'
+#' result <- api.instance$AddPet(var.body)
+#'
+#'
+#' #################### DeletePet ####################
+#'
+#' library(petstore)
+#' var.pet.id <- 56 # integer | Pet id to delete
+#' var.api.key <- 'api.key_example' # character |
+#'
+#' #Deletes a pet
+#' api.instance <- PetApi$new()
+#'
+#' # Configure OAuth2 access token for authorization: petstore_auth
+#' api.instance$apiClient$accessToken <- 'TODO_YOUR_ACCESS_TOKEN';
+#'
+#' result <- api.instance$DeletePet(var.pet.id, api.key=var.api.key)
+#'
+#'
+#' #################### FindPetsByStatus ####################
+#'
+#' library(petstore)
+#' var.status <- ['status_example'] # array[character] | Status values that need to be considered for filter
+#'
+#' #Finds Pets by status
+#' api.instance <- PetApi$new()
+#'
+#' # Configure OAuth2 access token for authorization: petstore_auth
+#' api.instance$apiClient$accessToken <- 'TODO_YOUR_ACCESS_TOKEN';
+#'
+#' result <- api.instance$FindPetsByStatus(var.status)
+#'
+#'
+#' #################### FindPetsByTags ####################
+#'
+#' library(petstore)
+#' var.tags <- ['tags_example'] # array[character] | Tags to filter by
+#'
+#' #Finds Pets by tags
+#' api.instance <- PetApi$new()
+#'
+#' # Configure OAuth2 access token for authorization: petstore_auth
+#' api.instance$apiClient$accessToken <- 'TODO_YOUR_ACCESS_TOKEN';
+#'
+#' result <- api.instance$FindPetsByTags(var.tags)
+#'
+#'
+#' #################### GetPetById ####################
+#'
+#' library(petstore)
+#' var.pet.id <- 56 # integer | ID of pet to return
+#'
+#' #Find pet by ID
+#' api.instance <- PetApi$new()
+#'
+#' #Configure API key authorization: api_key
+#' api.instance$apiClient$apiKeys['api_key'] <- 'TODO_YOUR_API_KEY';
+#'
+#' result <- api.instance$GetPetById(var.pet.id)
+#'
+#'
+#' #################### UpdatePet ####################
+#'
+#' library(petstore)
+#' var.body <- Pet$new() # Pet | Pet object that needs to be added to the store
+#'
+#' #Update an existing pet
+#' api.instance <- PetApi$new()
+#'
+#' # Configure OAuth2 access token for authorization: petstore_auth
+#' api.instance$apiClient$accessToken <- 'TODO_YOUR_ACCESS_TOKEN';
+#'
+#' result <- api.instance$UpdatePet(var.body)
+#'
+#'
+#' #################### UpdatePetWithForm ####################
+#'
+#' library(petstore)
+#' var.pet.id <- 56 # integer | ID of pet that needs to be updated
+#' var.name <- 'name_example' # character | Updated name of the pet
+#' var.status <- 'status_example' # character | Updated status of the pet
+#'
+#' #Updates a pet in the store with form data
+#' api.instance <- PetApi$new()
+#'
+#' # Configure OAuth2 access token for authorization: petstore_auth
+#' api.instance$apiClient$accessToken <- 'TODO_YOUR_ACCESS_TOKEN';
+#'
+#' result <- api.instance$UpdatePetWithForm(var.pet.id, name=var.name, status=var.status)
+#'
+#'
+#' #################### UploadFile ####################
+#'
+#' library(petstore)
+#' var.pet.id <- 56 # integer | ID of pet to update
+#' var.additional.metadata <- 'additional.metadata_example' # character | Additional data to pass to server
+#' var.file <- File.new('/path/to/file') # data.frame | file to upload
+#'
+#' #uploads an image
+#' api.instance <- PetApi$new()
+#'
+#' # Configure OAuth2 access token for authorization: petstore_auth
+#' api.instance$apiClient$accessToken <- 'TODO_YOUR_ACCESS_TOKEN';
+#'
+#' result <- api.instance$UploadFile(var.pet.id, additional.metadata=var.additional.metadata, file=var.file)
+#'
+#'
+#' }
+#' @importFrom R6 R6Class
#' @importFrom caTools base64encode
#' @export
PetApi <- R6::R6Class(
@@ -183,7 +458,12 @@ PetApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "array[Pet]", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "array[Pet]", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
@@ -226,7 +506,12 @@ PetApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "array[Pet]", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "array[Pet]", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
@@ -273,7 +558,12 @@ PetApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "Pet", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "Pet", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
@@ -418,7 +708,12 @@ PetApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "ModelApiResponse", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "ModelApiResponse", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
diff --git a/samples/client/petstore/R/R/store_api.R b/samples/client/petstore/R/R/store_api.R
index 6466a80e0f7..7e066a32e94 100644
--- a/samples/client/petstore/R/R/store_api.R
+++ b/samples/client/petstore/R/R/store_api.R
@@ -6,30 +6,160 @@
#
# Generated by: https://openapi-generator.tech
+#' @docType class
#' @title Store operations
#' @description petstore.Store
-#'
-#' @field path Stores url path of the request.
+#' @format An \code{R6Class} generator object
#' @field apiClient Handles the client-server communication.
#'
-#' @importFrom R6 R6Class
-#'
#' @section Methods:
#' \describe{
+#' \strong{ DeleteOrder } \emph{ Delete purchase order by ID }
+#' For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
#'
-#' DeleteOrder Delete purchase order by ID
+#' \itemize{
+#' \item \emph{ @param } order.id character
#'
#'
-#' GetInventory Returns pet inventories by status
+#' \item status code : 400 | Invalid ID supplied
#'
#'
-#' GetOrderById Find purchase order by ID
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 404 | Order not found
#'
#'
-#' PlaceOrder Place an order for a pet
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ GetInventory } \emph{ Returns pet inventories by status }
+#' Returns a map of status codes to quantities
+#'
+#' \itemize{
+#'
+#'
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : map(integer)
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ GetOrderById } \emph{ Find purchase order by ID }
+#' For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+#'
+#' \itemize{
+#' \item \emph{ @param } order.id integer
+#' \item \emph{ @returnType } \link[petstore:Order]{ Order } \cr
+#'
+#'
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : Order
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 400 | Invalid ID supplied
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 404 | Order not found
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ PlaceOrder } \emph{ Place an order for a pet }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } body \link[petstore:Order]{ Order }
+#' \item \emph{ @returnType } \link[petstore:Order]{ Order } \cr
+#'
+#'
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : Order
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 400 | Invalid Order
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
#'
#' }
#'
+#'
+#' @examples
+#' \donttest{
+#' #################### DeleteOrder ####################
+#'
+#' library(petstore)
+#' var.order.id <- 'order.id_example' # character | ID of the order that needs to be deleted
+#'
+#' #Delete purchase order by ID
+#' api.instance <- StoreApi$new()
+#'
+#' result <- api.instance$DeleteOrder(var.order.id)
+#'
+#'
+#' #################### GetInventory ####################
+#'
+#' library(petstore)
+#'
+#' #Returns pet inventories by status
+#' api.instance <- StoreApi$new()
+#'
+#' #Configure API key authorization: api_key
+#' api.instance$apiClient$apiKeys['api_key'] <- 'TODO_YOUR_API_KEY';
+#'
+#' result <- api.instance$GetInventory()
+#'
+#'
+#' #################### GetOrderById ####################
+#'
+#' library(petstore)
+#' var.order.id <- 56 # integer | ID of pet that needs to be fetched
+#'
+#' #Find purchase order by ID
+#' api.instance <- StoreApi$new()
+#'
+#' result <- api.instance$GetOrderById(var.order.id)
+#'
+#'
+#' #################### PlaceOrder ####################
+#'
+#' library(petstore)
+#' var.body <- Order$new() # Order | order placed for purchasing the pet
+#'
+#' #Place an order for a pet
+#' api.instance <- StoreApi$new()
+#'
+#' result <- api.instance$PlaceOrder(var.body)
+#'
+#'
+#' }
+#' @importFrom R6 R6Class
#' @importFrom caTools base64encode
#' @export
StoreApi <- R6::R6Class(
@@ -117,7 +247,12 @@ StoreApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "map(integer)", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "map(integer)", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
@@ -160,7 +295,12 @@ StoreApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "Order", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "Order", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
@@ -205,7 +345,12 @@ StoreApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "Order", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "Order", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
diff --git a/samples/client/petstore/R/R/tag.R b/samples/client/petstore/R/R/tag.R
index 279c43d59d4..7e60cb50c82 100644
--- a/samples/client/petstore/R/R/tag.R
+++ b/samples/client/petstore/R/R/tag.R
@@ -6,11 +6,14 @@
#
# Generated by: https://openapi-generator.tech
-
-#' Tag Class
+#' @docType class
+#' @title Tag
+#' @description Tag Class
+#' @format An \code{R6Class} generator object
+#' @field id integer [optional]
+#'
+#' @field name character [optional]
#'
-#' @field id
-#' @field name
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
diff --git a/samples/client/petstore/R/R/user.R b/samples/client/petstore/R/R/user.R
index 8377f5a68ef..a3967c84c93 100644
--- a/samples/client/petstore/R/R/user.R
+++ b/samples/client/petstore/R/R/user.R
@@ -6,17 +6,26 @@
#
# Generated by: https://openapi-generator.tech
-
-#' User Class
+#' @docType class
+#' @title User
+#' @description User Class
+#' @format An \code{R6Class} generator object
+#' @field id integer [optional]
+#'
+#' @field username character [optional]
+#'
+#' @field firstName character [optional]
+#'
+#' @field lastName character [optional]
+#'
+#' @field email character [optional]
+#'
+#' @field password character [optional]
+#'
+#' @field phone character [optional]
+#'
+#' @field userStatus integer [optional]
#'
-#' @field id
-#' @field username
-#' @field firstName
-#' @field lastName
-#' @field email
-#' @field password
-#' @field phone
-#' @field userStatus
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
diff --git a/samples/client/petstore/R/R/user_api.R b/samples/client/petstore/R/R/user_api.R
index 656e1acd683..b130324b346 100644
--- a/samples/client/petstore/R/R/user_api.R
+++ b/samples/client/petstore/R/R/user_api.R
@@ -6,42 +6,277 @@
#
# Generated by: https://openapi-generator.tech
+#' @docType class
#' @title User operations
#' @description petstore.User
-#'
-#' @field path Stores url path of the request.
+#' @format An \code{R6Class} generator object
#' @field apiClient Handles the client-server communication.
#'
-#' @importFrom R6 R6Class
-#'
#' @section Methods:
#' \describe{
+#' \strong{ CreateUser } \emph{ Create user }
+#' This can only be done by the logged in user.
#'
-#' CreateUser Create user
+#' \itemize{
+#' \item \emph{ @param } body \link[petstore:User]{ User }
#'
#'
-#' CreateUsersWithArrayInput Creates list of users with given input array
+#' \item status code : 0 | successful operation
#'
#'
-#' CreateUsersWithListInput Creates list of users with given input array
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ CreateUsersWithArrayInput } \emph{ Creates list of users with given input array }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } body list( \link[petstore:User]{ User } )
#'
#'
-#' DeleteUser Delete user
+#' \item status code : 0 | successful operation
#'
#'
-#' GetUserByName Get user by user name
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ CreateUsersWithListInput } \emph{ Creates list of users with given input array }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } body list( \link[petstore:User]{ User } )
#'
#'
-#' LoginUser Logs user into the system
+#' \item status code : 0 | successful operation
#'
#'
-#' LogoutUser Logs out current logged in user session
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ DeleteUser } \emph{ Delete user }
+#' This can only be done by the logged in user.
+#'
+#' \itemize{
+#' \item \emph{ @param } username character
#'
#'
-#' UpdateUser Updated user
+#' \item status code : 400 | Invalid username supplied
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 404 | User not found
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ GetUserByName } \emph{ Get user by user name }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } username character
+#' \item \emph{ @returnType } \link[petstore:User]{ User } \cr
+#'
+#'
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : User
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 400 | Invalid username supplied
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 404 | User not found
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ LoginUser } \emph{ Logs user into the system }
+#'
+#'
+#' \itemize{
+#' \item \emph{ @param } username character
+#' \item \emph{ @param } password character
+#'
+#'
+#' \item status code : 200 | successful operation
+#'
+#' \item return type : character
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' X-Rate-Limit \tab calls per hour allowed by the user \cr
+#' X-Expires-After \tab date in UTC when toekn expires \cr
+#' }
+#' \item status code : 400 | Invalid username/password supplied
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ LogoutUser } \emph{ Logs out current logged in user session }
+#'
+#'
+#' \itemize{
+#'
+#'
+#' \item status code : 0 | successful operation
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
+#'
+#' \strong{ UpdateUser } \emph{ Updated user }
+#' This can only be done by the logged in user.
+#'
+#' \itemize{
+#' \item \emph{ @param } username character
+#' \item \emph{ @param } body \link[petstore:User]{ User }
+#'
+#'
+#' \item status code : 400 | Invalid user supplied
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' \item status code : 404 | User not found
+#'
+#'
+#' \item response headers :
+#'
+#' \tabular{ll}{
+#' }
+#' }
#'
#' }
#'
+#'
+#' @examples
+#' \donttest{
+#' #################### CreateUser ####################
+#'
+#' library(petstore)
+#' var.body <- User$new() # User | Created user object
+#'
+#' #Create user
+#' api.instance <- UserApi$new()
+#'
+#' result <- api.instance$CreateUser(var.body)
+#'
+#'
+#' #################### CreateUsersWithArrayInput ####################
+#'
+#' library(petstore)
+#' var.body <- [User$new()] # array[User] | List of user object
+#'
+#' #Creates list of users with given input array
+#' api.instance <- UserApi$new()
+#'
+#' result <- api.instance$CreateUsersWithArrayInput(var.body)
+#'
+#'
+#' #################### CreateUsersWithListInput ####################
+#'
+#' library(petstore)
+#' var.body <- [User$new()] # array[User] | List of user object
+#'
+#' #Creates list of users with given input array
+#' api.instance <- UserApi$new()
+#'
+#' result <- api.instance$CreateUsersWithListInput(var.body)
+#'
+#'
+#' #################### DeleteUser ####################
+#'
+#' library(petstore)
+#' var.username <- 'username_example' # character | The name that needs to be deleted
+#'
+#' #Delete user
+#' api.instance <- UserApi$new()
+#'
+#' result <- api.instance$DeleteUser(var.username)
+#'
+#'
+#' #################### GetUserByName ####################
+#'
+#' library(petstore)
+#' var.username <- 'username_example' # character | The name that needs to be fetched. Use user1 for testing.
+#'
+#' #Get user by user name
+#' api.instance <- UserApi$new()
+#'
+#' result <- api.instance$GetUserByName(var.username)
+#'
+#'
+#' #################### LoginUser ####################
+#'
+#' library(petstore)
+#' var.username <- 'username_example' # character | The user name for login
+#' var.password <- 'password_example' # character | The password for login in clear text
+#'
+#' #Logs user into the system
+#' api.instance <- UserApi$new()
+#'
+#' result <- api.instance$LoginUser(var.username, var.password)
+#'
+#'
+#' #################### LogoutUser ####################
+#'
+#' library(petstore)
+#'
+#' #Logs out current logged in user session
+#' api.instance <- UserApi$new()
+#'
+#' result <- api.instance$LogoutUser()
+#'
+#'
+#' #################### UpdateUser ####################
+#'
+#' library(petstore)
+#' var.username <- 'username_example' # character | name that need to be deleted
+#' var.body <- User$new() # User | Updated user object
+#'
+#' #Updated user
+#' api.instance <- UserApi$new()
+#'
+#' result <- api.instance$UpdateUser(var.username, var.body)
+#'
+#'
+#' }
+#' @importFrom R6 R6Class
#' @importFrom caTools base64encode
#' @export
UserApi <- R6::R6Class(
@@ -267,7 +502,12 @@ UserApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "User", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "User", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
@@ -314,7 +554,12 @@ UserApi <- R6::R6Class(
...)
if (httr::status_code(resp) >= 200 && httr::status_code(resp) <= 299) {
- deserializedRespObj <- self$apiClient$deserialize(resp, "character", "package:petstore")
+ deserializedRespObj <- tryCatch(
+ self$apiClient$deserialize(resp, "character", "package:petstore"),
+ error = function(e){
+ stop("Failed to deserialize response")
+ }
+ )
ApiResponse$new(deserializedRespObj, resp)
} else if (httr::status_code(resp) >= 400 && httr::status_code(resp) <= 499) {
ApiResponse$new("API client error", resp)
diff --git a/samples/client/petstore/R/test_petstore.bash b/samples/client/petstore/R/test_petstore.bash
index d3081df077d..ad0b3a6aa19 100644
--- a/samples/client/petstore/R/test_petstore.bash
+++ b/samples/client/petstore/R/test_petstore.bash
@@ -15,6 +15,7 @@ Rscript -e "install.packages('httr', repos='$REPO', lib='$R_LIBS_USER')"
Rscript -e "install.packages('testthat', repos='$REPO', lib='$R_LIBS_USER')"
Rscript -e "install.packages('R6', repos='$REPO', lib='$R_LIBS_USER')"
Rscript -e "install.packages('caTools', repos='$REPO', lib='$R_LIBS_USER')"
+Rscript -e "install.packages('rlang', repos='$REPO', lib='$R_LIBS_USER')"
R CMD build .
R CMD check *tar.gz --no-manual
diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/.openapi-generator/VERSION b/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/.openapi-generator/VERSION
index 06b5019af3f..479c313e87b 100644
--- a/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/.openapi-generator/VERSION
+++ b/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.1-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/README.md b/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/README.md
index f69aa420287..0d0008ed4f4 100644
--- a/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/README.md
+++ b/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/README.md
@@ -4,7 +4,7 @@ This is a sample server Petstore server. For this sample, you can use the api ke
This Dart package is automatically generated by the [Open API Codegen](https://github.com/OpenAPITools/openapi-generator) project:
- API version: 1.0.0
-- Build date: 2019-05-27T21:20:43.835+08:00[Asia/Hong_Kong]
+- Build date: 2019-06-29T11:26:01.157+12:00[Pacific/Auckland]
- Build package: org.openapitools.codegen.languages.DartJaguarClientCodegen
## Requirements
diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/docs/UserApi.md b/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/docs/UserApi.md
index d525910db9f..24494bd8757 100644
--- a/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/docs/UserApi.md
+++ b/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/docs/UserApi.md
@@ -84,7 +84,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **body** | [**List<User>**](List.md)| List of user object |
+ **body** | [**List<User>**](User.md)| List of user object |
### Return type
@@ -124,7 +124,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **body** | [**List<User>**](List.md)| List of user object |
+ **body** | [**List<User>**](User.md)| List of user object |
### Return type
diff --git a/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/lib/api.dart b/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/lib/api.dart
index 5d67c1e7412..23e42175157 100644
--- a/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/lib/api.dart
+++ b/samples/client/petstore/dart-jaguar/flutter_petstore/openapi/lib/api.dart
@@ -29,7 +29,7 @@ final _jsonJaguarRepo = JsonRepo()
..add(TagSerializer())
..add(UserSerializer())
;
-final Map _converters = {
+final Map converters = {
MimeTypes.json: _jsonJaguarRepo,
};
@@ -86,7 +86,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return PetApi(base: base, converters: converters, timeout: timeout);
}
@@ -101,7 +101,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return StoreApi(base: base, converters: converters, timeout: timeout);
}
@@ -116,7 +116,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return UserApi(base: base, converters: converters, timeout: timeout);
}
diff --git a/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/.openapi-generator/VERSION b/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/.openapi-generator/VERSION
index 06b5019af3f..479c313e87b 100644
--- a/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/.openapi-generator/VERSION
+++ b/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.1-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/README.md b/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/README.md
index a7ea7da6fe9..e50b342433b 100644
--- a/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/README.md
+++ b/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/README.md
@@ -4,7 +4,7 @@ This is a sample server Petstore server. For this sample, you can use the api ke
This Dart package is automatically generated by the [Open API Codegen](https://github.com/OpenAPITools/openapi-generator) project:
- API version: 1.0.0
-- Build date: 2019-05-27T21:20:45.456+08:00[Asia/Hong_Kong]
+- Build date: 2019-06-29T11:26:04.013+12:00[Pacific/Auckland]
- Build package: org.openapitools.codegen.languages.DartJaguarClientCodegen
## Requirements
diff --git a/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/docs/UserApi.md b/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/docs/UserApi.md
index 3db291415f8..91cad43d7a1 100644
--- a/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/docs/UserApi.md
+++ b/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/docs/UserApi.md
@@ -84,7 +84,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **body** | [**List<User>**](List.md)| List of user object |
+ **body** | [**List<User>**](User.md)| List of user object |
### Return type
@@ -124,7 +124,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **body** | [**List<User>**](List.md)| List of user object |
+ **body** | [**List<User>**](User.md)| List of user object |
### Return type
diff --git a/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/lib/api.dart b/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/lib/api.dart
index f81210751be..bed06dd13dc 100644
--- a/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/lib/api.dart
+++ b/samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi/lib/api.dart
@@ -39,7 +39,7 @@ final _jsonJaguarRepo = ProtoCodecRepo(isJsonFormatEnabled: true)
..add((data) => Tag.fromBuffer(List.from(data)))
..add((data) => User.fromBuffer(List.from(data)))
;
-final Map _converters = {
+final Map converters = {
MimeTypes.json: _jsonJaguarRepo,
MimeTypes.binary: _protoJaguarRepo,
};
@@ -96,7 +96,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return PetApi(base: base, converters: converters, timeout: timeout);
}
@@ -111,7 +111,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return StoreApi(base: base, converters: converters, timeout: timeout);
}
@@ -126,7 +126,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return UserApi(base: base, converters: converters, timeout: timeout);
}
diff --git a/samples/client/petstore/dart-jaguar/openapi/.openapi-generator/VERSION b/samples/client/petstore/dart-jaguar/openapi/.openapi-generator/VERSION
index 06b5019af3f..479c313e87b 100644
--- a/samples/client/petstore/dart-jaguar/openapi/.openapi-generator/VERSION
+++ b/samples/client/petstore/dart-jaguar/openapi/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.1-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/dart-jaguar/openapi/README.md b/samples/client/petstore/dart-jaguar/openapi/README.md
index 917b232f21c..2b99d076a70 100644
--- a/samples/client/petstore/dart-jaguar/openapi/README.md
+++ b/samples/client/petstore/dart-jaguar/openapi/README.md
@@ -4,7 +4,7 @@ This is a sample server Petstore server. For this sample, you can use the api ke
This Dart package is automatically generated by the [Open API Codegen](https://github.com/OpenAPITools/openapi-generator) project:
- API version: 1.0.0
-- Build date: 2019-05-27T21:20:42.193+08:00[Asia/Hong_Kong]
+- Build date: 2019-06-29T11:25:59.502+12:00[Pacific/Auckland]
- Build package: org.openapitools.codegen.languages.DartJaguarClientCodegen
## Requirements
diff --git a/samples/client/petstore/dart-jaguar/openapi/docs/UserApi.md b/samples/client/petstore/dart-jaguar/openapi/docs/UserApi.md
index d525910db9f..24494bd8757 100644
--- a/samples/client/petstore/dart-jaguar/openapi/docs/UserApi.md
+++ b/samples/client/petstore/dart-jaguar/openapi/docs/UserApi.md
@@ -84,7 +84,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **body** | [**List<User>**](List.md)| List of user object |
+ **body** | [**List<User>**](User.md)| List of user object |
### Return type
@@ -124,7 +124,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **body** | [**List<User>**](List.md)| List of user object |
+ **body** | [**List<User>**](User.md)| List of user object |
### Return type
diff --git a/samples/client/petstore/dart-jaguar/openapi/lib/api.dart b/samples/client/petstore/dart-jaguar/openapi/lib/api.dart
index 5d67c1e7412..23e42175157 100644
--- a/samples/client/petstore/dart-jaguar/openapi/lib/api.dart
+++ b/samples/client/petstore/dart-jaguar/openapi/lib/api.dart
@@ -29,7 +29,7 @@ final _jsonJaguarRepo = JsonRepo()
..add(TagSerializer())
..add(UserSerializer())
;
-final Map _converters = {
+final Map converters = {
MimeTypes.json: _jsonJaguarRepo,
};
@@ -86,7 +86,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return PetApi(base: base, converters: converters, timeout: timeout);
}
@@ -101,7 +101,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return StoreApi(base: base, converters: converters, timeout: timeout);
}
@@ -116,7 +116,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return UserApi(base: base, converters: converters, timeout: timeout);
}
diff --git a/samples/client/petstore/dart-jaguar/openapi_proto/.openapi-generator/VERSION b/samples/client/petstore/dart-jaguar/openapi_proto/.openapi-generator/VERSION
index 06b5019af3f..479c313e87b 100644
--- a/samples/client/petstore/dart-jaguar/openapi_proto/.openapi-generator/VERSION
+++ b/samples/client/petstore/dart-jaguar/openapi_proto/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.1-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/dart-jaguar/openapi_proto/README.md b/samples/client/petstore/dart-jaguar/openapi_proto/README.md
index 310e0d221e8..761fc689ef7 100644
--- a/samples/client/petstore/dart-jaguar/openapi_proto/README.md
+++ b/samples/client/petstore/dart-jaguar/openapi_proto/README.md
@@ -4,7 +4,7 @@ This is a sample server Petstore server. For this sample, you can use the api ke
This Dart package is automatically generated by the [Open API Codegen](https://github.com/OpenAPITools/openapi-generator) project:
- API version: 1.0.0
-- Build date: 2019-05-27T21:20:47.082+08:00[Asia/Hong_Kong]
+- Build date: 2019-06-29T11:26:07.058+12:00[Pacific/Auckland]
- Build package: org.openapitools.codegen.languages.DartJaguarClientCodegen
## Requirements
diff --git a/samples/client/petstore/dart-jaguar/openapi_proto/docs/UserApi.md b/samples/client/petstore/dart-jaguar/openapi_proto/docs/UserApi.md
index 3db291415f8..91cad43d7a1 100644
--- a/samples/client/petstore/dart-jaguar/openapi_proto/docs/UserApi.md
+++ b/samples/client/petstore/dart-jaguar/openapi_proto/docs/UserApi.md
@@ -84,7 +84,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **body** | [**List<User>**](List.md)| List of user object |
+ **body** | [**List<User>**](User.md)| List of user object |
### Return type
@@ -124,7 +124,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **body** | [**List<User>**](List.md)| List of user object |
+ **body** | [**List<User>**](User.md)| List of user object |
### Return type
diff --git a/samples/client/petstore/dart-jaguar/openapi_proto/lib/api.dart b/samples/client/petstore/dart-jaguar/openapi_proto/lib/api.dart
index f81210751be..bed06dd13dc 100644
--- a/samples/client/petstore/dart-jaguar/openapi_proto/lib/api.dart
+++ b/samples/client/petstore/dart-jaguar/openapi_proto/lib/api.dart
@@ -39,7 +39,7 @@ final _jsonJaguarRepo = ProtoCodecRepo(isJsonFormatEnabled: true)
..add((data) => Tag.fromBuffer(List.from(data)))
..add((data) => User.fromBuffer(List.from(data)))
;
-final Map _converters = {
+final Map converters = {
MimeTypes.json: _jsonJaguarRepo,
MimeTypes.binary: _protoJaguarRepo,
};
@@ -96,7 +96,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return PetApi(base: base, converters: converters, timeout: timeout);
}
@@ -111,7 +111,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return StoreApi(base: base, converters: converters, timeout: timeout);
}
@@ -126,7 +126,7 @@ class JaguarApiGen {
base = _baseRoute;
}
if(converters == null) {
- converters = _converters;
+ converters = this.converters;
}
return UserApi(base: base, converters: converters, timeout: timeout);
}
diff --git a/samples/client/petstore/elm-0.18/.openapi-generator/VERSION b/samples/client/petstore/elm-0.18/.openapi-generator/VERSION
index afa63656064..479c313e87b 100644
--- a/samples/client/petstore/elm-0.18/.openapi-generator/VERSION
+++ b/samples/client/petstore/elm-0.18/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.0-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/elm-0.18/src/Data/ApiResponse.elm b/samples/client/petstore/elm-0.18/src/Data/ApiResponse.elm
index f4120a09248..bb1003f9a04 100644
--- a/samples/client/petstore/elm-0.18/src/Data/ApiResponse.elm
+++ b/samples/client/petstore/elm-0.18/src/Data/ApiResponse.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -21,9 +21,9 @@ import Json.Encode as Encode
{-| Describes the result of uploading an image resource
-}
type alias ApiResponse =
- { code : Maybe Int
- , type_ : Maybe String
- , message : Maybe String
+ { code : Maybe (Int)
+ , type_ : Maybe (String)
+ , message : Maybe (String)
}
@@ -35,10 +35,14 @@ decoder =
|> optional "message" (Decode.nullable Decode.string) Nothing
+
encode : ApiResponse -> Encode.Value
encode model =
Encode.object
[ ( "code", Maybe.withDefault Encode.null (Maybe.map Encode.int model.code) )
, ( "type", Maybe.withDefault Encode.null (Maybe.map Encode.string model.type_) )
, ( "message", Maybe.withDefault Encode.null (Maybe.map Encode.string model.message) )
+
]
+
+
diff --git a/samples/client/petstore/elm-0.18/src/Data/Category.elm b/samples/client/petstore/elm-0.18/src/Data/Category.elm
index a97f62791d9..127436ffc00 100644
--- a/samples/client/petstore/elm-0.18/src/Data/Category.elm
+++ b/samples/client/petstore/elm-0.18/src/Data/Category.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -21,8 +21,8 @@ import Json.Encode as Encode
{-| A category for a pet
-}
type alias Category =
- { id : Maybe Int
- , name : Maybe String
+ { id : Maybe (Int)
+ , name : Maybe (String)
}
@@ -33,9 +33,13 @@ decoder =
|> optional "name" (Decode.nullable Decode.string) Nothing
+
encode : Category -> Encode.Value
encode model =
Encode.object
[ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
, ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) )
+
]
+
+
diff --git a/samples/client/petstore/elm-0.18/src/Data/Order_.elm b/samples/client/petstore/elm-0.18/src/Data/Order_.elm
index 03de721decb..e4b14741547 100644
--- a/samples/client/petstore/elm-0.18/src/Data/Order_.elm
+++ b/samples/client/petstore/elm-0.18/src/Data/Order_.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -22,12 +22,12 @@ import Json.Encode as Encode
{-| An order for a pets from the pet store
-}
type alias Order_ =
- { id : Maybe Int
- , petId : Maybe Int
- , quantity : Maybe Int
- , shipDate : Maybe DateTime
- , status : Maybe Status
- , complete : Maybe Bool
+ { id : Maybe (Int)
+ , petId : Maybe (Int)
+ , quantity : Maybe (Int)
+ , shipDate : Maybe (DateTime)
+ , status : Maybe (Status)
+ , complete : Maybe (Bool)
}
@@ -37,6 +37,7 @@ type Status
| Delivered
+
decoder : Decoder Order_
decoder =
decode Order_
@@ -48,6 +49,7 @@ decoder =
|> optional "complete" (Decode.nullable Decode.bool) (Just False)
+
encode : Order_ -> Encode.Value
encode model =
Encode.object
@@ -57,9 +59,11 @@ encode model =
, ( "shipDate", Maybe.withDefault Encode.null (Maybe.map DateTime.encode model.shipDate) )
, ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) )
, ( "complete", Maybe.withDefault Encode.null (Maybe.map Encode.bool model.complete) )
+
]
+
statusDecoder : Decoder Status
statusDecoder =
Decode.string
@@ -80,6 +84,7 @@ statusDecoder =
)
+
encodeStatus : Status -> Encode.Value
encodeStatus model =
case model of
@@ -91,3 +96,6 @@ encodeStatus model =
Delivered ->
Encode.string "delivered"
+
+
+
diff --git a/samples/client/petstore/elm-0.18/src/Data/Pet.elm b/samples/client/petstore/elm-0.18/src/Data/Pet.elm
index a777915436b..7ab7b76a4f6 100644
--- a/samples/client/petstore/elm-0.18/src/Data/Pet.elm
+++ b/samples/client/petstore/elm-0.18/src/Data/Pet.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -23,12 +23,12 @@ import Json.Encode as Encode
{-| A pet for sale in the pet store
-}
type alias Pet =
- { id : Maybe Int
- , category : Maybe Category
+ { id : Maybe (Int)
+ , category : Maybe (Category)
, name : String
- , photoUrls : List String
- , tags : Maybe (List Tag)
- , status : Maybe Status
+ , photoUrls : (List String)
+ , tags : Maybe ((List Tag))
+ , status : Maybe (Status)
}
@@ -38,6 +38,7 @@ type Status
| Sold
+
decoder : Decoder Pet
decoder =
decode Pet
@@ -49,6 +50,7 @@ decoder =
|> optional "status" (Decode.nullable statusDecoder) Nothing
+
encode : Pet -> Encode.Value
encode model =
Encode.object
@@ -58,9 +60,11 @@ encode model =
, ( "photoUrls", (Encode.list << List.map Encode.string) model.photoUrls )
, ( "tags", Maybe.withDefault Encode.null (Maybe.map (Encode.list << List.map Tag.encode) model.tags) )
, ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) )
+
]
+
statusDecoder : Decoder Status
statusDecoder =
Decode.string
@@ -81,6 +85,7 @@ statusDecoder =
)
+
encodeStatus : Status -> Encode.Value
encodeStatus model =
case model of
@@ -92,3 +97,6 @@ encodeStatus model =
Sold ->
Encode.string "sold"
+
+
+
diff --git a/samples/client/petstore/elm-0.18/src/Data/Tag.elm b/samples/client/petstore/elm-0.18/src/Data/Tag.elm
index 372029cde7e..d1344af5de7 100644
--- a/samples/client/petstore/elm-0.18/src/Data/Tag.elm
+++ b/samples/client/petstore/elm-0.18/src/Data/Tag.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -21,8 +21,8 @@ import Json.Encode as Encode
{-| A tag for a pet
-}
type alias Tag =
- { id : Maybe Int
- , name : Maybe String
+ { id : Maybe (Int)
+ , name : Maybe (String)
}
@@ -33,9 +33,13 @@ decoder =
|> optional "name" (Decode.nullable Decode.string) Nothing
+
encode : Tag -> Encode.Value
encode model =
Encode.object
[ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
, ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) )
+
]
+
+
diff --git a/samples/client/petstore/elm-0.18/src/Data/User.elm b/samples/client/petstore/elm-0.18/src/Data/User.elm
index 667c93f4d8b..4b1870d9ca5 100644
--- a/samples/client/petstore/elm-0.18/src/Data/User.elm
+++ b/samples/client/petstore/elm-0.18/src/Data/User.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -21,14 +21,14 @@ import Json.Encode as Encode
{-| A User who is purchasing from the pet store
-}
type alias User =
- { id : Maybe Int
- , username : Maybe String
- , firstName : Maybe String
- , lastName : Maybe String
- , email : Maybe String
- , password : Maybe String
- , phone : Maybe String
- , userStatus : Maybe Int
+ { id : Maybe (Int)
+ , username : Maybe (String)
+ , firstName : Maybe (String)
+ , lastName : Maybe (String)
+ , email : Maybe (String)
+ , password : Maybe (String)
+ , phone : Maybe (String)
+ , userStatus : Maybe (Int)
}
@@ -45,6 +45,7 @@ decoder =
|> optional "userStatus" (Decode.nullable Decode.int) Nothing
+
encode : User -> Encode.Value
encode model =
Encode.object
@@ -56,4 +57,7 @@ encode model =
, ( "password", Maybe.withDefault Encode.null (Maybe.map Encode.string model.password) )
, ( "phone", Maybe.withDefault Encode.null (Maybe.map Encode.string model.phone) )
, ( "userStatus", Maybe.withDefault Encode.null (Maybe.map Encode.int model.userStatus) )
+
]
+
+
diff --git a/samples/client/petstore/elm-0.18/src/DateTime.elm b/samples/client/petstore/elm-0.18/src/DateTime.elm
index 7e07312468c..6a20f0482a1 100644
--- a/samples/client/petstore/elm-0.18/src/DateTime.elm
+++ b/samples/client/petstore/elm-0.18/src/DateTime.elm
@@ -34,4 +34,4 @@ decodeIsoString str =
toString : DateTime -> String
toString =
- toIsoString
+ toIsoString
\ No newline at end of file
diff --git a/samples/client/petstore/elm-0.18/src/Request/Pet.elm b/samples/client/petstore/elm-0.18/src/Request/Pet.elm
index 472eb73a15d..5b1e3444d3a 100644
--- a/samples/client/petstore/elm-0.18/src/Request/Pet.elm
+++ b/samples/client/petstore/elm-0.18/src/Request/Pet.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -12,8 +12,8 @@
module Request.Pet exposing (addPet, deletePet, findPetsByStatus, findPetsByTags, getPetById, updatePet, updatePetWithForm, uploadFile)
-import Data.ApiResponse as ApiResponse exposing (ApiResponse)
import Data.Pet as Pet exposing (Pet)
+import Data.ApiResponse as ApiResponse exposing (ApiResponse)
import Dict
import Http
import Json.Decode as Decode
@@ -40,7 +40,7 @@ addPet model =
deletePet : Int -> Http.Request ()
deletePet petId =
{ method = "DELETE"
- , url = basePath ++ "/pet/" ++ toString petId
+ , url = basePath ++ "/pet/" ++ toString petId
, headers = []
, body = Http.emptyBody
, expect = Http.expectStringResponse (\_ -> Ok ())
@@ -85,7 +85,7 @@ findPetsByTags =
getPetById : Int -> Http.Request Pet
getPetById petId =
{ method = "GET"
- , url = basePath ++ "/pet/" ++ toString petId
+ , url = basePath ++ "/pet/" ++ toString petId
, headers = []
, body = Http.emptyBody
, expect = Http.expectJson Pet.decoder
@@ -111,7 +111,7 @@ updatePet model =
updatePetWithForm : Int -> Http.Request ()
updatePetWithForm petId =
{ method = "POST"
- , url = basePath ++ "/pet/" ++ toString petId
+ , url = basePath ++ "/pet/" ++ toString petId
, headers = []
, body = Http.emptyBody
, expect = Http.expectStringResponse (\_ -> Ok ())
@@ -124,7 +124,7 @@ updatePetWithForm petId =
uploadFile : Int -> Http.Request ApiResponse
uploadFile petId =
{ method = "POST"
- , url = basePath ++ "/pet/" ++ toString petId ++ "/uploadImage"
+ , url = basePath ++ "/pet/" ++ toString petId ++ "/uploadImage"
, headers = []
, body = Http.emptyBody
, expect = Http.expectJson ApiResponse.decoder
diff --git a/samples/client/petstore/elm-0.18/src/Request/Store.elm b/samples/client/petstore/elm-0.18/src/Request/Store.elm
index c2872e305c0..d8f70f4177c 100644
--- a/samples/client/petstore/elm-0.18/src/Request/Store.elm
+++ b/samples/client/petstore/elm-0.18/src/Request/Store.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -28,7 +28,7 @@ basePath =
deleteOrder : String -> Http.Request ()
deleteOrder orderId =
{ method = "DELETE"
- , url = basePath ++ "/store/order/" ++ orderId
+ , url = basePath ++ "/store/order/" ++ orderId
, headers = []
, body = Http.emptyBody
, expect = Http.expectStringResponse (\_ -> Ok ())
@@ -58,7 +58,7 @@ getInventory =
getOrderById : Int -> Http.Request Order_
getOrderById orderId =
{ method = "GET"
- , url = basePath ++ "/store/order/" ++ toString orderId
+ , url = basePath ++ "/store/order/" ++ toString orderId
, headers = []
, body = Http.emptyBody
, expect = Http.expectJson Order_.decoder
diff --git a/samples/client/petstore/elm-0.18/src/Request/User.elm b/samples/client/petstore/elm-0.18/src/Request/User.elm
index c6e4048a059..ce6b79ca630 100644
--- a/samples/client/petstore/elm-0.18/src/Request/User.elm
+++ b/samples/client/petstore/elm-0.18/src/Request/User.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -69,7 +69,7 @@ createUsersWithListInput model =
deleteUser : String -> Http.Request ()
deleteUser username =
{ method = "DELETE"
- , url = basePath ++ "/user/" ++ username
+ , url = basePath ++ "/user/" ++ username
, headers = []
, body = Http.emptyBody
, expect = Http.expectStringResponse (\_ -> Ok ())
@@ -82,7 +82,7 @@ deleteUser username =
getUserByName : String -> Http.Request User
getUserByName username =
{ method = "GET"
- , url = basePath ++ "/user/" ++ username
+ , url = basePath ++ "/user/" ++ username
, headers = []
, body = Http.emptyBody
, expect = Http.expectJson User.decoder
@@ -123,7 +123,7 @@ logoutUser =
updateUser : String -> User -> Http.Request ()
updateUser username model =
{ method = "PUT"
- , url = basePath ++ "/user/" ++ username
+ , url = basePath ++ "/user/" ++ username
, headers = []
, body = Http.jsonBody <| User.encode model
, expect = Http.expectStringResponse (\_ -> Ok ())
diff --git a/samples/client/petstore/elm/.openapi-generator/VERSION b/samples/client/petstore/elm/.openapi-generator/VERSION
index afa63656064..479c313e87b 100644
--- a/samples/client/petstore/elm/.openapi-generator/VERSION
+++ b/samples/client/petstore/elm/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.0-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/elm/src/Data/ApiResponse.elm b/samples/client/petstore/elm/src/Data/ApiResponse.elm
index 9bdc2ac4da9..3559c4f3fe8 100644
--- a/samples/client/petstore/elm/src/Data/ApiResponse.elm
+++ b/samples/client/petstore/elm/src/Data/ApiResponse.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -21,9 +21,9 @@ import Json.Encode as Encode
{-| Describes the result of uploading an image resource
-}
type alias ApiResponse =
- { code : Maybe Int
- , type_ : Maybe String
- , message : Maybe String
+ { code : Maybe (Int)
+ , type_ : Maybe (String)
+ , message : Maybe (String)
}
@@ -35,10 +35,14 @@ decoder =
|> optional "message" (Decode.nullable Decode.string) Nothing
+
encode : ApiResponse -> Encode.Value
encode model =
Encode.object
[ ( "code", Maybe.withDefault Encode.null (Maybe.map Encode.int model.code) )
, ( "type", Maybe.withDefault Encode.null (Maybe.map Encode.string model.type_) )
, ( "message", Maybe.withDefault Encode.null (Maybe.map Encode.string model.message) )
+
]
+
+
diff --git a/samples/client/petstore/elm/src/Data/Category.elm b/samples/client/petstore/elm/src/Data/Category.elm
index 091166fb620..9a5803626d9 100644
--- a/samples/client/petstore/elm/src/Data/Category.elm
+++ b/samples/client/petstore/elm/src/Data/Category.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -21,8 +21,8 @@ import Json.Encode as Encode
{-| A category for a pet
-}
type alias Category =
- { id : Maybe Int
- , name : Maybe String
+ { id : Maybe (Int)
+ , name : Maybe (String)
}
@@ -33,9 +33,13 @@ decoder =
|> optional "name" (Decode.nullable Decode.string) Nothing
+
encode : Category -> Encode.Value
encode model =
Encode.object
[ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
, ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) )
+
]
+
+
diff --git a/samples/client/petstore/elm/src/Data/Order_.elm b/samples/client/petstore/elm/src/Data/Order_.elm
index 0deb6066234..cd304947c5b 100644
--- a/samples/client/petstore/elm/src/Data/Order_.elm
+++ b/samples/client/petstore/elm/src/Data/Order_.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -22,12 +22,12 @@ import Json.Encode as Encode
{-| An order for a pets from the pet store
-}
type alias Order_ =
- { id : Maybe Int
- , petId : Maybe Int
- , quantity : Maybe Int
- , shipDate : Maybe DateTime
- , status : Maybe Status
- , complete : Maybe Bool
+ { id : Maybe (Int)
+ , petId : Maybe (Int)
+ , quantity : Maybe (Int)
+ , shipDate : Maybe (DateTime)
+ , status : Maybe (Status)
+ , complete : Maybe (Bool)
}
@@ -37,6 +37,7 @@ type Status
| Delivered
+
decoder : Decoder Order_
decoder =
Decode.succeed Order_
@@ -48,6 +49,7 @@ decoder =
|> optional "complete" (Decode.nullable Decode.bool) (Just False)
+
encode : Order_ -> Encode.Value
encode model =
Encode.object
@@ -57,9 +59,11 @@ encode model =
, ( "shipDate", Maybe.withDefault Encode.null (Maybe.map DateTime.encode model.shipDate) )
, ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) )
, ( "complete", Maybe.withDefault Encode.null (Maybe.map Encode.bool model.complete) )
+
]
+
statusDecoder : Decoder Status
statusDecoder =
Decode.string
@@ -80,6 +84,7 @@ statusDecoder =
)
+
encodeStatus : Status -> Encode.Value
encodeStatus model =
case model of
@@ -91,3 +96,6 @@ encodeStatus model =
Delivered ->
Encode.string "delivered"
+
+
+
diff --git a/samples/client/petstore/elm/src/Data/Pet.elm b/samples/client/petstore/elm/src/Data/Pet.elm
index f7ccb9ab1cb..e2518c95b0b 100644
--- a/samples/client/petstore/elm/src/Data/Pet.elm
+++ b/samples/client/petstore/elm/src/Data/Pet.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -23,12 +23,12 @@ import Json.Encode as Encode
{-| A pet for sale in the pet store
-}
type alias Pet =
- { id : Maybe Int
- , category : Maybe Category
+ { id : Maybe (Int)
+ , category : Maybe (Category)
, name : String
- , photoUrls : List String
- , tags : Maybe (List Tag)
- , status : Maybe Status
+ , photoUrls : (List String)
+ , tags : Maybe ((List Tag))
+ , status : Maybe (Status)
}
@@ -38,6 +38,7 @@ type Status
| Sold
+
decoder : Decoder Pet
decoder =
Decode.succeed Pet
@@ -49,18 +50,21 @@ decoder =
|> optional "status" (Decode.nullable statusDecoder) Nothing
+
encode : Pet -> Encode.Value
encode model =
Encode.object
[ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
, ( "category", Maybe.withDefault Encode.null (Maybe.map Category.encode model.category) )
, ( "name", Encode.string model.name )
- , ( "photoUrls", Encode.list Encode.string model.photoUrls )
+ , ( "photoUrls", (Encode.list Encode.string) model.photoUrls )
, ( "tags", Maybe.withDefault Encode.null (Maybe.map (Encode.list Tag.encode) model.tags) )
, ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) )
+
]
+
statusDecoder : Decoder Status
statusDecoder =
Decode.string
@@ -81,6 +85,7 @@ statusDecoder =
)
+
encodeStatus : Status -> Encode.Value
encodeStatus model =
case model of
@@ -92,3 +97,6 @@ encodeStatus model =
Sold ->
Encode.string "sold"
+
+
+
diff --git a/samples/client/petstore/elm/src/Data/Tag.elm b/samples/client/petstore/elm/src/Data/Tag.elm
index d81dc661260..16118b9b80b 100644
--- a/samples/client/petstore/elm/src/Data/Tag.elm
+++ b/samples/client/petstore/elm/src/Data/Tag.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -21,8 +21,8 @@ import Json.Encode as Encode
{-| A tag for a pet
-}
type alias Tag =
- { id : Maybe Int
- , name : Maybe String
+ { id : Maybe (Int)
+ , name : Maybe (String)
}
@@ -33,9 +33,13 @@ decoder =
|> optional "name" (Decode.nullable Decode.string) Nothing
+
encode : Tag -> Encode.Value
encode model =
Encode.object
[ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
, ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) )
+
]
+
+
diff --git a/samples/client/petstore/elm/src/Data/User.elm b/samples/client/petstore/elm/src/Data/User.elm
index 8db61e71fda..0b0cba12cc4 100644
--- a/samples/client/petstore/elm/src/Data/User.elm
+++ b/samples/client/petstore/elm/src/Data/User.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -21,14 +21,14 @@ import Json.Encode as Encode
{-| A User who is purchasing from the pet store
-}
type alias User =
- { id : Maybe Int
- , username : Maybe String
- , firstName : Maybe String
- , lastName : Maybe String
- , email : Maybe String
- , password : Maybe String
- , phone : Maybe String
- , userStatus : Maybe Int
+ { id : Maybe (Int)
+ , username : Maybe (String)
+ , firstName : Maybe (String)
+ , lastName : Maybe (String)
+ , email : Maybe (String)
+ , password : Maybe (String)
+ , phone : Maybe (String)
+ , userStatus : Maybe (Int)
}
@@ -45,6 +45,7 @@ decoder =
|> optional "userStatus" (Decode.nullable Decode.int) Nothing
+
encode : User -> Encode.Value
encode model =
Encode.object
@@ -56,4 +57,7 @@ encode model =
, ( "password", Maybe.withDefault Encode.null (Maybe.map Encode.string model.password) )
, ( "phone", Maybe.withDefault Encode.null (Maybe.map Encode.string model.phone) )
, ( "userStatus", Maybe.withDefault Encode.null (Maybe.map Encode.int model.userStatus) )
+
]
+
+
diff --git a/samples/client/petstore/elm/src/DateTime.elm b/samples/client/petstore/elm/src/DateTime.elm
index 80b62fb7dec..7d4a5c642c1 100644
--- a/samples/client/petstore/elm/src/DateTime.elm
+++ b/samples/client/petstore/elm/src/DateTime.elm
@@ -34,4 +34,4 @@ decodeIsoString str =
toString : DateTime -> String
toString =
- Iso8601.fromTime
+ Iso8601.fromTime
\ No newline at end of file
diff --git a/samples/client/petstore/elm/src/Request/Pet.elm b/samples/client/petstore/elm/src/Request/Pet.elm
index 1743382c61e..cd46555148f 100644
--- a/samples/client/petstore/elm/src/Request/Pet.elm
+++ b/samples/client/petstore/elm/src/Request/Pet.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -10,10 +10,10 @@
-}
-module Request.Pet exposing (Status(..), addPet, deletePet, findPetsByStatus, findPetsByTags, getPetById, updatePet, updatePetWithForm, uploadFile)
+module Request.Pet exposing (addPet, deletePet, findPetsByStatus, Status(..), findPetsByTags, getPetById, updatePet, updatePetWithForm, uploadFile)
-import Data.ApiResponse as ApiResponse exposing (ApiResponse)
import Data.Pet as Pet exposing (Pet)
+import Data.ApiResponse as ApiResponse exposing (ApiResponse)
import Dict
import Http
import Json.Decode as Decode
@@ -25,7 +25,6 @@ type Status
| Pending
| Sold
-
statusToString : Status -> String
statusToString value =
case value of
@@ -39,6 +38,9 @@ statusToString value =
"sold"
+
+
+
basePath : String
basePath =
"http://petstore.swagger.io/v2"
@@ -46,17 +48,20 @@ basePath =
addPet :
{ onSend : Result Http.Error () -> msg
+
+
, body : Pet
+
+
}
-> Cmd msg
addPet params =
Http.request
{ method = "POST"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "pet" ]
- []
+ , url = Url.crossOrigin basePath
+ ["pet"]
+ []
, body = Http.jsonBody <| Pet.encode params.body
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -65,21 +70,23 @@ addPet params =
deletePet :
- { apiKey : Maybe String
+ { apiKey : Maybe (String)
+ } ->
+ { onSend : Result Http.Error () -> msg
+
+
+
+ , petId : Int
+
}
- ->
- { onSend : Result Http.Error () -> msg
- , petId : Int
- }
-> Cmd msg
deletePet headers params =
Http.request
{ method = "DELETE"
- , headers = List.filterMap identity [ Maybe.map (Http.header "api_key") headers.apiKey ]
- , url =
- Url.crossOrigin basePath
- [ "pet", String.fromInt params.petId ]
- []
+ , headers = List.filterMap identity [Maybe.map (Http.header "api_key" ) headers.apiKey]
+ , url = Url.crossOrigin basePath
+ ["pet", String.fromInt params.petId]
+ []
, body = Http.emptyBody
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -91,6 +98,10 @@ deletePet headers params =
-}
findPetsByStatus :
{ onSend : Result Http.Error (List Pet) -> msg
+
+
+
+
, status : List Status
}
-> Cmd msg
@@ -98,10 +109,9 @@ findPetsByStatus params =
Http.request
{ method = "GET"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "pet", "findByStatus" ]
- (List.filterMap identity [ Just (Url.string "status" <| (String.join "," << List.map statusToString) params.status) ])
+ , url = Url.crossOrigin basePath
+ ["pet", "findByStatus"]
+ (List.filterMap identity [Just (Url.string "status" <| (String.join "," << List.map statusToString) params.status)])
, body = Http.emptyBody
, expect = Http.expectJson params.onSend (Decode.list Pet.decoder)
, timeout = Just 30000
@@ -113,6 +123,10 @@ findPetsByStatus params =
-}
findPetsByTags :
{ onSend : Result Http.Error (List Pet) -> msg
+
+
+
+
, tags : List String
}
-> Cmd msg
@@ -120,10 +134,9 @@ findPetsByTags params =
Http.request
{ method = "GET"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "pet", "findByTags" ]
- (List.filterMap identity [ Just (Url.string "tags" <| String.join "," params.tags) ])
+ , url = Url.crossOrigin basePath
+ ["pet", "findByTags"]
+ (List.filterMap identity [Just (Url.string "tags" <| (String.join ",") params.tags)])
, body = Http.emptyBody
, expect = Http.expectJson params.onSend (Decode.list Pet.decoder)
, timeout = Just 30000
@@ -135,17 +148,20 @@ findPetsByTags params =
-}
getPetById :
{ onSend : Result Http.Error Pet -> msg
+
+
+
, petId : Int
+
}
-> Cmd msg
getPetById params =
Http.request
{ method = "GET"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "pet", String.fromInt params.petId ]
- []
+ , url = Url.crossOrigin basePath
+ ["pet", String.fromInt params.petId]
+ []
, body = Http.emptyBody
, expect = Http.expectJson params.onSend Pet.decoder
, timeout = Just 30000
@@ -155,17 +171,20 @@ getPetById params =
updatePet :
{ onSend : Result Http.Error () -> msg
+
+
, body : Pet
+
+
}
-> Cmd msg
updatePet params =
Http.request
{ method = "PUT"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "pet" ]
- []
+ , url = Url.crossOrigin basePath
+ ["pet"]
+ []
, body = Http.jsonBody <| Pet.encode params.body
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -175,17 +194,20 @@ updatePet params =
updatePetWithForm :
{ onSend : Result Http.Error () -> msg
+
+
+
, petId : Int
+
}
-> Cmd msg
updatePetWithForm params =
Http.request
{ method = "POST"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "pet", String.fromInt params.petId ]
- []
+ , url = Url.crossOrigin basePath
+ ["pet", String.fromInt params.petId]
+ []
, body = Http.emptyBody
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -195,17 +217,20 @@ updatePetWithForm params =
uploadFile :
{ onSend : Result Http.Error ApiResponse -> msg
+
+
+
, petId : Int
+
}
-> Cmd msg
uploadFile params =
Http.request
{ method = "POST"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "pet", String.fromInt params.petId, "uploadImage" ]
- []
+ , url = Url.crossOrigin basePath
+ ["pet", String.fromInt params.petId, "uploadImage"]
+ []
, body = Http.emptyBody
, expect = Http.expectJson params.onSend ApiResponse.decoder
, timeout = Just 30000
diff --git a/samples/client/petstore/elm/src/Request/Store.elm b/samples/client/petstore/elm/src/Request/Store.elm
index e251c075573..7ac926fe41e 100644
--- a/samples/client/petstore/elm/src/Request/Store.elm
+++ b/samples/client/petstore/elm/src/Request/Store.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -19,6 +19,8 @@ import Json.Decode as Decode
import Url.Builder as Url
+
+
basePath : String
basePath =
"http://petstore.swagger.io/v2"
@@ -28,17 +30,20 @@ basePath =
-}
deleteOrder :
{ onSend : Result Http.Error () -> msg
+
+
+
, orderId : String
+
}
-> Cmd msg
deleteOrder params =
Http.request
{ method = "DELETE"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "store", "order", params.orderId ]
- []
+ , url = Url.crossOrigin basePath
+ ["store", "order", params.orderId]
+ []
, body = Http.emptyBody
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -50,16 +55,20 @@ deleteOrder params =
-}
getInventory :
{ onSend : Result Http.Error (Dict.Dict String Int) -> msg
+
+
+
+
+
}
-> Cmd msg
getInventory params =
Http.request
{ method = "GET"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "store", "inventory" ]
- []
+ , url = Url.crossOrigin basePath
+ ["store", "inventory"]
+ []
, body = Http.emptyBody
, expect = Http.expectJson params.onSend (Decode.dict Decode.int)
, timeout = Just 30000
@@ -71,17 +80,20 @@ getInventory params =
-}
getOrderById :
{ onSend : Result Http.Error Order_ -> msg
+
+
+
, orderId : Int
+
}
-> Cmd msg
getOrderById params =
Http.request
{ method = "GET"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "store", "order", String.fromInt params.orderId ]
- []
+ , url = Url.crossOrigin basePath
+ ["store", "order", String.fromInt params.orderId]
+ []
, body = Http.emptyBody
, expect = Http.expectJson params.onSend Order_.decoder
, timeout = Just 30000
@@ -91,17 +103,20 @@ getOrderById params =
placeOrder :
{ onSend : Result Http.Error Order_ -> msg
+
+
, body : Order_
+
+
}
-> Cmd msg
placeOrder params =
Http.request
{ method = "POST"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "store", "order" ]
- []
+ , url = Url.crossOrigin basePath
+ ["store", "order"]
+ []
, body = Http.jsonBody <| Order_.encode params.body
, expect = Http.expectJson params.onSend Order_.decoder
, timeout = Just 30000
diff --git a/samples/client/petstore/elm/src/Request/User.elm b/samples/client/petstore/elm/src/Request/User.elm
index 75fa422bcbd..6d6d21918a6 100644
--- a/samples/client/petstore/elm/src/Request/User.elm
+++ b/samples/client/petstore/elm/src/Request/User.elm
@@ -2,7 +2,7 @@
OpenAPI Petstore
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
- OpenAPI spec version: 1.0.0
+ The version of the OpenAPI document: 1.0.0
NOTE: This file is auto generated by the openapi-generator.
https://github.com/openapitools/openapi-generator.git
@@ -19,6 +19,8 @@ import Json.Decode as Decode
import Url.Builder as Url
+
+
basePath : String
basePath =
"http://petstore.swagger.io/v2"
@@ -28,17 +30,20 @@ basePath =
-}
createUser :
{ onSend : Result Http.Error () -> msg
+
+
, body : User
+
+
}
-> Cmd msg
createUser params =
Http.request
{ method = "POST"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "user" ]
- []
+ , url = Url.crossOrigin basePath
+ ["user"]
+ []
, body = Http.jsonBody <| User.encode params.body
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -48,17 +53,20 @@ createUser params =
createUsersWithArrayInput :
{ onSend : Result Http.Error () -> msg
+
+
, body : User
+
+
}
-> Cmd msg
createUsersWithArrayInput params =
Http.request
{ method = "POST"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "user", "createWithArray" ]
- []
+ , url = Url.crossOrigin basePath
+ ["user", "createWithArray"]
+ []
, body = Http.jsonBody <| User.encode params.body
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -68,17 +76,20 @@ createUsersWithArrayInput params =
createUsersWithListInput :
{ onSend : Result Http.Error () -> msg
+
+
, body : User
+
+
}
-> Cmd msg
createUsersWithListInput params =
Http.request
{ method = "POST"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "user", "createWithList" ]
- []
+ , url = Url.crossOrigin basePath
+ ["user", "createWithList"]
+ []
, body = Http.jsonBody <| User.encode params.body
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -90,17 +101,20 @@ createUsersWithListInput params =
-}
deleteUser :
{ onSend : Result Http.Error () -> msg
+
+
+
, username : String
+
}
-> Cmd msg
deleteUser params =
Http.request
{ method = "DELETE"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "user", params.username ]
- []
+ , url = Url.crossOrigin basePath
+ ["user", params.username]
+ []
, body = Http.emptyBody
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -110,17 +124,20 @@ deleteUser params =
getUserByName :
{ onSend : Result Http.Error User -> msg
+
+
+
, username : String
+
}
-> Cmd msg
getUserByName params =
Http.request
{ method = "GET"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "user", params.username ]
- []
+ , url = Url.crossOrigin basePath
+ ["user", params.username]
+ []
, body = Http.emptyBody
, expect = Http.expectJson params.onSend User.decoder
, timeout = Just 30000
@@ -130,18 +147,20 @@ getUserByName params =
loginUser :
{ onSend : Result Http.Error String -> msg
- , username : String
- , password : String
+
+
+
+
+ , username : String , password : String
}
-> Cmd msg
loginUser params =
Http.request
{ method = "GET"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "user", "login" ]
- (List.filterMap identity [ Just (Url.string "username" params.username), Just (Url.string "password" params.password) ])
+ , url = Url.crossOrigin basePath
+ ["user", "login"]
+ (List.filterMap identity [Just (Url.string "username" params.username), Just (Url.string "password" params.password)])
, body = Http.emptyBody
, expect = Http.expectJson params.onSend Decode.string
, timeout = Just 30000
@@ -151,16 +170,20 @@ loginUser params =
logoutUser :
{ onSend : Result Http.Error () -> msg
+
+
+
+
+
}
-> Cmd msg
logoutUser params =
Http.request
{ method = "GET"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "user", "logout" ]
- []
+ , url = Url.crossOrigin basePath
+ ["user", "logout"]
+ []
, body = Http.emptyBody
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
@@ -172,18 +195,20 @@ logoutUser params =
-}
updateUser :
{ onSend : Result Http.Error () -> msg
+
+
, body : User
, username : String
+
}
-> Cmd msg
updateUser params =
Http.request
{ method = "PUT"
, headers = []
- , url =
- Url.crossOrigin basePath
- [ "user", params.username ]
- []
+ , url = Url.crossOrigin basePath
+ ["user", params.username]
+ []
, body = Http.jsonBody <| User.encode params.body
, expect = Http.expectWhatever params.onSend
, timeout = Just 30000
diff --git a/samples/client/petstore/go-experimental/auth_test.go b/samples/client/petstore/go-experimental/auth_test.go
new file mode 100644
index 00000000000..5f817703a88
--- /dev/null
+++ b/samples/client/petstore/go-experimental/auth_test.go
@@ -0,0 +1,254 @@
+package main
+
+import (
+ "context"
+ "net/http"
+ "net/http/httputil"
+ "strings"
+ "testing"
+ "time"
+
+ "golang.org/x/oauth2"
+
+ sw "./go-petstore"
+)
+
+func TestOAuth2(t *testing.T) {
+ // Setup some fake oauth2 configuration
+ cfg := &oauth2.Config{
+ ClientID: "1234567",
+ ClientSecret: "SuperSecret",
+ Endpoint: oauth2.Endpoint{
+ AuthURL: "https://devnull",
+ TokenURL: "https://devnull",
+ },
+ RedirectURL: "https://devnull",
+ }
+
+ // and a fake token
+ tok := oauth2.Token{
+ AccessToken: "FAKE",
+ RefreshToken: "So Fake",
+ Expiry: time.Now().Add(time.Hour * 100000),
+ TokenType: "Bearer",
+ }
+
+ // then a fake tokenSource
+ tokenSource := cfg.TokenSource(createContext(nil), &tok)
+ auth := context.WithValue(context.Background(), sw.ContextOAuth2, tokenSource)
+
+ newPet := (sw.Pet{Id: 12992, Name: "gopher",
+ PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending", Tags: []sw.Tag{sw.Tag{Id: 1, Name: "tag2"}}})
+
+ r, err := client.PetApi.AddPet(context.Background(), newPet)
+
+ if err != nil {
+ t.Fatalf("Error while adding pet: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+
+ r, err = client.PetApi.DeletePet(auth, 12992, nil)
+
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+ reqb, _ := httputil.DumpRequest(r.Request, true)
+
+ if !strings.Contains((string)(reqb), "Authorization: Bearer FAKE") {
+ t.Errorf("OAuth2 Authentication is missing")
+ }
+}
+
+func TestBasicAuth(t *testing.T) {
+
+ auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
+ UserName: "fakeUser",
+ Password: "f4k3p455",
+ })
+
+ newPet := (sw.Pet{Id: 12992, Name: "gopher",
+ PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending", Tags: []sw.Tag{sw.Tag{Id: 1, Name: "tag2"}}})
+
+ r, err := client.PetApi.AddPet(auth, newPet)
+
+ if err != nil {
+ t.Fatalf("Error while adding pet: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+
+ r, err = client.PetApi.DeletePet(auth, 12992, nil)
+
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+ reqb, _ := httputil.DumpRequest(r.Request, true)
+ if !strings.Contains((string)(reqb), "Authorization: Basic ZmFrZVVzZXI6ZjRrM3A0NTU") {
+ t.Errorf("Basic Authentication is missing")
+ }
+}
+
+func TestAccessToken(t *testing.T) {
+ auth := context.WithValue(context.Background(), sw.ContextAccessToken, "TESTFAKEACCESSTOKENISFAKE")
+
+ newPet := (sw.Pet{Id: 12992, Name: "gopher",
+ PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending", Tags: []sw.Tag{sw.Tag{Id: 1, Name: "tag2"}}})
+
+ r, err := client.PetApi.AddPet(nil, newPet)
+
+ if err != nil {
+ t.Fatalf("Error while adding pet: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+
+ r, err = client.PetApi.DeletePet(auth, 12992, nil)
+
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+ reqb, _ := httputil.DumpRequest(r.Request, true)
+ if !strings.Contains((string)(reqb), "Authorization: Bearer TESTFAKEACCESSTOKENISFAKE") {
+ t.Errorf("AccessToken Authentication is missing")
+ }
+}
+
+func TestAPIKeyNoPrefix(t *testing.T) {
+ auth := context.WithValue(context.Background(), sw.ContextAPIKey, sw.APIKey{Key: "TEST123"})
+
+ newPet := (sw.Pet{Id: 12992, Name: "gopher",
+ PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending", Tags: []sw.Tag{sw.Tag{Id: 1, Name: "tag2"}}})
+
+ r, err := client.PetApi.AddPet(context.Background(), newPet)
+
+ if err != nil {
+ t.Fatalf("Error while adding pet: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+
+ _, r, err = client.PetApi.GetPetById(auth, 12992)
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+
+ reqb, _ := httputil.DumpRequest(r.Request, true)
+ if !strings.Contains((string)(reqb), "Api_key: TEST123") {
+ t.Errorf("APIKey Authentication is missing")
+ }
+
+ r, err = client.PetApi.DeletePet(auth, 12992, nil)
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
+func TestAPIKeyWithPrefix(t *testing.T) {
+ auth := context.WithValue(context.Background(), sw.ContextAPIKey, sw.APIKey{Key: "TEST123", Prefix: "Bearer"})
+
+ newPet := (sw.Pet{Id: 12992, Name: "gopher",
+ PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending", Tags: []sw.Tag{sw.Tag{Id: 1, Name: "tag2"}}})
+
+ r, err := client.PetApi.AddPet(nil, newPet)
+
+ if err != nil {
+ t.Fatalf("Error while adding pet: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+
+ _, r, err = client.PetApi.GetPetById(auth, 12992)
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+
+ reqb, _ := httputil.DumpRequest(r.Request, true)
+ if !strings.Contains((string)(reqb), "Api_key: Bearer TEST123") {
+ t.Errorf("APIKey Authentication is missing")
+ }
+
+ r, err = client.PetApi.DeletePet(auth, 12992, nil)
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
+func TestDefaultHeader(t *testing.T) {
+
+ newPet := (sw.Pet{Id: 12992, Name: "gopher",
+ PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending", Tags: []sw.Tag{sw.Tag{Id: 1, Name: "tag2"}}})
+
+ r, err := client.PetApi.AddPet(context.Background(), newPet)
+
+ if err != nil {
+ t.Fatalf("Error while adding pet: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+
+ r, err = client.PetApi.DeletePet(context.Background(), 12992, nil)
+
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+ reqb, _ := httputil.DumpRequest(r.Request, true)
+ if !strings.Contains((string)(reqb), "Testheader: testvalue") {
+ t.Errorf("Default Header is missing")
+ }
+}
+
+func TestHostOverride(t *testing.T) {
+ _, r, err := client.PetApi.FindPetsByStatus(context.Background(), nil)
+
+ if err != nil {
+ t.Fatalf("Error while finding pets by status: %v", err)
+ }
+
+ if r.Request.URL.Host != testHost {
+ t.Errorf("Request Host is %v, expected %v", r.Request.Host, testHost)
+ }
+}
+
+func TestSchemeOverride(t *testing.T) {
+ _, r, err := client.PetApi.FindPetsByStatus(context.Background(), nil)
+
+ if err != nil {
+ t.Fatalf("Error while finding pets by status: %v", err)
+ }
+
+ if r.Request.URL.Scheme != testScheme {
+ t.Errorf("Request Scheme is %v, expected %v", r.Request.URL.Scheme, testScheme)
+ }
+}
+
+// Add custom clients to the context.
+func createContext(httpClient *http.Client) context.Context {
+ parent := oauth2.NoContext
+ ctx := context.WithValue(parent, oauth2.HTTPClient, httpClient)
+ return ctx
+}
diff --git a/samples/client/petstore/go-experimental/fake_api_test.go b/samples/client/petstore/go-experimental/fake_api_test.go
new file mode 100644
index 00000000000..f4242b5048c
--- /dev/null
+++ b/samples/client/petstore/go-experimental/fake_api_test.go
@@ -0,0 +1,28 @@
+package main
+
+import (
+ "testing"
+
+ sw "./go-petstore"
+ "golang.org/x/net/context"
+)
+
+// TestPutBodyWithFileSchema ensures a model with the name 'File'
+// gets converted properly to the petstore.File struct vs. *os.File
+// as specified in typeMapping for 'File'.
+func TestPutBodyWithFileSchema(t *testing.T) {
+ return // early return to test compilation
+
+ schema := sw.FileSchemaTestClass{
+ File: sw.File{SourceURI: "https://example.com/image.png"},
+ Files: []sw.File{{SourceURI: "https://example.com/image.png"}}}
+
+ r, err := client.FakeApi.TestBodyWithFileSchema(context.Background(), schema)
+
+ if err != nil {
+ t.Fatalf("Error while adding pet: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/.gitignore b/samples/client/petstore/go-experimental/go-petstore/.gitignore
new file mode 100644
index 00000000000..daf913b1b34
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/.gitignore
@@ -0,0 +1,24 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+*.prof
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/.openapi-generator-ignore b/samples/client/petstore/go-experimental/go-petstore/.openapi-generator-ignore
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/.openapi-generator-ignore
rename to samples/client/petstore/go-experimental/go-petstore/.openapi-generator-ignore
diff --git a/samples/client/petstore/go-experimental/go-petstore/.openapi-generator/VERSION b/samples/client/petstore/go-experimental/go-petstore/.openapi-generator/VERSION
new file mode 100644
index 00000000000..479c313e87b
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/.openapi-generator/VERSION
@@ -0,0 +1 @@
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/go-experimental/go-petstore/.travis.yml b/samples/client/petstore/go-experimental/go-petstore/.travis.yml
new file mode 100644
index 00000000000..f5cb2ce9a5a
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/.travis.yml
@@ -0,0 +1,8 @@
+language: go
+
+install:
+ - go get -d -v .
+
+script:
+ - go build -v ./
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/README.md b/samples/client/petstore/go-experimental/go-petstore/README.md
new file mode 100644
index 00000000000..025ee80f2e4
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/README.md
@@ -0,0 +1,205 @@
+# Go API client for 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: \" \\
+
+## Overview
+This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
+
+- API version: 1.0.0
+- Package version: 1.0.0
+- Build package: org.openapitools.codegen.languages.GoClientExperimentalCodegen
+
+## Installation
+
+Install the following dependencies:
+
+```shell
+go get github.com/stretchr/testify/assert
+go get golang.org/x/oauth2
+go get golang.org/x/net/context
+go get github.com/antihax/optional
+```
+
+Put the package under your project folder and add the following in import:
+
+```golang
+import "./petstore"
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*AnotherFakeApi* | [**Call123TestSpecialTags**](docs/AnotherFakeApi.md#call123testspecialtags) | **Patch** /another-fake/dummy | To test special tags
+*FakeApi* | [**CreateXmlItem**](docs/FakeApi.md#createxmlitem) | **Post** /fake/create_xml_item | creates an XmlItem
+*FakeApi* | [**FakeOuterBooleanSerialize**](docs/FakeApi.md#fakeouterbooleanserialize) | **Post** /fake/outer/boolean |
+*FakeApi* | [**FakeOuterCompositeSerialize**](docs/FakeApi.md#fakeoutercompositeserialize) | **Post** /fake/outer/composite |
+*FakeApi* | [**FakeOuterNumberSerialize**](docs/FakeApi.md#fakeouternumberserialize) | **Post** /fake/outer/number |
+*FakeApi* | [**FakeOuterStringSerialize**](docs/FakeApi.md#fakeouterstringserialize) | **Post** /fake/outer/string |
+*FakeApi* | [**TestBodyWithFileSchema**](docs/FakeApi.md#testbodywithfileschema) | **Put** /fake/body-with-file-schema |
+*FakeApi* | [**TestBodyWithQueryParams**](docs/FakeApi.md#testbodywithqueryparams) | **Put** /fake/body-with-query-params |
+*FakeApi* | [**TestClientModel**](docs/FakeApi.md#testclientmodel) | **Patch** /fake | To test \"client\" model
+*FakeApi* | [**TestEndpointParameters**](docs/FakeApi.md#testendpointparameters) | **Post** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+*FakeApi* | [**TestEnumParameters**](docs/FakeApi.md#testenumparameters) | **Get** /fake | To test enum parameters
+*FakeApi* | [**TestGroupParameters**](docs/FakeApi.md#testgroupparameters) | **Delete** /fake | Fake endpoint to test group parameters (optional)
+*FakeApi* | [**TestInlineAdditionalProperties**](docs/FakeApi.md#testinlineadditionalproperties) | **Post** /fake/inline-additionalProperties | test inline additionalProperties
+*FakeApi* | [**TestJsonFormData**](docs/FakeApi.md#testjsonformdata) | **Get** /fake/jsonFormData | test json serialization of form data
+*FakeClassnameTags123Api* | [**TestClassname**](docs/FakeClassnameTags123Api.md#testclassname) | **Patch** /fake_classname_test | To test class name in snake case
+*PetApi* | [**AddPet**](docs/PetApi.md#addpet) | **Post** /pet | Add a new pet to the store
+*PetApi* | [**DeletePet**](docs/PetApi.md#deletepet) | **Delete** /pet/{petId} | Deletes a pet
+*PetApi* | [**FindPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **Get** /pet/findByStatus | Finds Pets by status
+*PetApi* | [**FindPetsByTags**](docs/PetApi.md#findpetsbytags) | **Get** /pet/findByTags | Finds Pets by tags
+*PetApi* | [**GetPetById**](docs/PetApi.md#getpetbyid) | **Get** /pet/{petId} | Find pet by ID
+*PetApi* | [**UpdatePet**](docs/PetApi.md#updatepet) | **Put** /pet | Update an existing pet
+*PetApi* | [**UpdatePetWithForm**](docs/PetApi.md#updatepetwithform) | **Post** /pet/{petId} | Updates a pet in the store with form data
+*PetApi* | [**UploadFile**](docs/PetApi.md#uploadfile) | **Post** /pet/{petId}/uploadImage | uploads an image
+*PetApi* | [**UploadFileWithRequiredFile**](docs/PetApi.md#uploadfilewithrequiredfile) | **Post** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required)
+*StoreApi* | [**DeleteOrder**](docs/StoreApi.md#deleteorder) | **Delete** /store/order/{order_id} | Delete purchase order by ID
+*StoreApi* | [**GetInventory**](docs/StoreApi.md#getinventory) | **Get** /store/inventory | Returns pet inventories by status
+*StoreApi* | [**GetOrderById**](docs/StoreApi.md#getorderbyid) | **Get** /store/order/{order_id} | Find purchase order by ID
+*StoreApi* | [**PlaceOrder**](docs/StoreApi.md#placeorder) | **Post** /store/order | Place an order for a pet
+*UserApi* | [**CreateUser**](docs/UserApi.md#createuser) | **Post** /user | Create user
+*UserApi* | [**CreateUsersWithArrayInput**](docs/UserApi.md#createuserswitharrayinput) | **Post** /user/createWithArray | Creates list of users with given input array
+*UserApi* | [**CreateUsersWithListInput**](docs/UserApi.md#createuserswithlistinput) | **Post** /user/createWithList | Creates list of users with given input array
+*UserApi* | [**DeleteUser**](docs/UserApi.md#deleteuser) | **Delete** /user/{username} | Delete user
+*UserApi* | [**GetUserByName**](docs/UserApi.md#getuserbyname) | **Get** /user/{username} | Get user by user name
+*UserApi* | [**LoginUser**](docs/UserApi.md#loginuser) | **Get** /user/login | Logs user into the system
+*UserApi* | [**LogoutUser**](docs/UserApi.md#logoutuser) | **Get** /user/logout | Logs out current logged in user session
+*UserApi* | [**UpdateUser**](docs/UserApi.md#updateuser) | **Put** /user/{username} | Updated user
+
+
+## Documentation For Models
+
+ - [AdditionalPropertiesAnyType](docs/AdditionalPropertiesAnyType.md)
+ - [AdditionalPropertiesArray](docs/AdditionalPropertiesArray.md)
+ - [AdditionalPropertiesBoolean](docs/AdditionalPropertiesBoolean.md)
+ - [AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md)
+ - [AdditionalPropertiesInteger](docs/AdditionalPropertiesInteger.md)
+ - [AdditionalPropertiesNumber](docs/AdditionalPropertiesNumber.md)
+ - [AdditionalPropertiesObject](docs/AdditionalPropertiesObject.md)
+ - [AdditionalPropertiesString](docs/AdditionalPropertiesString.md)
+ - [Animal](docs/Animal.md)
+ - [ApiResponse](docs/ApiResponse.md)
+ - [ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
+ - [ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
+ - [ArrayTest](docs/ArrayTest.md)
+ - [Capitalization](docs/Capitalization.md)
+ - [Cat](docs/Cat.md)
+ - [CatAllOf](docs/CatAllOf.md)
+ - [Category](docs/Category.md)
+ - [ClassModel](docs/ClassModel.md)
+ - [Client](docs/Client.md)
+ - [Dog](docs/Dog.md)
+ - [DogAllOf](docs/DogAllOf.md)
+ - [EnumArrays](docs/EnumArrays.md)
+ - [EnumClass](docs/EnumClass.md)
+ - [EnumTest](docs/EnumTest.md)
+ - [File](docs/File.md)
+ - [FileSchemaTestClass](docs/FileSchemaTestClass.md)
+ - [FormatTest](docs/FormatTest.md)
+ - [HasOnlyReadOnly](docs/HasOnlyReadOnly.md)
+ - [List](docs/List.md)
+ - [MapTest](docs/MapTest.md)
+ - [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
+ - [Model200Response](docs/Model200Response.md)
+ - [Name](docs/Name.md)
+ - [NumberOnly](docs/NumberOnly.md)
+ - [Order](docs/Order.md)
+ - [OuterComposite](docs/OuterComposite.md)
+ - [OuterEnum](docs/OuterEnum.md)
+ - [Pet](docs/Pet.md)
+ - [ReadOnlyFirst](docs/ReadOnlyFirst.md)
+ - [Return](docs/Return.md)
+ - [SpecialModelName](docs/SpecialModelName.md)
+ - [Tag](docs/Tag.md)
+ - [TypeHolderDefault](docs/TypeHolderDefault.md)
+ - [TypeHolderExample](docs/TypeHolderExample.md)
+ - [User](docs/User.md)
+ - [XmlItem](docs/XmlItem.md)
+
+
+## Documentation For Authorization
+
+
+
+## api_key
+
+- **Type**: API key
+
+Example
+
+```golang
+auth := context.WithValue(context.Background(), sw.ContextAPIKey, sw.APIKey{
+ Key: "APIKEY",
+ Prefix: "Bearer", // Omit if not necessary.
+})
+r, err := client.Service.Operation(auth, args)
+```
+
+
+## api_key_query
+
+- **Type**: API key
+
+Example
+
+```golang
+auth := context.WithValue(context.Background(), sw.ContextAPIKey, sw.APIKey{
+ Key: "APIKEY",
+ Prefix: "Bearer", // Omit if not necessary.
+})
+r, err := client.Service.Operation(auth, args)
+```
+
+
+## http_basic_test
+
+- **Type**: HTTP basic authentication
+
+Example
+
+```golang
+auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
+ UserName: "username",
+ Password: "password",
+})
+r, err := client.Service.Operation(auth, args)
+```
+
+
+## petstore_auth
+
+
+- **Type**: OAuth
+- **Flow**: implicit
+- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog
+- **Scopes**:
+ - **write:pets**: modify pets in your account
+ - **read:pets**: read your pets
+
+Example
+
+```golang
+auth := context.WithValue(context.Background(), sw.ContextAccessToken, "ACCESSTOKENSTRING")
+r, err := client.Service.Operation(auth, args)
+```
+
+Or via OAuth2 module to automatically refresh tokens and perform user authentication.
+
+```golang
+import "golang.org/x/oauth2"
+
+/* Perform OAuth2 round trip request and obtain a token */
+
+tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
+auth := context.WithValue(oauth2.NoContext, sw.ContextOAuth2, tokenSource)
+r, err := client.Service.Operation(auth, args)
+```
+
+
+## Author
+
+
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/api/openapi.yaml b/samples/client/petstore/go-experimental/go-petstore/api/openapi.yaml
new file mode 100644
index 00000000000..5a020a1d0ab
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/api/openapi.yaml
@@ -0,0 +1,2046 @@
+openapi: 3.0.1
+info:
+ description: 'This spec is mainly for testing Petstore server and contains fake
+ endpoints, models. Please do not use this for any other purpose. Special characters:
+ " \'
+ license:
+ name: Apache-2.0
+ url: http://www.apache.org/licenses/LICENSE-2.0.html
+ title: OpenAPI Petstore
+ version: 1.0.0
+servers:
+- url: http://petstore.swagger.io:80/v2
+tags:
+- description: Everything about your Pets
+ name: pet
+- description: Access to Petstore orders
+ name: store
+- description: Operations about user
+ name: user
+paths:
+ /pet:
+ post:
+ operationId: addPet
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ description: Pet object that needs to be added to the store
+ required: true
+ responses:
+ 200:
+ content: {}
+ description: successful operation
+ 405:
+ content: {}
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: Add a new pet to the store
+ tags:
+ - pet
+ x-codegen-request-body-name: body
+ put:
+ operationId: updatePet
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ description: Pet object that needs to be added to the store
+ required: true
+ responses:
+ 200:
+ content: {}
+ description: successful operation
+ 400:
+ content: {}
+ description: Invalid ID supplied
+ 404:
+ content: {}
+ description: Pet not found
+ 405:
+ content: {}
+ description: Validation exception
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: Update an existing pet
+ tags:
+ - pet
+ x-codegen-request-body-name: body
+ /pet/findByStatus:
+ get:
+ description: Multiple status values can be provided with comma separated strings
+ operationId: findPetsByStatus
+ parameters:
+ - description: Status values that need to be considered for filter
+ explode: false
+ in: query
+ name: status
+ required: true
+ schema:
+ items:
+ default: available
+ enum:
+ - available
+ - pending
+ - sold
+ type: string
+ type: array
+ style: form
+ responses:
+ 200:
+ content:
+ application/xml:
+ schema:
+ items:
+ $ref: '#/components/schemas/Pet'
+ type: array
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/Pet'
+ type: array
+ description: successful operation
+ 400:
+ content: {}
+ description: Invalid status value
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: Finds Pets by status
+ tags:
+ - pet
+ /pet/findByTags:
+ get:
+ deprecated: true
+ description: Multiple tags can be provided with comma separated strings. Use
+ tag1, tag2, tag3 for testing.
+ operationId: findPetsByTags
+ parameters:
+ - description: Tags to filter by
+ explode: false
+ in: query
+ name: tags
+ required: true
+ schema:
+ items:
+ type: string
+ type: array
+ style: form
+ responses:
+ 200:
+ content:
+ application/xml:
+ schema:
+ items:
+ $ref: '#/components/schemas/Pet'
+ type: array
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/Pet'
+ type: array
+ description: successful operation
+ 400:
+ content: {}
+ description: Invalid tag value
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: Finds Pets by tags
+ tags:
+ - pet
+ /pet/{petId}:
+ delete:
+ operationId: deletePet
+ parameters:
+ - in: header
+ name: api_key
+ schema:
+ type: string
+ - description: Pet id to delete
+ in: path
+ name: petId
+ required: true
+ schema:
+ format: int64
+ type: integer
+ responses:
+ 200:
+ content: {}
+ description: successful operation
+ 400:
+ content: {}
+ description: Invalid pet value
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: Deletes a pet
+ tags:
+ - pet
+ get:
+ description: Returns a single pet
+ operationId: getPetById
+ parameters:
+ - description: ID of pet to return
+ in: path
+ name: petId
+ required: true
+ schema:
+ format: int64
+ type: integer
+ responses:
+ 200:
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ description: successful operation
+ 400:
+ content: {}
+ description: Invalid ID supplied
+ 404:
+ content: {}
+ description: Pet not found
+ security:
+ - api_key: []
+ summary: Find pet by ID
+ tags:
+ - pet
+ post:
+ operationId: updatePetWithForm
+ parameters:
+ - description: ID of pet that needs to be updated
+ in: path
+ name: petId
+ required: true
+ schema:
+ format: int64
+ type: integer
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ properties:
+ name:
+ description: Updated name of the pet
+ type: string
+ status:
+ description: Updated status of the pet
+ type: string
+ responses:
+ 405:
+ content: {}
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: Updates a pet in the store with form data
+ tags:
+ - pet
+ /pet/{petId}/uploadImage:
+ post:
+ operationId: uploadFile
+ parameters:
+ - description: ID of pet to update
+ in: path
+ name: petId
+ required: true
+ schema:
+ format: int64
+ type: integer
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ properties:
+ additionalMetadata:
+ description: Additional data to pass to server
+ type: string
+ file:
+ description: file to upload
+ format: binary
+ type: string
+ responses:
+ 200:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiResponse'
+ description: successful operation
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: uploads an image
+ tags:
+ - pet
+ /store/inventory:
+ get:
+ description: Returns a map of status codes to quantities
+ operationId: getInventory
+ responses:
+ 200:
+ content:
+ application/json:
+ schema:
+ additionalProperties:
+ format: int32
+ type: integer
+ type: object
+ description: successful operation
+ security:
+ - api_key: []
+ summary: Returns pet inventories by status
+ tags:
+ - store
+ /store/order:
+ post:
+ operationId: placeOrder
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/Order'
+ description: order placed for purchasing the pet
+ required: true
+ responses:
+ 200:
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Order'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Order'
+ description: successful operation
+ 400:
+ content: {}
+ description: Invalid Order
+ summary: Place an order for a pet
+ tags:
+ - store
+ x-codegen-request-body-name: body
+ /store/order/{order_id}:
+ delete:
+ description: For valid response try integer IDs with value < 1000. Anything
+ above 1000 or nonintegers will generate API errors
+ operationId: deleteOrder
+ parameters:
+ - description: ID of the order that needs to be deleted
+ in: path
+ name: order_id
+ required: true
+ schema:
+ type: string
+ responses:
+ 400:
+ content: {}
+ description: Invalid ID supplied
+ 404:
+ content: {}
+ description: Order not found
+ summary: Delete purchase order by ID
+ tags:
+ - store
+ get:
+ description: For valid response try integer IDs with value <= 5 or > 10. Other
+ values will generated exceptions
+ operationId: getOrderById
+ parameters:
+ - description: ID of pet that needs to be fetched
+ in: path
+ name: order_id
+ required: true
+ schema:
+ format: int64
+ maximum: 5
+ minimum: 1
+ type: integer
+ responses:
+ 200:
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Order'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Order'
+ description: successful operation
+ 400:
+ content: {}
+ description: Invalid ID supplied
+ 404:
+ content: {}
+ description: Order not found
+ summary: Find purchase order by ID
+ tags:
+ - store
+ /user:
+ post:
+ description: This can only be done by the logged in user.
+ operationId: createUser
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/User'
+ description: Created user object
+ required: true
+ responses:
+ default:
+ content: {}
+ description: successful operation
+ summary: Create user
+ tags:
+ - user
+ x-codegen-request-body-name: body
+ /user/createWithArray:
+ post:
+ operationId: createUsersWithArrayInput
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ items:
+ $ref: '#/components/schemas/User'
+ type: array
+ description: List of user object
+ required: true
+ responses:
+ default:
+ content: {}
+ description: successful operation
+ summary: Creates list of users with given input array
+ tags:
+ - user
+ x-codegen-request-body-name: body
+ /user/createWithList:
+ post:
+ operationId: createUsersWithListInput
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ items:
+ $ref: '#/components/schemas/User'
+ type: array
+ description: List of user object
+ required: true
+ responses:
+ default:
+ content: {}
+ description: successful operation
+ summary: Creates list of users with given input array
+ tags:
+ - user
+ x-codegen-request-body-name: body
+ /user/login:
+ get:
+ operationId: loginUser
+ parameters:
+ - description: The user name for login
+ in: query
+ name: username
+ required: true
+ schema:
+ type: string
+ - description: The password for login in clear text
+ in: query
+ name: password
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ content:
+ application/xml:
+ schema:
+ type: string
+ application/json:
+ schema:
+ type: string
+ description: successful operation
+ headers:
+ X-Rate-Limit:
+ description: calls per hour allowed by the user
+ schema:
+ format: int32
+ type: integer
+ X-Expires-After:
+ description: date in UTC when token expires
+ schema:
+ format: date-time
+ type: string
+ 400:
+ content: {}
+ description: Invalid username/password supplied
+ summary: Logs user into the system
+ tags:
+ - user
+ /user/logout:
+ get:
+ operationId: logoutUser
+ responses:
+ default:
+ content: {}
+ description: successful operation
+ summary: Logs out current logged in user session
+ tags:
+ - user
+ /user/{username}:
+ delete:
+ description: This can only be done by the logged in user.
+ operationId: deleteUser
+ parameters:
+ - description: The name that needs to be deleted
+ in: path
+ name: username
+ required: true
+ schema:
+ type: string
+ responses:
+ 400:
+ content: {}
+ description: Invalid username supplied
+ 404:
+ content: {}
+ description: User not found
+ summary: Delete user
+ tags:
+ - user
+ get:
+ operationId: getUserByName
+ parameters:
+ - description: The name that needs to be fetched. Use user1 for testing.
+ in: path
+ name: username
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/User'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ description: successful operation
+ 400:
+ content: {}
+ description: Invalid username supplied
+ 404:
+ content: {}
+ description: User not found
+ summary: Get user by user name
+ tags:
+ - user
+ put:
+ description: This can only be done by the logged in user.
+ operationId: updateUser
+ parameters:
+ - description: name that need to be deleted
+ in: path
+ name: username
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/User'
+ description: Updated user object
+ required: true
+ responses:
+ 400:
+ content: {}
+ description: Invalid user supplied
+ 404:
+ content: {}
+ description: User not found
+ summary: Updated user
+ tags:
+ - user
+ x-codegen-request-body-name: body
+ /fake_classname_test:
+ patch:
+ description: To test class name in snake case
+ operationId: testClassname
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ description: client model
+ required: true
+ responses:
+ 200:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ description: successful operation
+ security:
+ - api_key_query: []
+ summary: To test class name in snake case
+ tags:
+ - fake_classname_tags 123#$%^
+ x-codegen-request-body-name: body
+ /fake:
+ delete:
+ description: Fake endpoint to test group parameters (optional)
+ operationId: testGroupParameters
+ parameters:
+ - description: Required String in group parameters
+ in: query
+ name: required_string_group
+ required: true
+ schema:
+ type: integer
+ - description: Required Boolean in group parameters
+ in: header
+ name: required_boolean_group
+ required: true
+ schema:
+ type: boolean
+ - description: Required Integer in group parameters
+ in: query
+ name: required_int64_group
+ required: true
+ schema:
+ format: int64
+ type: integer
+ - description: String in group parameters
+ in: query
+ name: string_group
+ schema:
+ type: integer
+ - description: Boolean in group parameters
+ in: header
+ name: boolean_group
+ schema:
+ type: boolean
+ - description: Integer in group parameters
+ in: query
+ name: int64_group
+ schema:
+ format: int64
+ type: integer
+ responses:
+ 400:
+ content: {}
+ description: Someting wrong
+ summary: Fake endpoint to test group parameters (optional)
+ tags:
+ - fake
+ x-group-parameters: true
+ get:
+ description: To test enum parameters
+ operationId: testEnumParameters
+ parameters:
+ - description: Header parameter enum test (string array)
+ explode: false
+ in: header
+ name: enum_header_string_array
+ schema:
+ items:
+ default: $
+ enum:
+ - '>'
+ - $
+ type: string
+ type: array
+ style: simple
+ - description: Header parameter enum test (string)
+ in: header
+ name: enum_header_string
+ schema:
+ default: -efg
+ enum:
+ - _abc
+ - -efg
+ - (xyz)
+ type: string
+ - description: Query parameter enum test (string array)
+ explode: false
+ in: query
+ name: enum_query_string_array
+ schema:
+ items:
+ default: $
+ enum:
+ - '>'
+ - $
+ type: string
+ type: array
+ style: form
+ - description: Query parameter enum test (string)
+ in: query
+ name: enum_query_string
+ schema:
+ default: -efg
+ enum:
+ - _abc
+ - -efg
+ - (xyz)
+ type: string
+ - description: Query parameter enum test (double)
+ in: query
+ name: enum_query_integer
+ schema:
+ enum:
+ - 1
+ - -2
+ format: int32
+ type: integer
+ - description: Query parameter enum test (double)
+ in: query
+ name: enum_query_double
+ schema:
+ enum:
+ - 1.1
+ - -1.2
+ format: double
+ type: number
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ properties:
+ enum_form_string_array:
+ description: Form parameter enum test (string array)
+ items:
+ default: $
+ enum:
+ - '>'
+ - $
+ type: string
+ type: array
+ enum_form_string:
+ default: -efg
+ description: Form parameter enum test (string)
+ enum:
+ - _abc
+ - -efg
+ - (xyz)
+ type: string
+ responses:
+ 400:
+ content: {}
+ description: Invalid request
+ 404:
+ content: {}
+ description: Not found
+ summary: To test enum parameters
+ tags:
+ - fake
+ patch:
+ description: To test "client" model
+ operationId: testClientModel
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ description: client model
+ required: true
+ responses:
+ 200:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ description: successful operation
+ summary: To test "client" model
+ tags:
+ - fake
+ x-codegen-request-body-name: body
+ post:
+ description: |
+ Fake endpoint for testing various parameters
+ 假端點
+ 偽のエンドポイント
+ 가짜 엔드 포인트
+ operationId: testEndpointParameters
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ properties:
+ integer:
+ description: None
+ maximum: 100
+ minimum: 10
+ type: integer
+ int32:
+ description: None
+ format: int32
+ maximum: 200
+ minimum: 20
+ type: integer
+ int64:
+ description: None
+ format: int64
+ type: integer
+ number:
+ description: None
+ maximum: 543.2
+ minimum: 32.1
+ type: number
+ float:
+ description: None
+ format: float
+ maximum: 987.6
+ type: number
+ double:
+ description: None
+ format: double
+ maximum: 123.4
+ minimum: 67.8
+ type: number
+ string:
+ description: None
+ pattern: /[a-z]/i
+ type: string
+ pattern_without_delimiter:
+ description: None
+ pattern: ^[A-Z].*
+ type: string
+ byte:
+ description: None
+ format: byte
+ type: string
+ binary:
+ description: None
+ format: binary
+ type: string
+ date:
+ description: None
+ format: date
+ type: string
+ dateTime:
+ description: None
+ format: date-time
+ type: string
+ password:
+ description: None
+ format: password
+ maxLength: 64
+ minLength: 10
+ type: string
+ callback:
+ description: None
+ type: string
+ required:
+ - byte
+ - double
+ - number
+ - pattern_without_delimiter
+ required: true
+ responses:
+ 400:
+ content: {}
+ description: Invalid username supplied
+ 404:
+ content: {}
+ description: User not found
+ security:
+ - http_basic_test: []
+ summary: |
+ Fake endpoint for testing various parameters
+ 假端點
+ 偽のエンドポイント
+ 가짜 엔드 포인트
+ tags:
+ - fake
+ /fake/outer/number:
+ post:
+ description: Test serialization of outer number types
+ operationId: fakeOuterNumberSerialize
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterNumber'
+ description: Input number as post body
+ required: false
+ responses:
+ 200:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterNumber'
+ description: Output number
+ tags:
+ - fake
+ x-codegen-request-body-name: body
+ /fake/outer/string:
+ post:
+ description: Test serialization of outer string types
+ operationId: fakeOuterStringSerialize
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterString'
+ description: Input string as post body
+ required: false
+ responses:
+ 200:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterString'
+ description: Output string
+ tags:
+ - fake
+ x-codegen-request-body-name: body
+ /fake/outer/boolean:
+ post:
+ description: Test serialization of outer boolean types
+ operationId: fakeOuterBooleanSerialize
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterBoolean'
+ description: Input boolean as post body
+ required: false
+ responses:
+ 200:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterBoolean'
+ description: Output boolean
+ tags:
+ - fake
+ x-codegen-request-body-name: body
+ /fake/outer/composite:
+ post:
+ description: Test serialization of object with outer number type
+ operationId: fakeOuterCompositeSerialize
+ requestBody:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterComposite'
+ description: Input composite as post body
+ required: false
+ responses:
+ 200:
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterComposite'
+ description: Output composite
+ tags:
+ - fake
+ x-codegen-request-body-name: body
+ /fake/jsonFormData:
+ get:
+ operationId: testJsonFormData
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ properties:
+ param:
+ description: field1
+ type: string
+ param2:
+ description: field2
+ type: string
+ required:
+ - param
+ - param2
+ required: true
+ responses:
+ 200:
+ content: {}
+ description: successful operation
+ summary: test json serialization of form data
+ tags:
+ - fake
+ /fake/inline-additionalProperties:
+ post:
+ operationId: testInlineAdditionalProperties
+ requestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties:
+ type: string
+ type: object
+ description: request body
+ required: true
+ responses:
+ 200:
+ content: {}
+ description: successful operation
+ summary: test inline additionalProperties
+ tags:
+ - fake
+ x-codegen-request-body-name: param
+ /fake/body-with-query-params:
+ put:
+ operationId: testBodyWithQueryParams
+ parameters:
+ - in: query
+ name: query
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ required: true
+ responses:
+ 200:
+ content: {}
+ description: Success
+ tags:
+ - fake
+ x-codegen-request-body-name: body
+ /fake/create_xml_item:
+ post:
+ description: this route creates an XmlItem
+ operationId: createXmlItem
+ requestBody:
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ application/xml; charset=utf-8:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ application/xml; charset=utf-16:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ text/xml:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ text/xml; charset=utf-8:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ text/xml; charset=utf-16:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ description: XmlItem Body
+ required: true
+ responses:
+ 200:
+ content: {}
+ description: successful operation
+ summary: creates an XmlItem
+ tags:
+ - fake
+ x-codegen-request-body-name: XmlItem
+ /another-fake/dummy:
+ patch:
+ description: To test special tags and operation ID starting with number
+ operationId: 123_test_@#$%_special_tags
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ description: client model
+ required: true
+ responses:
+ 200:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ description: successful operation
+ summary: To test special tags
+ tags:
+ - $another-fake?
+ x-codegen-request-body-name: body
+ /fake/body-with-file-schema:
+ put:
+ description: For this test, the body for this request much reference a schema
+ named `File`.
+ operationId: testBodyWithFileSchema
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FileSchemaTestClass'
+ required: true
+ responses:
+ 200:
+ content: {}
+ description: Success
+ tags:
+ - fake
+ x-codegen-request-body-name: body
+ /fake/{petId}/uploadImageWithRequiredFile:
+ post:
+ operationId: uploadFileWithRequiredFile
+ parameters:
+ - description: ID of pet to update
+ in: path
+ name: petId
+ required: true
+ schema:
+ format: int64
+ type: integer
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ properties:
+ additionalMetadata:
+ description: Additional data to pass to server
+ type: string
+ requiredFile:
+ description: file to upload
+ format: binary
+ type: string
+ required:
+ - requiredFile
+ required: true
+ responses:
+ 200:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiResponse'
+ description: successful operation
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: uploads an image (required)
+ tags:
+ - pet
+components:
+ schemas:
+ Order:
+ example:
+ petId: 6
+ quantity: 1
+ id: 0
+ shipDate: 2000-01-23T04:56:07.000+00:00
+ complete: false
+ status: placed
+ properties:
+ id:
+ format: int64
+ type: integer
+ petId:
+ format: int64
+ type: integer
+ quantity:
+ format: int32
+ type: integer
+ shipDate:
+ format: date-time
+ type: string
+ status:
+ description: Order Status
+ enum:
+ - placed
+ - approved
+ - delivered
+ type: string
+ complete:
+ default: false
+ type: boolean
+ type: object
+ xml:
+ name: Order
+ Category:
+ example:
+ name: default-name
+ id: 6
+ properties:
+ id:
+ format: int64
+ type: integer
+ name:
+ default: default-name
+ type: string
+ required:
+ - name
+ type: object
+ xml:
+ name: Category
+ User:
+ example:
+ firstName: firstName
+ lastName: lastName
+ password: password
+ userStatus: 6
+ phone: phone
+ id: 0
+ email: email
+ username: username
+ properties:
+ id:
+ format: int64
+ type: integer
+ x-is-unique: true
+ username:
+ type: string
+ firstName:
+ type: string
+ lastName:
+ type: string
+ email:
+ type: string
+ password:
+ type: string
+ phone:
+ type: string
+ userStatus:
+ description: User Status
+ format: int32
+ type: integer
+ type: object
+ xml:
+ name: User
+ Tag:
+ example:
+ name: name
+ id: 1
+ properties:
+ id:
+ format: int64
+ type: integer
+ name:
+ type: string
+ type: object
+ xml:
+ name: Tag
+ Pet:
+ example:
+ photoUrls:
+ - photoUrls
+ - photoUrls
+ name: doggie
+ id: 0
+ category:
+ name: default-name
+ id: 6
+ tags:
+ - name: name
+ id: 1
+ - name: name
+ id: 1
+ status: available
+ properties:
+ id:
+ format: int64
+ type: integer
+ x-is-unique: true
+ category:
+ $ref: '#/components/schemas/Category'
+ name:
+ example: doggie
+ type: string
+ photoUrls:
+ items:
+ type: string
+ type: array
+ xml:
+ name: photoUrl
+ wrapped: true
+ tags:
+ items:
+ $ref: '#/components/schemas/Tag'
+ type: array
+ xml:
+ name: tag
+ wrapped: true
+ status:
+ description: pet status in the store
+ enum:
+ - available
+ - pending
+ - sold
+ type: string
+ required:
+ - name
+ - photoUrls
+ type: object
+ xml:
+ name: Pet
+ ApiResponse:
+ example:
+ code: 0
+ type: type
+ message: message
+ properties:
+ code:
+ format: int32
+ type: integer
+ type:
+ type: string
+ message:
+ type: string
+ type: object
+ $special[model.name]:
+ properties:
+ $special[property.name]:
+ format: int64
+ type: integer
+ type: object
+ xml:
+ name: $special[model.name]
+ Return:
+ description: Model for testing reserved words
+ properties:
+ return:
+ format: int32
+ type: integer
+ type: object
+ xml:
+ name: Return
+ Name:
+ description: Model for testing model name same as property name
+ properties:
+ name:
+ format: int32
+ type: integer
+ snake_case:
+ format: int32
+ readOnly: true
+ type: integer
+ property:
+ type: string
+ 123Number:
+ readOnly: true
+ type: integer
+ required:
+ - name
+ type: object
+ xml:
+ name: Name
+ 200_response:
+ description: Model for testing model name starting with number
+ properties:
+ name:
+ format: int32
+ type: integer
+ class:
+ type: string
+ type: object
+ xml:
+ name: Name
+ ClassModel:
+ description: Model for testing model with "_class" property
+ properties:
+ _class:
+ type: string
+ type: object
+ Dog:
+ allOf:
+ - $ref: '#/components/schemas/Animal'
+ - $ref: '#/components/schemas/Dog_allOf'
+ Cat:
+ allOf:
+ - $ref: '#/components/schemas/Animal'
+ - $ref: '#/components/schemas/Cat_allOf'
+ Animal:
+ discriminator:
+ propertyName: className
+ properties:
+ className:
+ type: string
+ color:
+ default: red
+ type: string
+ required:
+ - className
+ type: object
+ AnimalFarm:
+ items:
+ $ref: '#/components/schemas/Animal'
+ type: array
+ format_test:
+ properties:
+ integer:
+ maximum: 1E+2
+ minimum: 1E+1
+ type: integer
+ int32:
+ format: int32
+ maximum: 2E+2
+ minimum: 2E+1
+ type: integer
+ int64:
+ format: int64
+ type: integer
+ number:
+ maximum: 543.2
+ minimum: 32.1
+ type: number
+ float:
+ format: float
+ maximum: 987.6
+ minimum: 54.3
+ type: number
+ double:
+ format: double
+ maximum: 123.4
+ minimum: 67.8
+ type: number
+ string:
+ pattern: /[a-z]/i
+ type: string
+ byte:
+ format: byte
+ pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
+ type: string
+ binary:
+ format: binary
+ type: string
+ date:
+ format: date
+ type: string
+ dateTime:
+ format: date-time
+ type: string
+ uuid:
+ example: 72f98069-206d-4f12-9f12-3d1e525a8e84
+ format: uuid
+ type: string
+ password:
+ format: password
+ maxLength: 64
+ minLength: 10
+ type: string
+ required:
+ - byte
+ - date
+ - number
+ - password
+ type: object
+ EnumClass:
+ default: -efg
+ enum:
+ - _abc
+ - -efg
+ - (xyz)
+ type: string
+ Enum_Test:
+ properties:
+ enum_string:
+ enum:
+ - UPPER
+ - lower
+ - ""
+ type: string
+ enum_string_required:
+ enum:
+ - UPPER
+ - lower
+ - ""
+ type: string
+ enum_integer:
+ enum:
+ - 1
+ - -1
+ format: int32
+ type: integer
+ enum_number:
+ enum:
+ - 1.1
+ - -1.2
+ format: double
+ type: number
+ outerEnum:
+ $ref: '#/components/schemas/OuterEnum'
+ required:
+ - enum_string_required
+ type: object
+ AdditionalPropertiesClass:
+ properties:
+ map_string:
+ additionalProperties:
+ type: string
+ type: object
+ map_number:
+ additionalProperties:
+ type: number
+ type: object
+ map_integer:
+ additionalProperties:
+ type: integer
+ type: object
+ map_boolean:
+ additionalProperties:
+ type: boolean
+ type: object
+ map_array_integer:
+ additionalProperties:
+ items:
+ type: integer
+ type: array
+ type: object
+ map_array_anytype:
+ additionalProperties:
+ items:
+ properties: {}
+ type: object
+ type: array
+ type: object
+ map_map_string:
+ additionalProperties:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ map_map_anytype:
+ additionalProperties:
+ additionalProperties:
+ properties: {}
+ type: object
+ type: object
+ type: object
+ anytype_1:
+ properties: {}
+ type: object
+ anytype_2:
+ type: object
+ anytype_3:
+ properties: {}
+ type: object
+ type: object
+ AdditionalPropertiesString:
+ additionalProperties:
+ type: string
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesInteger:
+ additionalProperties:
+ type: integer
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesNumber:
+ additionalProperties:
+ type: number
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesBoolean:
+ additionalProperties:
+ type: boolean
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesArray:
+ additionalProperties:
+ items:
+ properties: {}
+ type: object
+ type: array
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesObject:
+ additionalProperties:
+ additionalProperties:
+ properties: {}
+ type: object
+ type: object
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesAnyType:
+ additionalProperties:
+ properties: {}
+ type: object
+ properties:
+ name:
+ type: string
+ type: object
+ MixedPropertiesAndAdditionalPropertiesClass:
+ properties:
+ uuid:
+ format: uuid
+ type: string
+ dateTime:
+ format: date-time
+ type: string
+ map:
+ additionalProperties:
+ $ref: '#/components/schemas/Animal'
+ type: object
+ type: object
+ List:
+ properties:
+ 123-list:
+ type: string
+ type: object
+ Client:
+ example:
+ client: client
+ properties:
+ client:
+ type: string
+ type: object
+ ReadOnlyFirst:
+ properties:
+ bar:
+ readOnly: true
+ type: string
+ baz:
+ type: string
+ type: object
+ hasOnlyReadOnly:
+ properties:
+ bar:
+ readOnly: true
+ type: string
+ foo:
+ readOnly: true
+ type: string
+ type: object
+ Capitalization:
+ properties:
+ smallCamel:
+ type: string
+ CapitalCamel:
+ type: string
+ small_Snake:
+ type: string
+ Capital_Snake:
+ type: string
+ SCA_ETH_Flow_Points:
+ type: string
+ ATT_NAME:
+ description: |
+ Name of the pet
+ type: string
+ type: object
+ MapTest:
+ properties:
+ map_map_of_string:
+ additionalProperties:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ map_of_enum_string:
+ additionalProperties:
+ enum:
+ - UPPER
+ - lower
+ type: string
+ type: object
+ direct_map:
+ additionalProperties:
+ type: boolean
+ type: object
+ indirect_map:
+ additionalProperties:
+ type: boolean
+ type: object
+ type: object
+ ArrayTest:
+ properties:
+ array_of_string:
+ items:
+ type: string
+ type: array
+ array_array_of_integer:
+ items:
+ items:
+ format: int64
+ type: integer
+ type: array
+ type: array
+ array_array_of_model:
+ items:
+ items:
+ $ref: '#/components/schemas/ReadOnlyFirst'
+ type: array
+ type: array
+ type: object
+ NumberOnly:
+ properties:
+ JustNumber:
+ type: number
+ type: object
+ ArrayOfNumberOnly:
+ properties:
+ ArrayNumber:
+ items:
+ type: number
+ type: array
+ type: object
+ ArrayOfArrayOfNumberOnly:
+ properties:
+ ArrayArrayNumber:
+ items:
+ items:
+ type: number
+ type: array
+ type: array
+ type: object
+ EnumArrays:
+ properties:
+ just_symbol:
+ enum:
+ - '>='
+ - $
+ type: string
+ array_enum:
+ items:
+ enum:
+ - fish
+ - crab
+ type: string
+ type: array
+ type: object
+ OuterEnum:
+ enum:
+ - placed
+ - approved
+ - delivered
+ type: string
+ OuterComposite:
+ example:
+ my_string: my_string
+ my_number: 0.8008281904610115
+ my_boolean: true
+ properties:
+ my_number:
+ type: number
+ my_string:
+ type: string
+ my_boolean:
+ type: boolean
+ x-codegen-body-parameter-name: boolean_post_body
+ type: object
+ OuterNumber:
+ type: number
+ OuterString:
+ type: string
+ OuterBoolean:
+ type: boolean
+ x-codegen-body-parameter-name: boolean_post_body
+ StringBooleanMap:
+ additionalProperties:
+ type: boolean
+ type: object
+ FileSchemaTestClass:
+ example:
+ file:
+ sourceURI: sourceURI
+ files:
+ - sourceURI: sourceURI
+ - sourceURI: sourceURI
+ properties:
+ file:
+ $ref: '#/components/schemas/File'
+ files:
+ items:
+ $ref: '#/components/schemas/File'
+ type: array
+ type: object
+ File:
+ description: Must be named `File` for test.
+ example:
+ sourceURI: sourceURI
+ properties:
+ sourceURI:
+ description: Test capitalization
+ type: string
+ type: object
+ TypeHolderDefault:
+ properties:
+ string_item:
+ default: what
+ type: string
+ number_item:
+ type: number
+ integer_item:
+ type: integer
+ bool_item:
+ default: true
+ type: boolean
+ array_item:
+ items:
+ type: integer
+ type: array
+ required:
+ - array_item
+ - bool_item
+ - integer_item
+ - number_item
+ - string_item
+ type: object
+ TypeHolderExample:
+ properties:
+ string_item:
+ example: what
+ type: string
+ number_item:
+ example: 1.234
+ type: number
+ integer_item:
+ example: -2
+ type: integer
+ bool_item:
+ example: true
+ type: boolean
+ array_item:
+ example:
+ - 0
+ - 1
+ - 2
+ - 3
+ items:
+ type: integer
+ type: array
+ required:
+ - array_item
+ - bool_item
+ - integer_item
+ - number_item
+ - string_item
+ type: object
+ XmlItem:
+ properties:
+ attribute_string:
+ example: string
+ type: string
+ xml:
+ attribute: true
+ attribute_number:
+ example: 1.234
+ type: number
+ xml:
+ attribute: true
+ attribute_integer:
+ example: -2
+ type: integer
+ xml:
+ attribute: true
+ attribute_boolean:
+ example: true
+ type: boolean
+ xml:
+ attribute: true
+ wrapped_array:
+ items:
+ type: integer
+ type: array
+ xml:
+ wrapped: true
+ name_string:
+ example: string
+ type: string
+ xml:
+ name: xml_name_string
+ name_number:
+ example: 1.234
+ type: number
+ xml:
+ name: xml_name_number
+ name_integer:
+ example: -2
+ type: integer
+ xml:
+ name: xml_name_integer
+ name_boolean:
+ example: true
+ type: boolean
+ xml:
+ name: xml_name_boolean
+ name_array:
+ items:
+ type: integer
+ xml:
+ name: xml_name_array_item
+ type: array
+ name_wrapped_array:
+ items:
+ type: integer
+ xml:
+ name: xml_name_wrapped_array_item
+ type: array
+ xml:
+ name: xml_name_wrapped_array
+ wrapped: true
+ prefix_string:
+ example: string
+ type: string
+ xml:
+ prefix: ab
+ prefix_number:
+ example: 1.234
+ type: number
+ xml:
+ prefix: cd
+ prefix_integer:
+ example: -2
+ type: integer
+ xml:
+ prefix: ef
+ prefix_boolean:
+ example: true
+ type: boolean
+ xml:
+ prefix: gh
+ prefix_array:
+ items:
+ type: integer
+ xml:
+ prefix: ij
+ type: array
+ prefix_wrapped_array:
+ items:
+ type: integer
+ xml:
+ prefix: mn
+ type: array
+ xml:
+ prefix: kl
+ wrapped: true
+ namespace_string:
+ example: string
+ type: string
+ xml:
+ namespace: http://a.com/schema
+ namespace_number:
+ example: 1.234
+ type: number
+ xml:
+ namespace: http://b.com/schema
+ namespace_integer:
+ example: -2
+ type: integer
+ xml:
+ namespace: http://c.com/schema
+ namespace_boolean:
+ example: true
+ type: boolean
+ xml:
+ namespace: http://d.com/schema
+ namespace_array:
+ items:
+ type: integer
+ xml:
+ namespace: http://e.com/schema
+ type: array
+ namespace_wrapped_array:
+ items:
+ type: integer
+ xml:
+ namespace: http://g.com/schema
+ type: array
+ xml:
+ namespace: http://f.com/schema
+ wrapped: true
+ prefix_ns_string:
+ example: string
+ type: string
+ xml:
+ namespace: http://a.com/schema
+ prefix: a
+ prefix_ns_number:
+ example: 1.234
+ type: number
+ xml:
+ namespace: http://b.com/schema
+ prefix: b
+ prefix_ns_integer:
+ example: -2
+ type: integer
+ xml:
+ namespace: http://c.com/schema
+ prefix: c
+ prefix_ns_boolean:
+ example: true
+ type: boolean
+ xml:
+ namespace: http://d.com/schema
+ prefix: d
+ prefix_ns_array:
+ items:
+ type: integer
+ xml:
+ namespace: http://e.com/schema
+ prefix: e
+ type: array
+ prefix_ns_wrapped_array:
+ items:
+ type: integer
+ xml:
+ namespace: http://g.com/schema
+ prefix: g
+ type: array
+ xml:
+ namespace: http://f.com/schema
+ prefix: f
+ wrapped: true
+ type: object
+ xml:
+ namespace: http://a.com/schema
+ prefix: pre
+ Dog_allOf:
+ properties:
+ breed:
+ type: string
+ Cat_allOf:
+ properties:
+ declawed:
+ type: boolean
+ securitySchemes:
+ petstore_auth:
+ flows:
+ implicit:
+ authorizationUrl: http://petstore.swagger.io/api/oauth/dialog
+ scopes:
+ write:pets: modify pets in your account
+ read:pets: read your pets
+ type: oauth2
+ api_key:
+ in: header
+ name: api_key
+ type: apiKey
+ api_key_query:
+ in: query
+ name: api_key_query
+ type: apiKey
+ http_basic_test:
+ scheme: basic
+ type: http
diff --git a/samples/client/petstore/go-experimental/go-petstore/api_another_fake.go b/samples/client/petstore/go-experimental/go-petstore/api_another_fake.go
new file mode 100644
index 00000000000..152bf5be285
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/api_another_fake.go
@@ -0,0 +1,113 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type AnotherFakeApiService service
+
+/*
+AnotherFakeApiService To test special tags
+To test special tags and operation ID starting with number
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body client model
+@return Client
+*/
+func (a *AnotherFakeApiService) Call123TestSpecialTags(ctx context.Context, body Client) (Client, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPatch
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue Client
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/another-fake/dummy"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v Client
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/api_fake.go b/samples/client/petstore/go-experimental/go-petstore/api_fake.go
new file mode 100644
index 00000000000..e6a157d6cec
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/api_fake.go
@@ -0,0 +1,1208 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "github.com/antihax/optional"
+ "os"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type FakeApiService service
+
+/*
+FakeApiService creates an XmlItem
+this route creates an XmlItem
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param xmlItem XmlItem Body
+*/
+func (a *FakeApiService) CreateXmlItem(ctx context.Context, xmlItem XmlItem) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/create_xml_item"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/xml", "application/xml; charset=utf-8", "application/xml; charset=utf-16", "text/xml", "text/xml; charset=utf-8", "text/xml; charset=utf-16"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &xmlItem
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+FakeApiService
+Test serialization of outer boolean types
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param optional nil or *FakeOuterBooleanSerializeOpts - Optional Parameters:
+ * @param "Body" (optional.Bool) - Input boolean as post body
+@return bool
+*/
+
+type FakeOuterBooleanSerializeOpts struct {
+ Body optional.Bool
+}
+
+func (a *FakeApiService) FakeOuterBooleanSerialize(ctx context.Context, localVarOptionals *FakeOuterBooleanSerializeOpts) (bool, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue bool
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/outer/boolean"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"*/*"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ if localVarOptionals != nil && localVarOptionals.Body.IsSet() {
+ localVarPostBody = localVarOptionals.Body.Value()
+ }
+
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v bool
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+FakeApiService
+Test serialization of object with outer number type
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param optional nil or *FakeOuterCompositeSerializeOpts - Optional Parameters:
+ * @param "Body" (optional.Interface of OuterComposite) - Input composite as post body
+@return OuterComposite
+*/
+
+type FakeOuterCompositeSerializeOpts struct {
+ Body optional.Interface
+}
+
+func (a *FakeApiService) FakeOuterCompositeSerialize(ctx context.Context, localVarOptionals *FakeOuterCompositeSerializeOpts) (OuterComposite, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue OuterComposite
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/outer/composite"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"*/*"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ if localVarOptionals != nil && localVarOptionals.Body.IsSet() {
+ localVarOptionalBody, localVarOptionalBodyok := localVarOptionals.Body.Value().(OuterComposite)
+ if !localVarOptionalBodyok {
+ return localVarReturnValue, nil, reportError("body should be OuterComposite")
+ }
+ localVarPostBody = &localVarOptionalBody
+ }
+
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v OuterComposite
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+FakeApiService
+Test serialization of outer number types
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param optional nil or *FakeOuterNumberSerializeOpts - Optional Parameters:
+ * @param "Body" (optional.Float32) - Input number as post body
+@return float32
+*/
+
+type FakeOuterNumberSerializeOpts struct {
+ Body optional.Float32
+}
+
+func (a *FakeApiService) FakeOuterNumberSerialize(ctx context.Context, localVarOptionals *FakeOuterNumberSerializeOpts) (float32, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue float32
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/outer/number"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"*/*"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ if localVarOptionals != nil && localVarOptionals.Body.IsSet() {
+ localVarPostBody = localVarOptionals.Body.Value()
+ }
+
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v float32
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+FakeApiService
+Test serialization of outer string types
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param optional nil or *FakeOuterStringSerializeOpts - Optional Parameters:
+ * @param "Body" (optional.String) - Input string as post body
+@return string
+*/
+
+type FakeOuterStringSerializeOpts struct {
+ Body optional.String
+}
+
+func (a *FakeApiService) FakeOuterStringSerialize(ctx context.Context, localVarOptionals *FakeOuterStringSerializeOpts) (string, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue string
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/outer/string"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"*/*"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ if localVarOptionals != nil && localVarOptionals.Body.IsSet() {
+ localVarPostBody = localVarOptionals.Body.Value()
+ }
+
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v string
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+FakeApiService
+For this test, the body for this request much reference a schema named `File`.
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body
+*/
+func (a *FakeApiService) TestBodyWithFileSchema(ctx context.Context, body FileSchemaTestClass) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPut
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/body-with-file-schema"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+FakeApiService
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param query
+ * @param body
+*/
+func (a *FakeApiService) TestBodyWithQueryParams(ctx context.Context, query string, body User) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPut
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/body-with-query-params"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("query", parameterToString(query, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+FakeApiService To test \"client\" model
+To test \"client\" model
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body client model
+@return Client
+*/
+func (a *FakeApiService) TestClientModel(ctx context.Context, body Client) (Client, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPatch
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue Client
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v Client
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+FakeApiService Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param number None
+ * @param double None
+ * @param patternWithoutDelimiter None
+ * @param byte_ None
+ * @param optional nil or *TestEndpointParametersOpts - Optional Parameters:
+ * @param "Integer" (optional.Int32) - None
+ * @param "Int32_" (optional.Int32) - None
+ * @param "Int64_" (optional.Int64) - None
+ * @param "Float" (optional.Float32) - None
+ * @param "String_" (optional.String) - None
+ * @param "Binary" (optional.Interface of *os.File) - None
+ * @param "Date" (optional.String) - None
+ * @param "DateTime" (optional.Time) - None
+ * @param "Password" (optional.String) - None
+ * @param "Callback" (optional.String) - None
+*/
+
+type TestEndpointParametersOpts struct {
+ Integer optional.Int32
+ Int32_ optional.Int32
+ Int64_ optional.Int64
+ Float optional.Float32
+ String_ optional.String
+ Binary optional.Interface
+ Date optional.String
+ DateTime optional.Time
+ Password optional.String
+ Callback optional.String
+}
+
+func (a *FakeApiService) TestEndpointParameters(ctx context.Context, number float32, double float64, patternWithoutDelimiter string, byte_ string, localVarOptionals *TestEndpointParametersOpts) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if number < 32.1 {
+ return nil, reportError("number must be greater than 32.1")
+ }
+ if number > 543.2 {
+ return nil, reportError("number must be less than 543.2")
+ }
+ if double < 67.8 {
+ return nil, reportError("double must be greater than 67.8")
+ }
+ if double > 123.4 {
+ return nil, reportError("double must be less than 123.4")
+ }
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/x-www-form-urlencoded"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ if localVarOptionals != nil && localVarOptionals.Integer.IsSet() {
+ localVarFormParams.Add("integer", parameterToString(localVarOptionals.Integer.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.Int32_.IsSet() {
+ localVarFormParams.Add("int32", parameterToString(localVarOptionals.Int32_.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.Int64_.IsSet() {
+ localVarFormParams.Add("int64", parameterToString(localVarOptionals.Int64_.Value(), ""))
+ }
+ localVarFormParams.Add("number", parameterToString(number, ""))
+ if localVarOptionals != nil && localVarOptionals.Float.IsSet() {
+ localVarFormParams.Add("float", parameterToString(localVarOptionals.Float.Value(), ""))
+ }
+ localVarFormParams.Add("double", parameterToString(double, ""))
+ if localVarOptionals != nil && localVarOptionals.String_.IsSet() {
+ localVarFormParams.Add("string", parameterToString(localVarOptionals.String_.Value(), ""))
+ }
+ localVarFormParams.Add("pattern_without_delimiter", parameterToString(patternWithoutDelimiter, ""))
+ localVarFormParams.Add("byte", parameterToString(byte_, ""))
+ localVarFormFileName = "binary"
+ var localVarFile *os.File
+ if localVarOptionals != nil && localVarOptionals.Binary.IsSet() {
+ localVarFileOk := false
+ localVarFile, localVarFileOk = localVarOptionals.Binary.Value().(*os.File)
+ if !localVarFileOk {
+ return nil, reportError("binary should be *os.File")
+ }
+ }
+ if localVarFile != nil {
+ fbs, _ := ioutil.ReadAll(localVarFile)
+ localVarFileBytes = fbs
+ localVarFileName = localVarFile.Name()
+ localVarFile.Close()
+ }
+ if localVarOptionals != nil && localVarOptionals.Date.IsSet() {
+ localVarFormParams.Add("date", parameterToString(localVarOptionals.Date.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.DateTime.IsSet() {
+ paramJson, err := parameterToJson(localVarOptionals.DateTime.Value())
+ if err != nil {
+ return nil, err
+ }
+ localVarFormParams.Add("dateTime", paramJson)
+ }
+ if localVarOptionals != nil && localVarOptionals.Password.IsSet() {
+ localVarFormParams.Add("password", parameterToString(localVarOptionals.Password.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.Callback.IsSet() {
+ localVarFormParams.Add("callback", parameterToString(localVarOptionals.Callback.Value(), ""))
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+FakeApiService To test enum parameters
+To test enum parameters
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param optional nil or *TestEnumParametersOpts - Optional Parameters:
+ * @param "EnumHeaderStringArray" (optional.Interface of []string) - Header parameter enum test (string array)
+ * @param "EnumHeaderString" (optional.String) - Header parameter enum test (string)
+ * @param "EnumQueryStringArray" (optional.Interface of []string) - Query parameter enum test (string array)
+ * @param "EnumQueryString" (optional.String) - Query parameter enum test (string)
+ * @param "EnumQueryInteger" (optional.Int32) - Query parameter enum test (double)
+ * @param "EnumQueryDouble" (optional.Float64) - Query parameter enum test (double)
+ * @param "EnumFormStringArray" (optional.Interface of []string) - Form parameter enum test (string array)
+ * @param "EnumFormString" (optional.String) - Form parameter enum test (string)
+*/
+
+type TestEnumParametersOpts struct {
+ EnumHeaderStringArray optional.Interface
+ EnumHeaderString optional.String
+ EnumQueryStringArray optional.Interface
+ EnumQueryString optional.String
+ EnumQueryInteger optional.Int32
+ EnumQueryDouble optional.Float64
+ EnumFormStringArray optional.Interface
+ EnumFormString optional.String
+}
+
+func (a *FakeApiService) TestEnumParameters(ctx context.Context, localVarOptionals *TestEnumParametersOpts) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ if localVarOptionals != nil && localVarOptionals.EnumQueryStringArray.IsSet() {
+ localVarQueryParams.Add("enum_query_string_array", parameterToString(localVarOptionals.EnumQueryStringArray.Value(), "csv"))
+ }
+ if localVarOptionals != nil && localVarOptionals.EnumQueryString.IsSet() {
+ localVarQueryParams.Add("enum_query_string", parameterToString(localVarOptionals.EnumQueryString.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.EnumQueryInteger.IsSet() {
+ localVarQueryParams.Add("enum_query_integer", parameterToString(localVarOptionals.EnumQueryInteger.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.EnumQueryDouble.IsSet() {
+ localVarQueryParams.Add("enum_query_double", parameterToString(localVarOptionals.EnumQueryDouble.Value(), ""))
+ }
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/x-www-form-urlencoded"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ if localVarOptionals != nil && localVarOptionals.EnumHeaderStringArray.IsSet() {
+ localVarHeaderParams["enum_header_string_array"] = parameterToString(localVarOptionals.EnumHeaderStringArray.Value(), "csv")
+ }
+ if localVarOptionals != nil && localVarOptionals.EnumHeaderString.IsSet() {
+ localVarHeaderParams["enum_header_string"] = parameterToString(localVarOptionals.EnumHeaderString.Value(), "")
+ }
+ if localVarOptionals != nil && localVarOptionals.EnumFormStringArray.IsSet() {
+ localVarFormParams.Add("enum_form_string_array", parameterToString(localVarOptionals.EnumFormStringArray.Value(), "csv"))
+ }
+ if localVarOptionals != nil && localVarOptionals.EnumFormString.IsSet() {
+ localVarFormParams.Add("enum_form_string", parameterToString(localVarOptionals.EnumFormString.Value(), ""))
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+FakeApiService Fake endpoint to test group parameters (optional)
+Fake endpoint to test group parameters (optional)
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param requiredStringGroup Required String in group parameters
+ * @param requiredBooleanGroup Required Boolean in group parameters
+ * @param requiredInt64Group Required Integer in group parameters
+ * @param optional nil or *TestGroupParametersOpts - Optional Parameters:
+ * @param "StringGroup" (optional.Int32) - String in group parameters
+ * @param "BooleanGroup" (optional.Bool) - Boolean in group parameters
+ * @param "Int64Group" (optional.Int64) - Integer in group parameters
+*/
+
+type TestGroupParametersOpts struct {
+ StringGroup optional.Int32
+ BooleanGroup optional.Bool
+ Int64Group optional.Int64
+}
+
+func (a *FakeApiService) TestGroupParameters(ctx context.Context, requiredStringGroup int32, requiredBooleanGroup bool, requiredInt64Group int64, localVarOptionals *TestGroupParametersOpts) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodDelete
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("required_string_group", parameterToString(requiredStringGroup, ""))
+ localVarQueryParams.Add("required_int64_group", parameterToString(requiredInt64Group, ""))
+ if localVarOptionals != nil && localVarOptionals.StringGroup.IsSet() {
+ localVarQueryParams.Add("string_group", parameterToString(localVarOptionals.StringGroup.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.Int64Group.IsSet() {
+ localVarQueryParams.Add("int64_group", parameterToString(localVarOptionals.Int64Group.Value(), ""))
+ }
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ localVarHeaderParams["required_boolean_group"] = parameterToString(requiredBooleanGroup, "")
+ if localVarOptionals != nil && localVarOptionals.BooleanGroup.IsSet() {
+ localVarHeaderParams["boolean_group"] = parameterToString(localVarOptionals.BooleanGroup.Value(), "")
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+FakeApiService test inline additionalProperties
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param param request body
+*/
+func (a *FakeApiService) TestInlineAdditionalProperties(ctx context.Context, param map[string]string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/inline-additionalProperties"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = ¶m
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+FakeApiService test json serialization of form data
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param param field1
+ * @param param2 field2
+*/
+func (a *FakeApiService) TestJsonFormData(ctx context.Context, param string, param2 string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/jsonFormData"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/x-www-form-urlencoded"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ localVarFormParams.Add("param", parameterToString(param, ""))
+ localVarFormParams.Add("param2", parameterToString(param2, ""))
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/api_fake_classname_tags123.go b/samples/client/petstore/go-experimental/go-petstore/api_fake_classname_tags123.go
new file mode 100644
index 00000000000..6c04d55739a
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/api_fake_classname_tags123.go
@@ -0,0 +1,125 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type FakeClassnameTags123ApiService service
+
+/*
+FakeClassnameTags123ApiService To test class name in snake case
+To test class name in snake case
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body client model
+@return Client
+*/
+func (a *FakeClassnameTags123ApiService) TestClassname(ctx context.Context, body Client) (Client, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPatch
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue Client
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake_classname_test"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/json"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ if ctx != nil {
+ // API Key Authentication
+ if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
+ var key string
+ if auth.Prefix != "" {
+ key = auth.Prefix + " " + auth.Key
+ } else {
+ key = auth.Key
+ }
+ localVarQueryParams.Add("api_key_query", key)
+ }
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v Client
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/api_pet.go b/samples/client/petstore/go-experimental/go-petstore/api_pet.go
new file mode 100644
index 00000000000..243d16197f0
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/api_pet.go
@@ -0,0 +1,815 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "fmt"
+ "strings"
+ "github.com/antihax/optional"
+ "os"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type PetApiService service
+
+/*
+PetApiService Add a new pet to the store
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body Pet object that needs to be added to the store
+*/
+func (a *PetApiService) AddPet(ctx context.Context, body Pet) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/pet"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/json", "application/xml"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+PetApiService Deletes a pet
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param petId Pet id to delete
+ * @param optional nil or *DeletePetOpts - Optional Parameters:
+ * @param "ApiKey" (optional.String) -
+*/
+
+type DeletePetOpts struct {
+ ApiKey optional.String
+}
+
+func (a *PetApiService) DeletePet(ctx context.Context, petId int64, localVarOptionals *DeletePetOpts) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodDelete
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/pet/{petId}"
+ localVarPath = strings.Replace(localVarPath, "{"+"petId"+"}", fmt.Sprintf("%v", petId), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ if localVarOptionals != nil && localVarOptionals.ApiKey.IsSet() {
+ localVarHeaderParams["api_key"] = parameterToString(localVarOptionals.ApiKey.Value(), "")
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+PetApiService Finds Pets by status
+Multiple status values can be provided with comma separated strings
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param status Status values that need to be considered for filter
+@return []Pet
+*/
+func (a *PetApiService) FindPetsByStatus(ctx context.Context, status []string) ([]Pet, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []Pet
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/pet/findByStatus"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("status", parameterToString(status, "csv"))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/xml", "application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []Pet
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+PetApiService Finds Pets by tags
+Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param tags Tags to filter by
+@return []Pet
+*/
+func (a *PetApiService) FindPetsByTags(ctx context.Context, tags []string) ([]Pet, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue []Pet
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/pet/findByTags"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("tags", parameterToString(tags, "csv"))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/xml", "application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v []Pet
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+PetApiService Find pet by ID
+Returns a single pet
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param petId ID of pet to return
+@return Pet
+*/
+func (a *PetApiService) GetPetById(ctx context.Context, petId int64) (Pet, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue Pet
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/pet/{petId}"
+ localVarPath = strings.Replace(localVarPath, "{"+"petId"+"}", fmt.Sprintf("%v", petId), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/xml", "application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ if ctx != nil {
+ // API Key Authentication
+ if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
+ var key string
+ if auth.Prefix != "" {
+ key = auth.Prefix + " " + auth.Key
+ } else {
+ key = auth.Key
+ }
+ localVarHeaderParams["api_key"] = key
+ }
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v Pet
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+PetApiService Update an existing pet
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body Pet object that needs to be added to the store
+*/
+func (a *PetApiService) UpdatePet(ctx context.Context, body Pet) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPut
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/pet"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/json", "application/xml"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+PetApiService Updates a pet in the store with form data
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param petId ID of pet that needs to be updated
+ * @param optional nil or *UpdatePetWithFormOpts - Optional Parameters:
+ * @param "Name" (optional.String) - Updated name of the pet
+ * @param "Status" (optional.String) - Updated status of the pet
+*/
+
+type UpdatePetWithFormOpts struct {
+ Name optional.String
+ Status optional.String
+}
+
+func (a *PetApiService) UpdatePetWithForm(ctx context.Context, petId int64, localVarOptionals *UpdatePetWithFormOpts) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/pet/{petId}"
+ localVarPath = strings.Replace(localVarPath, "{"+"petId"+"}", fmt.Sprintf("%v", petId), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"application/x-www-form-urlencoded"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ if localVarOptionals != nil && localVarOptionals.Name.IsSet() {
+ localVarFormParams.Add("name", parameterToString(localVarOptionals.Name.Value(), ""))
+ }
+ if localVarOptionals != nil && localVarOptionals.Status.IsSet() {
+ localVarFormParams.Add("status", parameterToString(localVarOptionals.Status.Value(), ""))
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+PetApiService uploads an image
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param petId ID of pet to update
+ * @param optional nil or *UploadFileOpts - Optional Parameters:
+ * @param "AdditionalMetadata" (optional.String) - Additional data to pass to server
+ * @param "File" (optional.Interface of *os.File) - file to upload
+@return ApiResponse
+*/
+
+type UploadFileOpts struct {
+ AdditionalMetadata optional.String
+ File optional.Interface
+}
+
+func (a *PetApiService) UploadFile(ctx context.Context, petId int64, localVarOptionals *UploadFileOpts) (ApiResponse, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ApiResponse
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/pet/{petId}/uploadImage"
+ localVarPath = strings.Replace(localVarPath, "{"+"petId"+"}", fmt.Sprintf("%v", petId), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"multipart/form-data"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ if localVarOptionals != nil && localVarOptionals.AdditionalMetadata.IsSet() {
+ localVarFormParams.Add("additionalMetadata", parameterToString(localVarOptionals.AdditionalMetadata.Value(), ""))
+ }
+ localVarFormFileName = "file"
+ var localVarFile *os.File
+ if localVarOptionals != nil && localVarOptionals.File.IsSet() {
+ localVarFileOk := false
+ localVarFile, localVarFileOk = localVarOptionals.File.Value().(*os.File)
+ if !localVarFileOk {
+ return localVarReturnValue, nil, reportError("file should be *os.File")
+ }
+ }
+ if localVarFile != nil {
+ fbs, _ := ioutil.ReadAll(localVarFile)
+ localVarFileBytes = fbs
+ localVarFileName = localVarFile.Name()
+ localVarFile.Close()
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ApiResponse
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+PetApiService uploads an image (required)
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param petId ID of pet to update
+ * @param requiredFile file to upload
+ * @param optional nil or *UploadFileWithRequiredFileOpts - Optional Parameters:
+ * @param "AdditionalMetadata" (optional.String) - Additional data to pass to server
+@return ApiResponse
+*/
+
+type UploadFileWithRequiredFileOpts struct {
+ AdditionalMetadata optional.String
+}
+
+func (a *PetApiService) UploadFileWithRequiredFile(ctx context.Context, petId int64, requiredFile *os.File, localVarOptionals *UploadFileWithRequiredFileOpts) (ApiResponse, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue ApiResponse
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/fake/{petId}/uploadImageWithRequiredFile"
+ localVarPath = strings.Replace(localVarPath, "{"+"petId"+"}", fmt.Sprintf("%v", petId), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{"multipart/form-data"}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ if localVarOptionals != nil && localVarOptionals.AdditionalMetadata.IsSet() {
+ localVarFormParams.Add("additionalMetadata", parameterToString(localVarOptionals.AdditionalMetadata.Value(), ""))
+ }
+ localVarFormFileName = "requiredFile"
+ localVarFile := requiredFile
+ if localVarFile != nil {
+ fbs, _ := ioutil.ReadAll(localVarFile)
+ localVarFileBytes = fbs
+ localVarFileName = localVarFile.Name()
+ localVarFile.Close()
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v ApiResponse
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/api_store.go b/samples/client/petstore/go-experimental/go-petstore/api_store.go
new file mode 100644
index 00000000000..3211860d49c
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/api_store.go
@@ -0,0 +1,373 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "fmt"
+ "strings"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type StoreApiService service
+
+/*
+StoreApiService Delete purchase order by ID
+For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param orderId ID of the order that needs to be deleted
+*/
+func (a *StoreApiService) DeleteOrder(ctx context.Context, orderId string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodDelete
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/store/order/{order_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+StoreApiService Returns pet inventories by status
+Returns a map of status codes to quantities
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+@return map[string]int32
+*/
+func (a *StoreApiService) GetInventory(ctx context.Context) (map[string]int32, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue map[string]int32
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/store/inventory"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ if ctx != nil {
+ // API Key Authentication
+ if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
+ var key string
+ if auth.Prefix != "" {
+ key = auth.Prefix + " " + auth.Key
+ } else {
+ key = auth.Key
+ }
+ localVarHeaderParams["api_key"] = key
+ }
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v map[string]int32
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+StoreApiService Find purchase order by ID
+For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param orderId ID of pet that needs to be fetched
+@return Order
+*/
+func (a *StoreApiService) GetOrderById(ctx context.Context, orderId int64) (Order, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue Order
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/store/order/{order_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+ if orderId < 1 {
+ return localVarReturnValue, nil, reportError("orderId must be greater than 1")
+ }
+ if orderId > 5 {
+ return localVarReturnValue, nil, reportError("orderId must be less than 5")
+ }
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/xml", "application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v Order
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+StoreApiService Place an order for a pet
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body order placed for purchasing the pet
+@return Order
+*/
+func (a *StoreApiService) PlaceOrder(ctx context.Context, body Order) (Order, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue Order
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/store/order"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/xml", "application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v Order
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/api_user.go b/samples/client/petstore/go-experimental/go-petstore/api_user.go
new file mode 100644
index 00000000000..6a7d2b1195a
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/api_user.go
@@ -0,0 +1,605 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "fmt"
+ "strings"
+)
+
+// Linger please
+var (
+ _ context.Context
+)
+
+type UserApiService service
+
+/*
+UserApiService Create user
+This can only be done by the logged in user.
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body Created user object
+*/
+func (a *UserApiService) CreateUser(ctx context.Context, body User) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+UserApiService Creates list of users with given input array
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body List of user object
+*/
+func (a *UserApiService) CreateUsersWithArrayInput(ctx context.Context, body []User) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/createWithArray"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+UserApiService Creates list of users with given input array
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param body List of user object
+*/
+func (a *UserApiService) CreateUsersWithListInput(ctx context.Context, body []User) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPost
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/createWithList"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+UserApiService Delete user
+This can only be done by the logged in user.
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param username The name that needs to be deleted
+*/
+func (a *UserApiService) DeleteUser(ctx context.Context, username string) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodDelete
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/{username}"
+ localVarPath = strings.Replace(localVarPath, "{"+"username"+"}", fmt.Sprintf("%v", username), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+UserApiService Get user by user name
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param username The name that needs to be fetched. Use user1 for testing.
+@return User
+*/
+func (a *UserApiService) GetUserByName(ctx context.Context, username string) (User, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue User
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/{username}"
+ localVarPath = strings.Replace(localVarPath, "{"+"username"+"}", fmt.Sprintf("%v", username), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/xml", "application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v User
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+UserApiService Logs user into the system
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param username The user name for login
+ * @param password The password for login in clear text
+@return string
+*/
+func (a *UserApiService) LoginUser(ctx context.Context, username string, password string) (string, *http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ localVarReturnValue string
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/login"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ localVarQueryParams.Add("username", parameterToString(username, ""))
+ localVarQueryParams.Add("password", parameterToString(password, ""))
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{"application/xml", "application/json"}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarReturnValue, localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ if localVarHttpResponse.StatusCode == 200 {
+ var v string
+ err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ newErr.model = v
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHttpResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHttpResponse, nil
+}
+
+/*
+UserApiService Logs out current logged in user session
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+*/
+func (a *UserApiService) LogoutUser(ctx context.Context) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodGet
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/logout"
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
+
+/*
+UserApiService Updated user
+This can only be done by the logged in user.
+ * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ * @param username name that need to be deleted
+ * @param body Updated user object
+*/
+func (a *UserApiService) UpdateUser(ctx context.Context, username string, body User) (*http.Response, error) {
+ var (
+ localVarHttpMethod = http.MethodPut
+ localVarPostBody interface{}
+ localVarFormFileName string
+ localVarFileName string
+ localVarFileBytes []byte
+ )
+
+ // create path and map variables
+ localVarPath := a.client.cfg.BasePath + "/user/{username}"
+ localVarPath = strings.Replace(localVarPath, "{"+"username"+"}", fmt.Sprintf("%v", username), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHttpContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
+ if localVarHttpContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHttpContentType
+ }
+
+ // to determine the Accept header
+ localVarHttpHeaderAccepts := []string{}
+
+ // set Accept header
+ localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
+ if localVarHttpHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
+ }
+ // body params
+ localVarPostBody = &body
+ r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
+ if err != nil {
+ return nil, err
+ }
+
+ localVarHttpResponse, err := a.client.callAPI(r)
+ if err != nil || localVarHttpResponse == nil {
+ return localVarHttpResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
+ localVarHttpResponse.Body.Close()
+ if err != nil {
+ return localVarHttpResponse, err
+ }
+
+ if localVarHttpResponse.StatusCode >= 300 {
+ newErr := GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHttpResponse.Status,
+ }
+ return localVarHttpResponse, newErr
+ }
+
+ return localVarHttpResponse, nil
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/client.go b/samples/client/petstore/go-experimental/go-petstore/client.go
new file mode 100644
index 00000000000..79a128973d9
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/client.go
@@ -0,0 +1,514 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "bytes"
+ "context"
+ "encoding/json"
+ "encoding/xml"
+ "errors"
+ "fmt"
+ "io"
+ "mime/multipart"
+ "net/http"
+ "net/url"
+ "os"
+ "path/filepath"
+ "reflect"
+ "regexp"
+ "strconv"
+ "strings"
+ "time"
+ "unicode/utf8"
+
+ "golang.org/x/oauth2"
+)
+
+var (
+ jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?json)`)
+ xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`)
+)
+
+// APIClient manages communication with the OpenAPI Petstore API v1.0.0
+// In most cases there should be only one, shared, APIClient.
+type APIClient struct {
+ cfg *Configuration
+ common service // Reuse a single struct instead of allocating one for each service on the heap.
+
+ // API Services
+
+ AnotherFakeApi *AnotherFakeApiService
+
+ FakeApi *FakeApiService
+
+ FakeClassnameTags123Api *FakeClassnameTags123ApiService
+
+ PetApi *PetApiService
+
+ StoreApi *StoreApiService
+
+ UserApi *UserApiService
+}
+
+type service struct {
+ client *APIClient
+}
+
+// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
+// optionally a custom http.Client to allow for advanced features such as caching.
+func NewAPIClient(cfg *Configuration) *APIClient {
+ if cfg.HTTPClient == nil {
+ cfg.HTTPClient = http.DefaultClient
+ }
+
+ c := &APIClient{}
+ c.cfg = cfg
+ c.common.client = c
+
+ // API Services
+ c.AnotherFakeApi = (*AnotherFakeApiService)(&c.common)
+ c.FakeApi = (*FakeApiService)(&c.common)
+ c.FakeClassnameTags123Api = (*FakeClassnameTags123ApiService)(&c.common)
+ c.PetApi = (*PetApiService)(&c.common)
+ c.StoreApi = (*StoreApiService)(&c.common)
+ c.UserApi = (*UserApiService)(&c.common)
+
+ return c
+}
+
+func atoi(in string) (int, error) {
+ return strconv.Atoi(in)
+}
+
+// selectHeaderContentType select a content type from the available list.
+func selectHeaderContentType(contentTypes []string) string {
+ if len(contentTypes) == 0 {
+ return ""
+ }
+ if contains(contentTypes, "application/json") {
+ return "application/json"
+ }
+ return contentTypes[0] // use the first content type specified in 'consumes'
+}
+
+// selectHeaderAccept join all accept types and return
+func selectHeaderAccept(accepts []string) string {
+ if len(accepts) == 0 {
+ return ""
+ }
+
+ if contains(accepts, "application/json") {
+ return "application/json"
+ }
+
+ return strings.Join(accepts, ",")
+}
+
+// contains is a case insenstive match, finding needle in a haystack
+func contains(haystack []string, needle string) bool {
+ for _, a := range haystack {
+ if strings.ToLower(a) == strings.ToLower(needle) {
+ return true
+ }
+ }
+ return false
+}
+
+// Verify optional parameters are of the correct type.
+func typeCheckParameter(obj interface{}, expected string, name string) error {
+ // Make sure there is an object.
+ if obj == nil {
+ return nil
+ }
+
+ // Check the type is as expected.
+ if reflect.TypeOf(obj).String() != expected {
+ return fmt.Errorf("Expected %s to be of type %s but received %s.", name, expected, reflect.TypeOf(obj).String())
+ }
+ return nil
+}
+
+// parameterToString convert interface{} parameters to string, using a delimiter if format is provided.
+func parameterToString(obj interface{}, collectionFormat string) string {
+ var delimiter string
+
+ switch collectionFormat {
+ case "pipes":
+ delimiter = "|"
+ case "ssv":
+ delimiter = " "
+ case "tsv":
+ delimiter = "\t"
+ case "csv":
+ delimiter = ","
+ }
+
+ if reflect.TypeOf(obj).Kind() == reflect.Slice {
+ return strings.Trim(strings.Replace(fmt.Sprint(obj), " ", delimiter, -1), "[]")
+ } else if t, ok := obj.(time.Time); ok {
+ return t.Format(time.RFC3339)
+ }
+
+ return fmt.Sprintf("%v", obj)
+}
+
+// helper for converting interface{} parameters to json strings
+func parameterToJson(obj interface{}) (string, error) {
+ jsonBuf, err := json.Marshal(obj)
+ if err != nil {
+ return "", err
+ }
+ return string(jsonBuf), err
+}
+
+
+// callAPI do the request.
+func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
+ return c.cfg.HTTPClient.Do(request)
+}
+
+// Change base path to allow switching to mocks
+func (c *APIClient) ChangeBasePath(path string) {
+ c.cfg.BasePath = path
+}
+
+// prepareRequest build the request
+func (c *APIClient) prepareRequest(
+ ctx context.Context,
+ path string, method string,
+ postBody interface{},
+ headerParams map[string]string,
+ queryParams url.Values,
+ formParams url.Values,
+ formFileName string,
+ fileName string,
+ fileBytes []byte) (localVarRequest *http.Request, err error) {
+
+ var body *bytes.Buffer
+
+ // Detect postBody type and post.
+ if postBody != nil {
+ contentType := headerParams["Content-Type"]
+ if contentType == "" {
+ contentType = detectContentType(postBody)
+ headerParams["Content-Type"] = contentType
+ }
+
+ body, err = setBody(postBody, contentType)
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ // add form parameters and file if available.
+ if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(fileBytes) > 0 && fileName != "") {
+ if body != nil {
+ return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
+ }
+ body = &bytes.Buffer{}
+ w := multipart.NewWriter(body)
+
+ for k, v := range formParams {
+ for _, iv := range v {
+ if strings.HasPrefix(k, "@") { // file
+ err = addFile(w, k[1:], iv)
+ if err != nil {
+ return nil, err
+ }
+ } else { // form value
+ w.WriteField(k, iv)
+ }
+ }
+ }
+ if len(fileBytes) > 0 && fileName != "" {
+ w.Boundary()
+ //_, fileNm := filepath.Split(fileName)
+ part, err := w.CreateFormFile(formFileName, filepath.Base(fileName))
+ if err != nil {
+ return nil, err
+ }
+ _, err = part.Write(fileBytes)
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ // Set the Boundary in the Content-Type
+ headerParams["Content-Type"] = w.FormDataContentType()
+
+ // Set Content-Length
+ headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
+ w.Close()
+ }
+
+ if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 {
+ if body != nil {
+ return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.")
+ }
+ body = &bytes.Buffer{}
+ body.WriteString(formParams.Encode())
+ // Set Content-Length
+ headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
+ }
+
+ // Setup path and query parameters
+ url, err := url.Parse(path)
+ if err != nil {
+ return nil, err
+ }
+
+ // Override request host, if applicable
+ if c.cfg.Host != "" {
+ url.Host = c.cfg.Host
+ }
+
+ // Override request scheme, if applicable
+ if c.cfg.Scheme != "" {
+ url.Scheme = c.cfg.Scheme
+ }
+
+ // Adding Query Param
+ query := url.Query()
+ for k, v := range queryParams {
+ for _, iv := range v {
+ query.Add(k, iv)
+ }
+ }
+
+ // Encode the parameters.
+ url.RawQuery = query.Encode()
+
+ // Generate a new request
+ if body != nil {
+ localVarRequest, err = http.NewRequest(method, url.String(), body)
+ } else {
+ localVarRequest, err = http.NewRequest(method, url.String(), nil)
+ }
+ if err != nil {
+ return nil, err
+ }
+
+ // add header parameters, if any
+ if len(headerParams) > 0 {
+ headers := http.Header{}
+ for h, v := range headerParams {
+ headers.Set(h, v)
+ }
+ localVarRequest.Header = headers
+ }
+
+ // Add the user agent to the request.
+ localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent)
+
+ if ctx != nil {
+ // add context to the request
+ localVarRequest = localVarRequest.WithContext(ctx)
+
+ // Walk through any authentication.
+
+ // OAuth2 authentication
+ if tok, ok := ctx.Value(ContextOAuth2).(oauth2.TokenSource); ok {
+ // We were able to grab an oauth2 token from the context
+ var latestToken *oauth2.Token
+ if latestToken, err = tok.Token(); err != nil {
+ return nil, err
+ }
+
+ latestToken.SetAuthHeader(localVarRequest)
+ }
+
+ // Basic HTTP Authentication
+ if auth, ok := ctx.Value(ContextBasicAuth).(BasicAuth); ok {
+ localVarRequest.SetBasicAuth(auth.UserName, auth.Password)
+ }
+
+ // AccessToken Authentication
+ if auth, ok := ctx.Value(ContextAccessToken).(string); ok {
+ localVarRequest.Header.Add("Authorization", "Bearer "+auth)
+ }
+ }
+
+ for header, value := range c.cfg.DefaultHeader {
+ localVarRequest.Header.Add(header, value)
+ }
+
+ return localVarRequest, nil
+}
+
+func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
+ if s, ok := v.(*string); ok {
+ *s = string(b)
+ return nil
+ }
+ if xmlCheck.MatchString(contentType) {
+ if err = xml.Unmarshal(b, v); err != nil {
+ return err
+ }
+ return nil
+ }
+ if jsonCheck.MatchString(contentType) {
+ if err = json.Unmarshal(b, v); err != nil {
+ return err
+ }
+ return nil
+ }
+ return errors.New("undefined response type")
+}
+
+// Add a file to the multipart request
+func addFile(w *multipart.Writer, fieldName, path string) error {
+ file, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+
+ part, err := w.CreateFormFile(fieldName, filepath.Base(path))
+ if err != nil {
+ return err
+ }
+ _, err = io.Copy(part, file)
+
+ return err
+}
+
+// Prevent trying to import "fmt"
+func reportError(format string, a ...interface{}) error {
+ return fmt.Errorf(format, a...)
+}
+
+// Set request body from an interface{}
+func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
+ if bodyBuf == nil {
+ bodyBuf = &bytes.Buffer{}
+ }
+
+ if reader, ok := body.(io.Reader); ok {
+ _, err = bodyBuf.ReadFrom(reader)
+ } else if b, ok := body.([]byte); ok {
+ _, err = bodyBuf.Write(b)
+ } else if s, ok := body.(string); ok {
+ _, err = bodyBuf.WriteString(s)
+ } else if s, ok := body.(*string); ok {
+ _, err = bodyBuf.WriteString(*s)
+ } else if jsonCheck.MatchString(contentType) {
+ err = json.NewEncoder(bodyBuf).Encode(body)
+ } else if xmlCheck.MatchString(contentType) {
+ err = xml.NewEncoder(bodyBuf).Encode(body)
+ }
+
+ if err != nil {
+ return nil, err
+ }
+
+ if bodyBuf.Len() == 0 {
+ err = fmt.Errorf("Invalid body type %s\n", contentType)
+ return nil, err
+ }
+ return bodyBuf, nil
+}
+
+// detectContentType method is used to figure out `Request.Body` content type for request header
+func detectContentType(body interface{}) string {
+ contentType := "text/plain; charset=utf-8"
+ kind := reflect.TypeOf(body).Kind()
+
+ switch kind {
+ case reflect.Struct, reflect.Map, reflect.Ptr:
+ contentType = "application/json; charset=utf-8"
+ case reflect.String:
+ contentType = "text/plain; charset=utf-8"
+ default:
+ if b, ok := body.([]byte); ok {
+ contentType = http.DetectContentType(b)
+ } else if kind == reflect.Slice {
+ contentType = "application/json; charset=utf-8"
+ }
+ }
+
+ return contentType
+}
+
+// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go
+type cacheControl map[string]string
+
+func parseCacheControl(headers http.Header) cacheControl {
+ cc := cacheControl{}
+ ccHeader := headers.Get("Cache-Control")
+ for _, part := range strings.Split(ccHeader, ",") {
+ part = strings.Trim(part, " ")
+ if part == "" {
+ continue
+ }
+ if strings.ContainsRune(part, '=') {
+ keyval := strings.Split(part, "=")
+ cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",")
+ } else {
+ cc[part] = ""
+ }
+ }
+ return cc
+}
+
+// CacheExpires helper function to determine remaining time before repeating a request.
+func CacheExpires(r *http.Response) time.Time {
+ // Figure out when the cache expires.
+ var expires time.Time
+ now, err := time.Parse(time.RFC1123, r.Header.Get("date"))
+ if err != nil {
+ return time.Now()
+ }
+ respCacheControl := parseCacheControl(r.Header)
+
+ if maxAge, ok := respCacheControl["max-age"]; ok {
+ lifetime, err := time.ParseDuration(maxAge + "s")
+ if err != nil {
+ expires = now
+ } else {
+ expires = now.Add(lifetime)
+ }
+ } else {
+ expiresHeader := r.Header.Get("Expires")
+ if expiresHeader != "" {
+ expires, err = time.Parse(time.RFC1123, expiresHeader)
+ if err != nil {
+ expires = now
+ }
+ }
+ }
+ return expires
+}
+
+func strlen(s string) int {
+ return utf8.RuneCountInString(s)
+}
+
+// GenericOpenAPIError Provides access to the body, error and model on returned errors.
+type GenericOpenAPIError struct {
+ body []byte
+ error string
+ model interface{}
+}
+
+// Error returns non-empty string if there was an error.
+func (e GenericOpenAPIError) Error() string {
+ return e.error
+}
+
+// Body returns the raw bytes of the response
+func (e GenericOpenAPIError) Body() []byte {
+ return e.body
+}
+
+// Model returns the unpacked model of the error
+func (e GenericOpenAPIError) Model() interface{} {
+ return e.model
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/configuration.go b/samples/client/petstore/go-experimental/go-petstore/configuration.go
new file mode 100644
index 00000000000..19ccc325fa9
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/configuration.go
@@ -0,0 +1,72 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "net/http"
+)
+
+// contextKeys are used to identify the type of value in the context.
+// Since these are string, it is possible to get a short description of the
+// context key for logging and debugging using key.String().
+
+type contextKey string
+
+func (c contextKey) String() string {
+ return "auth " + string(c)
+}
+
+var (
+ // ContextOAuth2 takes an oauth2.TokenSource as authentication for the request.
+ ContextOAuth2 = contextKey("token")
+
+ // ContextBasicAuth takes BasicAuth as authentication for the request.
+ ContextBasicAuth = contextKey("basic")
+
+ // ContextAccessToken takes a string oauth2 access token as authentication for the request.
+ ContextAccessToken = contextKey("accesstoken")
+
+ // ContextAPIKey takes an APIKey as authentication for the request
+ ContextAPIKey = contextKey("apikey")
+)
+
+// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth
+type BasicAuth struct {
+ UserName string `json:"userName,omitempty"`
+ Password string `json:"password,omitempty"`
+}
+
+// APIKey provides API key based authentication to a request passed via context using ContextAPIKey
+type APIKey struct {
+ Key string
+ Prefix string
+}
+
+type Configuration struct {
+ BasePath string `json:"basePath,omitempty"`
+ Host string `json:"host,omitempty"`
+ Scheme string `json:"scheme,omitempty"`
+ DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
+ UserAgent string `json:"userAgent,omitempty"`
+ HTTPClient *http.Client
+}
+
+func NewConfiguration() *Configuration {
+ cfg := &Configuration{
+ BasePath: "http://petstore.swagger.io:80/v2",
+ DefaultHeader: make(map[string]string),
+ UserAgent: "OpenAPI-Generator/1.0.0/go",
+ }
+ return cfg
+}
+
+func (c *Configuration) AddDefaultHeader(key string, value string) {
+ c.DefaultHeader[key] = value
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesAnyType.md b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesAnyType.md
new file mode 100644
index 00000000000..eadec3142ce
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesAnyType.md
@@ -0,0 +1,11 @@
+# AdditionalPropertiesAnyType
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesArray.md b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesArray.md
new file mode 100644
index 00000000000..0c37598aeb2
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesArray.md
@@ -0,0 +1,11 @@
+# AdditionalPropertiesArray
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesBoolean.md b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesBoolean.md
new file mode 100644
index 00000000000..7190fe8429b
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesBoolean.md
@@ -0,0 +1,11 @@
+# AdditionalPropertiesBoolean
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesClass.md b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesClass.md
new file mode 100644
index 00000000000..877a5d45a31
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesClass.md
@@ -0,0 +1,21 @@
+# AdditionalPropertiesClass
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**MapString** | **map[string]string** | | [optional]
+**MapNumber** | **map[string]float32** | | [optional]
+**MapInteger** | **map[string]int32** | | [optional]
+**MapBoolean** | **map[string]bool** | | [optional]
+**MapArrayInteger** | [**map[string][]int32**](array.md) | | [optional]
+**MapArrayAnytype** | [**map[string][]map[string]interface{}**](array.md) | | [optional]
+**MapMapString** | [**map[string]map[string]string**](map.md) | | [optional]
+**MapMapAnytype** | [**map[string]map[string]map[string]interface{}**](map.md) | | [optional]
+**Anytype1** | [**map[string]interface{}**](.md) | | [optional]
+**Anytype2** | [**map[string]interface{}**](.md) | | [optional]
+**Anytype3** | [**map[string]interface{}**](.md) | | [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/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesInteger.md b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesInteger.md
new file mode 100644
index 00000000000..34e6fca8fb0
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesInteger.md
@@ -0,0 +1,11 @@
+# AdditionalPropertiesInteger
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesNumber.md b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesNumber.md
new file mode 100644
index 00000000000..6d41fd2315c
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesNumber.md
@@ -0,0 +1,11 @@
+# AdditionalPropertiesNumber
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesObject.md b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesObject.md
new file mode 100644
index 00000000000..b856de693b1
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesObject.md
@@ -0,0 +1,11 @@
+# AdditionalPropertiesObject
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesString.md b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesString.md
new file mode 100644
index 00000000000..69ad2065685
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AdditionalPropertiesString.md
@@ -0,0 +1,11 @@
+# AdditionalPropertiesString
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/Animal.md b/samples/client/petstore/go-experimental/go-petstore/docs/Animal.md
new file mode 100644
index 00000000000..02d23377da6
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Animal.md
@@ -0,0 +1,12 @@
+# Animal
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ClassName** | **string** | |
+**Color** | **string** | | [optional] [default to red]
+
+[[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/client/petstore/go-experimental/go-petstore/docs/AnotherFakeApi.md b/samples/client/petstore/go-experimental/go-petstore/docs/AnotherFakeApi.md
new file mode 100644
index 00000000000..0b9deb0c58a
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/AnotherFakeApi.md
@@ -0,0 +1,42 @@
+# \AnotherFakeApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**Call123TestSpecialTags**](AnotherFakeApi.md#Call123TestSpecialTags) | **Patch** /another-fake/dummy | To test special tags
+
+
+
+## Call123TestSpecialTags
+
+> Client Call123TestSpecialTags(ctx, body)
+To test special tags
+
+To test special tags and operation ID starting with number
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**Client**](Client.md)| client model |
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/docs/ApiResponse.md b/samples/client/petstore/go-experimental/go-petstore/docs/ApiResponse.md
new file mode 100644
index 00000000000..41d28fb578c
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/ApiResponse.md
@@ -0,0 +1,13 @@
+# ApiResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Code** | **int32** | | [optional]
+**Type** | **string** | | [optional]
+**Message** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/ArrayOfArrayOfNumberOnly.md b/samples/client/petstore/go-experimental/go-petstore/docs/ArrayOfArrayOfNumberOnly.md
new file mode 100644
index 00000000000..555213013b2
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/ArrayOfArrayOfNumberOnly.md
@@ -0,0 +1,11 @@
+# ArrayOfArrayOfNumberOnly
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ArrayArrayNumber** | [**[][]float32**](array.md) | | [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/client/petstore/go-experimental/go-petstore/docs/ArrayOfNumberOnly.md b/samples/client/petstore/go-experimental/go-petstore/docs/ArrayOfNumberOnly.md
new file mode 100644
index 00000000000..56618756dd7
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/ArrayOfNumberOnly.md
@@ -0,0 +1,11 @@
+# ArrayOfNumberOnly
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ArrayNumber** | **[]float32** | | [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/client/petstore/go-experimental/go-petstore/docs/ArrayTest.md b/samples/client/petstore/go-experimental/go-petstore/docs/ArrayTest.md
new file mode 100644
index 00000000000..0da0bc52d2d
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/ArrayTest.md
@@ -0,0 +1,13 @@
+# ArrayTest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ArrayOfString** | **[]string** | | [optional]
+**ArrayArrayOfInteger** | [**[][]int64**](array.md) | | [optional]
+**ArrayArrayOfModel** | [**[][]ReadOnlyFirst**](array.md) | | [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/client/petstore/go-experimental/go-petstore/docs/Capitalization.md b/samples/client/petstore/go-experimental/go-petstore/docs/Capitalization.md
new file mode 100644
index 00000000000..426b8eabd9b
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Capitalization.md
@@ -0,0 +1,16 @@
+# Capitalization
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**SmallCamel** | **string** | | [optional]
+**CapitalCamel** | **string** | | [optional]
+**SmallSnake** | **string** | | [optional]
+**CapitalSnake** | **string** | | [optional]
+**SCAETHFlowPoints** | **string** | | [optional]
+**ATT_NAME** | **string** | Name of the pet | [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/client/petstore/go-experimental/go-petstore/docs/Cat.md b/samples/client/petstore/go-experimental/go-petstore/docs/Cat.md
new file mode 100644
index 00000000000..1ef1f095e94
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Cat.md
@@ -0,0 +1,13 @@
+# Cat
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ClassName** | **string** | |
+**Color** | **string** | | [optional] [default to red]
+**Declawed** | **bool** | | [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/client/petstore/go-experimental/go-petstore/docs/CatAllOf.md b/samples/client/petstore/go-experimental/go-petstore/docs/CatAllOf.md
new file mode 100644
index 00000000000..c978cee0417
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/CatAllOf.md
@@ -0,0 +1,11 @@
+# CatAllOf
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Declawed** | **bool** | | [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/client/petstore/go-experimental/go-petstore/docs/Category.md b/samples/client/petstore/go-experimental/go-petstore/docs/Category.md
new file mode 100644
index 00000000000..01e8344bd06
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Category.md
@@ -0,0 +1,12 @@
+# Category
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int64** | | [optional]
+**Name** | **string** | | [default to default-name]
+
+[[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/client/petstore/go-experimental/go-petstore/docs/ClassModel.md b/samples/client/petstore/go-experimental/go-petstore/docs/ClassModel.md
new file mode 100644
index 00000000000..0b925cebb1f
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/ClassModel.md
@@ -0,0 +1,11 @@
+# ClassModel
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Class** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/Client.md b/samples/client/petstore/go-experimental/go-petstore/docs/Client.md
new file mode 100644
index 00000000000..551da852eec
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Client.md
@@ -0,0 +1,11 @@
+# Client
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Client** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/Dog.md b/samples/client/petstore/go-experimental/go-petstore/docs/Dog.md
new file mode 100644
index 00000000000..ff35dd5cdca
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Dog.md
@@ -0,0 +1,13 @@
+# Dog
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ClassName** | **string** | |
+**Color** | **string** | | [optional] [default to red]
+**Breed** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/DogAllOf.md b/samples/client/petstore/go-experimental/go-petstore/docs/DogAllOf.md
new file mode 100644
index 00000000000..b87153e9265
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/DogAllOf.md
@@ -0,0 +1,11 @@
+# DogAllOf
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Breed** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/EnumArrays.md b/samples/client/petstore/go-experimental/go-petstore/docs/EnumArrays.md
new file mode 100644
index 00000000000..3021f881830
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/EnumArrays.md
@@ -0,0 +1,12 @@
+# EnumArrays
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**JustSymbol** | **string** | | [optional]
+**ArrayEnum** | **[]string** | | [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/client/petstore/go-experimental/go-petstore/docs/EnumClass.md b/samples/client/petstore/go-experimental/go-petstore/docs/EnumClass.md
new file mode 100644
index 00000000000..c6932388c06
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/EnumClass.md
@@ -0,0 +1,10 @@
+# EnumClass
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[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/client/petstore/go-experimental/go-petstore/docs/EnumTest.md b/samples/client/petstore/go-experimental/go-petstore/docs/EnumTest.md
new file mode 100644
index 00000000000..eeec09b66b4
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/EnumTest.md
@@ -0,0 +1,15 @@
+# EnumTest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**EnumString** | **string** | | [optional]
+**EnumStringRequired** | **string** | |
+**EnumInteger** | **int32** | | [optional]
+**EnumNumber** | **float64** | | [optional]
+**OuterEnum** | [**OuterEnum**](OuterEnum.md) | | [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/client/petstore/go-experimental/go-petstore/docs/FakeApi.md b/samples/client/petstore/go-experimental/go-petstore/docs/FakeApi.md
new file mode 100644
index 00000000000..b7927f181e4
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/FakeApi.md
@@ -0,0 +1,541 @@
+# \FakeApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**CreateXmlItem**](FakeApi.md#CreateXmlItem) | **Post** /fake/create_xml_item | creates an XmlItem
+[**FakeOuterBooleanSerialize**](FakeApi.md#FakeOuterBooleanSerialize) | **Post** /fake/outer/boolean |
+[**FakeOuterCompositeSerialize**](FakeApi.md#FakeOuterCompositeSerialize) | **Post** /fake/outer/composite |
+[**FakeOuterNumberSerialize**](FakeApi.md#FakeOuterNumberSerialize) | **Post** /fake/outer/number |
+[**FakeOuterStringSerialize**](FakeApi.md#FakeOuterStringSerialize) | **Post** /fake/outer/string |
+[**TestBodyWithFileSchema**](FakeApi.md#TestBodyWithFileSchema) | **Put** /fake/body-with-file-schema |
+[**TestBodyWithQueryParams**](FakeApi.md#TestBodyWithQueryParams) | **Put** /fake/body-with-query-params |
+[**TestClientModel**](FakeApi.md#TestClientModel) | **Patch** /fake | To test \"client\" model
+[**TestEndpointParameters**](FakeApi.md#TestEndpointParameters) | **Post** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+[**TestEnumParameters**](FakeApi.md#TestEnumParameters) | **Get** /fake | To test enum parameters
+[**TestGroupParameters**](FakeApi.md#TestGroupParameters) | **Delete** /fake | Fake endpoint to test group parameters (optional)
+[**TestInlineAdditionalProperties**](FakeApi.md#TestInlineAdditionalProperties) | **Post** /fake/inline-additionalProperties | test inline additionalProperties
+[**TestJsonFormData**](FakeApi.md#TestJsonFormData) | **Get** /fake/jsonFormData | test json serialization of form data
+
+
+
+## CreateXmlItem
+
+> CreateXmlItem(ctx, xmlItem)
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FakeOuterBooleanSerialize
+
+> bool FakeOuterBooleanSerialize(ctx, optional)
+
+
+Test serialization of outer boolean types
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **optional** | ***FakeOuterBooleanSerializeOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a FakeOuterBooleanSerializeOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **optional.Bool**| Input boolean as post body |
+
+### Return type
+
+**bool**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FakeOuterCompositeSerialize
+
+> OuterComposite FakeOuterCompositeSerialize(ctx, optional)
+
+
+Test serialization of object with outer number type
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **optional** | ***FakeOuterCompositeSerializeOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a FakeOuterCompositeSerializeOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**optional.Interface of OuterComposite**](OuterComposite.md)| Input composite as post body |
+
+### Return type
+
+[**OuterComposite**](OuterComposite.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FakeOuterNumberSerialize
+
+> float32 FakeOuterNumberSerialize(ctx, optional)
+
+
+Test serialization of outer number types
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **optional** | ***FakeOuterNumberSerializeOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a FakeOuterNumberSerializeOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **optional.Float32**| Input number as post body |
+
+### Return type
+
+**float32**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FakeOuterStringSerialize
+
+> string FakeOuterStringSerialize(ctx, optional)
+
+
+Test serialization of outer string types
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **optional** | ***FakeOuterStringSerializeOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a FakeOuterStringSerializeOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **optional.String**| Input string as post body |
+
+### Return type
+
+**string**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## TestBodyWithFileSchema
+
+> TestBodyWithFileSchema(ctx, body)
+
+
+For this test, the body for this request much reference a schema named `File`.
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**FileSchemaTestClass**](FileSchemaTestClass.md)| |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## TestBodyWithQueryParams
+
+> TestBodyWithQueryParams(ctx, query, body)
+
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**query** | **string**| |
+**body** | [**User**](User.md)| |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## TestClientModel
+
+> Client TestClientModel(ctx, body)
+To test \"client\" model
+
+To test \"client\" model
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**Client**](Client.md)| client model |
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## TestEndpointParameters
+
+> TestEndpointParameters(ctx, number, double, patternWithoutDelimiter, byte_, optional)
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**number** | **float32**| None |
+**double** | **float64**| None |
+**patternWithoutDelimiter** | **string**| None |
+**byte_** | **string**| None |
+ **optional** | ***TestEndpointParametersOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a TestEndpointParametersOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+
+
+ **integer** | **optional.Int32**| None |
+ **int32_** | **optional.Int32**| None |
+ **int64_** | **optional.Int64**| None |
+ **float** | **optional.Float32**| None |
+ **string_** | **optional.String**| None |
+ **binary** | **optional.Interface of *os.File****optional.*os.File**| None |
+ **date** | **optional.String**| None |
+ **dateTime** | **optional.Time**| None |
+ **password** | **optional.String**| None |
+ **callback** | **optional.String**| None |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+[http_basic_test](../README.md#http_basic_test)
+
+### HTTP request headers
+
+- **Content-Type**: application/x-www-form-urlencoded
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## TestEnumParameters
+
+> TestEnumParameters(ctx, optional)
+To test enum parameters
+
+To test enum parameters
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+ **optional** | ***TestEnumParametersOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a TestEnumParametersOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **enumHeaderStringArray** | [**optional.Interface of []string**](string.md)| Header parameter enum test (string array) |
+ **enumHeaderString** | **optional.String**| Header parameter enum test (string) | [default to -efg]
+ **enumQueryStringArray** | [**optional.Interface of []string**](string.md)| Query parameter enum test (string array) |
+ **enumQueryString** | **optional.String**| Query parameter enum test (string) | [default to -efg]
+ **enumQueryInteger** | **optional.Int32**| Query parameter enum test (double) |
+ **enumQueryDouble** | **optional.Float64**| Query parameter enum test (double) |
+ **enumFormStringArray** | [**optional.Interface of []string**](string.md)| Form parameter enum test (string array) | [default to $]
+ **enumFormString** | **optional.String**| Form parameter enum test (string) | [default to -efg]
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/x-www-form-urlencoded
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## TestGroupParameters
+
+> TestGroupParameters(ctx, requiredStringGroup, requiredBooleanGroup, requiredInt64Group, optional)
+Fake endpoint to test group parameters (optional)
+
+Fake endpoint to test group parameters (optional)
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**requiredStringGroup** | **int32**| Required String in group parameters |
+**requiredBooleanGroup** | **bool**| Required Boolean in group parameters |
+**requiredInt64Group** | **int64**| Required Integer in group parameters |
+ **optional** | ***TestGroupParametersOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a TestGroupParametersOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+
+ **stringGroup** | **optional.Int32**| String in group parameters |
+ **booleanGroup** | **optional.Bool**| Boolean in group parameters |
+ **int64Group** | **optional.Int64**| Integer in group parameters |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## TestInlineAdditionalProperties
+
+> TestInlineAdditionalProperties(ctx, param)
+test inline additionalProperties
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**param** | [**map[string]string**](string.md)| request body |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## TestJsonFormData
+
+> TestJsonFormData(ctx, param, param2)
+test json serialization of form data
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**param** | **string**| field1 |
+**param2** | **string**| field2 |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: application/x-www-form-urlencoded
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/docs/FakeClassnameTags123Api.md b/samples/client/petstore/go-experimental/go-petstore/docs/FakeClassnameTags123Api.md
new file mode 100644
index 00000000000..b3cbcc2c06e
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/FakeClassnameTags123Api.md
@@ -0,0 +1,42 @@
+# \FakeClassnameTags123Api
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**TestClassname**](FakeClassnameTags123Api.md#TestClassname) | **Patch** /fake_classname_test | To test class name in snake case
+
+
+
+## TestClassname
+
+> Client TestClassname(ctx, body)
+To test class name in snake case
+
+To test class name in snake case
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**Client**](Client.md)| client model |
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+[api_key_query](../README.md#api_key_query)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/docs/File.md b/samples/client/petstore/go-experimental/go-petstore/docs/File.md
new file mode 100644
index 00000000000..a113b0312cd
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/File.md
@@ -0,0 +1,11 @@
+# File
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**SourceURI** | **string** | Test capitalization | [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/client/petstore/go-experimental/go-petstore/docs/FileSchemaTestClass.md b/samples/client/petstore/go-experimental/go-petstore/docs/FileSchemaTestClass.md
new file mode 100644
index 00000000000..ae51414dd6c
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/FileSchemaTestClass.md
@@ -0,0 +1,12 @@
+# FileSchemaTestClass
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**File** | [**File**](File.md) | | [optional]
+**Files** | [**[]File**](File.md) | | [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/client/petstore/go-experimental/go-petstore/docs/FormatTest.md b/samples/client/petstore/go-experimental/go-petstore/docs/FormatTest.md
new file mode 100644
index 00000000000..ee089a03cd7
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/FormatTest.md
@@ -0,0 +1,23 @@
+# FormatTest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Integer** | **int32** | | [optional]
+**Int32** | **int32** | | [optional]
+**Int64** | **int64** | | [optional]
+**Number** | **float32** | |
+**Float** | **float32** | | [optional]
+**Double** | **float64** | | [optional]
+**String** | **string** | | [optional]
+**Byte** | **string** | |
+**Binary** | [***os.File**](*os.File.md) | | [optional]
+**Date** | **string** | |
+**DateTime** | [**time.Time**](time.Time.md) | | [optional]
+**Uuid** | **string** | | [optional]
+**Password** | **string** | |
+
+[[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/client/petstore/go-experimental/go-petstore/docs/HasOnlyReadOnly.md b/samples/client/petstore/go-experimental/go-petstore/docs/HasOnlyReadOnly.md
new file mode 100644
index 00000000000..9e2f4957359
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/HasOnlyReadOnly.md
@@ -0,0 +1,12 @@
+# HasOnlyReadOnly
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Bar** | **string** | | [optional]
+**Foo** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/List.md b/samples/client/petstore/go-experimental/go-petstore/docs/List.md
new file mode 100644
index 00000000000..bba2e529906
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/List.md
@@ -0,0 +1,11 @@
+# List
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Var123List** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/MapTest.md b/samples/client/petstore/go-experimental/go-petstore/docs/MapTest.md
new file mode 100644
index 00000000000..6645e044658
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/MapTest.md
@@ -0,0 +1,14 @@
+# MapTest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**MapMapOfString** | [**map[string]map[string]string**](map.md) | | [optional]
+**MapOfEnumString** | **map[string]string** | | [optional]
+**DirectMap** | **map[string]bool** | | [optional]
+**IndirectMap** | **map[string]bool** | | [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/client/petstore/go-experimental/go-petstore/docs/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/client/petstore/go-experimental/go-petstore/docs/MixedPropertiesAndAdditionalPropertiesClass.md
new file mode 100644
index 00000000000..a2ce1068b27
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/MixedPropertiesAndAdditionalPropertiesClass.md
@@ -0,0 +1,13 @@
+# MixedPropertiesAndAdditionalPropertiesClass
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Uuid** | **string** | | [optional]
+**DateTime** | [**time.Time**](time.Time.md) | | [optional]
+**Map** | [**map[string]Animal**](Animal.md) | | [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/client/petstore/go-experimental/go-petstore/docs/Model200Response.md b/samples/client/petstore/go-experimental/go-petstore/docs/Model200Response.md
new file mode 100644
index 00000000000..27b93bd1549
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Model200Response.md
@@ -0,0 +1,12 @@
+# Model200Response
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **int32** | | [optional]
+**Class** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/Name.md b/samples/client/petstore/go-experimental/go-petstore/docs/Name.md
new file mode 100644
index 00000000000..453e54d9851
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Name.md
@@ -0,0 +1,14 @@
+# Name
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **int32** | |
+**SnakeCase** | **int32** | | [optional]
+**Property** | **string** | | [optional]
+**Var123Number** | **int32** | | [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/client/petstore/go-experimental/go-petstore/docs/NumberOnly.md b/samples/client/petstore/go-experimental/go-petstore/docs/NumberOnly.md
new file mode 100644
index 00000000000..604cf37eede
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/NumberOnly.md
@@ -0,0 +1,11 @@
+# NumberOnly
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**JustNumber** | **float32** | | [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/client/petstore/go-experimental/go-petstore/docs/Order.md b/samples/client/petstore/go-experimental/go-petstore/docs/Order.md
new file mode 100644
index 00000000000..eeef0971005
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Order.md
@@ -0,0 +1,16 @@
+# Order
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int64** | | [optional]
+**PetId** | **int64** | | [optional]
+**Quantity** | **int32** | | [optional]
+**ShipDate** | [**time.Time**](time.Time.md) | | [optional]
+**Status** | **string** | Order Status | [optional]
+**Complete** | **bool** | | [optional] [default to false]
+
+[[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/client/petstore/go-experimental/go-petstore/docs/OuterComposite.md b/samples/client/petstore/go-experimental/go-petstore/docs/OuterComposite.md
new file mode 100644
index 00000000000..df9bce1bd90
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/OuterComposite.md
@@ -0,0 +1,13 @@
+# OuterComposite
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**MyNumber** | **float32** | | [optional]
+**MyString** | **string** | | [optional]
+**MyBoolean** | **bool** | | [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/client/petstore/go-experimental/go-petstore/docs/OuterEnum.md b/samples/client/petstore/go-experimental/go-petstore/docs/OuterEnum.md
new file mode 100644
index 00000000000..c97466159c5
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/OuterEnum.md
@@ -0,0 +1,10 @@
+# OuterEnum
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[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/client/petstore/go-experimental/go-petstore/docs/Pet.md b/samples/client/petstore/go-experimental/go-petstore/docs/Pet.md
new file mode 100644
index 00000000000..c48104c6397
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Pet.md
@@ -0,0 +1,16 @@
+# Pet
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int64** | | [optional]
+**Category** | [**Category**](Category.md) | | [optional]
+**Name** | **string** | |
+**PhotoUrls** | **[]string** | |
+**Tags** | [**[]Tag**](Tag.md) | | [optional]
+**Status** | **string** | pet status in the store | [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/client/petstore/go-experimental/go-petstore/docs/PetApi.md b/samples/client/petstore/go-experimental/go-petstore/docs/PetApi.md
new file mode 100644
index 00000000000..de48d4b6763
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/PetApi.md
@@ -0,0 +1,350 @@
+# \PetApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**AddPet**](PetApi.md#AddPet) | **Post** /pet | Add a new pet to the store
+[**DeletePet**](PetApi.md#DeletePet) | **Delete** /pet/{petId} | Deletes a pet
+[**FindPetsByStatus**](PetApi.md#FindPetsByStatus) | **Get** /pet/findByStatus | Finds Pets by status
+[**FindPetsByTags**](PetApi.md#FindPetsByTags) | **Get** /pet/findByTags | Finds Pets by tags
+[**GetPetById**](PetApi.md#GetPetById) | **Get** /pet/{petId} | Find pet by ID
+[**UpdatePet**](PetApi.md#UpdatePet) | **Put** /pet | Update an existing pet
+[**UpdatePetWithForm**](PetApi.md#UpdatePetWithForm) | **Post** /pet/{petId} | Updates a pet in the store with form data
+[**UploadFile**](PetApi.md#UploadFile) | **Post** /pet/{petId}/uploadImage | uploads an image
+[**UploadFileWithRequiredFile**](PetApi.md#UploadFileWithRequiredFile) | **Post** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required)
+
+
+
+## AddPet
+
+> AddPet(ctx, body)
+Add a new pet to the store
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json, application/xml
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## DeletePet
+
+> DeletePet(ctx, petId, optional)
+Deletes a pet
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**petId** | **int64**| Pet id to delete |
+ **optional** | ***DeletePetOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a DeletePetOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **apiKey** | **optional.String**| |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FindPetsByStatus
+
+> []Pet FindPetsByStatus(ctx, status)
+Finds Pets by status
+
+Multiple status values can be provided with comma separated strings
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**status** | [**[]string**](string.md)| Status values that need to be considered for filter |
+
+### Return type
+
+[**[]Pet**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## FindPetsByTags
+
+> []Pet FindPetsByTags(ctx, tags)
+Finds Pets by tags
+
+Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**tags** | [**[]string**](string.md)| Tags to filter by |
+
+### Return type
+
+[**[]Pet**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## GetPetById
+
+> Pet GetPetById(ctx, petId)
+Find pet by ID
+
+Returns a single pet
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**petId** | **int64**| ID of pet to return |
+
+### Return type
+
+[**Pet**](Pet.md)
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## UpdatePet
+
+> UpdatePet(ctx, body)
+Update an existing pet
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+- **Content-Type**: application/json, application/xml
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## UpdatePetWithForm
+
+> UpdatePetWithForm(ctx, petId, optional)
+Updates a pet in the store with form data
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**petId** | **int64**| ID of pet that needs to be updated |
+ **optional** | ***UpdatePetWithFormOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a UpdatePetWithFormOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **name** | **optional.String**| Updated name of the pet |
+ **status** | **optional.String**| Updated status of the pet |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+- **Content-Type**: application/x-www-form-urlencoded
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## UploadFile
+
+> ApiResponse UploadFile(ctx, petId, optional)
+uploads an image
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**petId** | **int64**| ID of pet to update |
+ **optional** | ***UploadFileOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a UploadFileOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+ **additionalMetadata** | **optional.String**| Additional data to pass to server |
+ **file** | **optional.Interface of *os.File****optional.*os.File**| file to upload |
+
+### Return type
+
+[**ApiResponse**](ApiResponse.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+- **Content-Type**: multipart/form-data
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## UploadFileWithRequiredFile
+
+> ApiResponse UploadFileWithRequiredFile(ctx, petId, requiredFile, optional)
+uploads an image (required)
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**petId** | **int64**| ID of pet to update |
+**requiredFile** | ***os.File*****os.File**| file to upload |
+ **optional** | ***UploadFileWithRequiredFileOpts** | optional parameters | nil if no parameters
+
+### Optional Parameters
+
+Optional parameters are passed through a pointer to a UploadFileWithRequiredFileOpts struct
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+ **additionalMetadata** | **optional.String**| Additional data to pass to server |
+
+### Return type
+
+[**ApiResponse**](ApiResponse.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+- **Content-Type**: multipart/form-data
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/docs/ReadOnlyFirst.md b/samples/client/petstore/go-experimental/go-petstore/docs/ReadOnlyFirst.md
new file mode 100644
index 00000000000..3fee799f295
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/ReadOnlyFirst.md
@@ -0,0 +1,12 @@
+# ReadOnlyFirst
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Bar** | **string** | | [optional]
+**Baz** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/Return.md b/samples/client/petstore/go-experimental/go-petstore/docs/Return.md
new file mode 100644
index 00000000000..11be0b27c50
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Return.md
@@ -0,0 +1,11 @@
+# Return
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Return** | **int32** | | [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/client/petstore/go-experimental/go-petstore/docs/SpecialModelName.md b/samples/client/petstore/go-experimental/go-petstore/docs/SpecialModelName.md
new file mode 100644
index 00000000000..96d7a28a409
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/SpecialModelName.md
@@ -0,0 +1,11 @@
+# SpecialModelName
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**SpecialPropertyName** | **int64** | | [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/client/petstore/go-experimental/go-petstore/docs/StoreApi.md b/samples/client/petstore/go-experimental/go-petstore/docs/StoreApi.md
new file mode 100644
index 00000000000..083ed777590
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/StoreApi.md
@@ -0,0 +1,138 @@
+# \StoreApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**DeleteOrder**](StoreApi.md#DeleteOrder) | **Delete** /store/order/{order_id} | Delete purchase order by ID
+[**GetInventory**](StoreApi.md#GetInventory) | **Get** /store/inventory | Returns pet inventories by status
+[**GetOrderById**](StoreApi.md#GetOrderById) | **Get** /store/order/{order_id} | Find purchase order by ID
+[**PlaceOrder**](StoreApi.md#PlaceOrder) | **Post** /store/order | Place an order for a pet
+
+
+
+## DeleteOrder
+
+> DeleteOrder(ctx, orderId)
+Delete purchase order by ID
+
+For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**orderId** | **string**| ID of the order that needs to be deleted |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## GetInventory
+
+> map[string]int32 GetInventory(ctx, )
+Returns pet inventories by status
+
+Returns a map of status codes to quantities
+
+### Required Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+**map[string]int32**
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## GetOrderById
+
+> Order GetOrderById(ctx, orderId)
+Find purchase order by ID
+
+For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**orderId** | **int64**| ID of pet that needs to be fetched |
+
+### Return type
+
+[**Order**](Order.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## PlaceOrder
+
+> Order PlaceOrder(ctx, body)
+Place an order for a pet
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**Order**](Order.md)| order placed for purchasing the pet |
+
+### Return type
+
+[**Order**](Order.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/docs/Tag.md b/samples/client/petstore/go-experimental/go-petstore/docs/Tag.md
new file mode 100644
index 00000000000..d6b3cc117b5
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/Tag.md
@@ -0,0 +1,12 @@
+# Tag
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int64** | | [optional]
+**Name** | **string** | | [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/client/petstore/go-experimental/go-petstore/docs/TypeHolderDefault.md b/samples/client/petstore/go-experimental/go-petstore/docs/TypeHolderDefault.md
new file mode 100644
index 00000000000..1b9f077c303
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/TypeHolderDefault.md
@@ -0,0 +1,15 @@
+# TypeHolderDefault
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**StringItem** | **string** | | [default to what]
+**NumberItem** | **float32** | |
+**IntegerItem** | **int32** | |
+**BoolItem** | **bool** | | [default to true]
+**ArrayItem** | **[]int32** | |
+
+[[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/client/petstore/go-experimental/go-petstore/docs/TypeHolderExample.md b/samples/client/petstore/go-experimental/go-petstore/docs/TypeHolderExample.md
new file mode 100644
index 00000000000..abe85f9799d
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/TypeHolderExample.md
@@ -0,0 +1,15 @@
+# TypeHolderExample
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**StringItem** | **string** | |
+**NumberItem** | **float32** | |
+**IntegerItem** | **int32** | |
+**BoolItem** | **bool** | |
+**ArrayItem** | **[]int32** | |
+
+[[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/client/petstore/go-experimental/go-petstore/docs/User.md b/samples/client/petstore/go-experimental/go-petstore/docs/User.md
new file mode 100644
index 00000000000..7675d7ff701
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/User.md
@@ -0,0 +1,18 @@
+# User
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int64** | | [optional]
+**Username** | **string** | | [optional]
+**FirstName** | **string** | | [optional]
+**LastName** | **string** | | [optional]
+**Email** | **string** | | [optional]
+**Password** | **string** | | [optional]
+**Phone** | **string** | | [optional]
+**UserStatus** | **int32** | User Status | [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/client/petstore/go-experimental/go-petstore/docs/UserApi.md b/samples/client/petstore/go-experimental/go-petstore/docs/UserApi.md
new file mode 100644
index 00000000000..3201e1771dc
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/UserApi.md
@@ -0,0 +1,268 @@
+# \UserApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**CreateUser**](UserApi.md#CreateUser) | **Post** /user | Create user
+[**CreateUsersWithArrayInput**](UserApi.md#CreateUsersWithArrayInput) | **Post** /user/createWithArray | Creates list of users with given input array
+[**CreateUsersWithListInput**](UserApi.md#CreateUsersWithListInput) | **Post** /user/createWithList | Creates list of users with given input array
+[**DeleteUser**](UserApi.md#DeleteUser) | **Delete** /user/{username} | Delete user
+[**GetUserByName**](UserApi.md#GetUserByName) | **Get** /user/{username} | Get user by user name
+[**LoginUser**](UserApi.md#LoginUser) | **Get** /user/login | Logs user into the system
+[**LogoutUser**](UserApi.md#LogoutUser) | **Get** /user/logout | Logs out current logged in user session
+[**UpdateUser**](UserApi.md#UpdateUser) | **Put** /user/{username} | Updated user
+
+
+
+## CreateUser
+
+> CreateUser(ctx, body)
+Create user
+
+This can only be done by the logged in user.
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**User**](User.md)| Created user object |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## CreateUsersWithArrayInput
+
+> CreateUsersWithArrayInput(ctx, body)
+Creates list of users with given input array
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**[]User**](User.md)| List of user object |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## CreateUsersWithListInput
+
+> CreateUsersWithListInput(ctx, body)
+Creates list of users with given input array
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**body** | [**[]User**](User.md)| List of user object |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## DeleteUser
+
+> DeleteUser(ctx, username)
+Delete user
+
+This can only be done by the logged in user.
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**username** | **string**| The name that needs to be deleted |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## GetUserByName
+
+> User GetUserByName(ctx, username)
+Get user by user name
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**username** | **string**| The name that needs to be fetched. Use user1 for testing. |
+
+### Return type
+
+[**User**](User.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## LoginUser
+
+> string LoginUser(ctx, username, password)
+Logs user into the system
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**username** | **string**| The user name for login |
+**password** | **string**| The password for login in clear text |
+
+### Return type
+
+**string**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## LogoutUser
+
+> LogoutUser(ctx, )
+Logs out current logged in user session
+
+### Required Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
+
+## UpdateUser
+
+> UpdateUser(ctx, username, body)
+Updated user
+
+This can only be done by the logged in user.
+
+### Required Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**username** | **string**| name that need to be deleted |
+**body** | [**User**](User.md)| Updated user object |
+
+### Return type
+
+ (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/docs/XmlItem.md b/samples/client/petstore/go-experimental/go-petstore/docs/XmlItem.md
new file mode 100644
index 00000000000..8a9c2dc0b50
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/docs/XmlItem.md
@@ -0,0 +1,39 @@
+# XmlItem
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**AttributeString** | **string** | | [optional]
+**AttributeNumber** | **float32** | | [optional]
+**AttributeInteger** | **int32** | | [optional]
+**AttributeBoolean** | **bool** | | [optional]
+**WrappedArray** | **[]int32** | | [optional]
+**NameString** | **string** | | [optional]
+**NameNumber** | **float32** | | [optional]
+**NameInteger** | **int32** | | [optional]
+**NameBoolean** | **bool** | | [optional]
+**NameArray** | **[]int32** | | [optional]
+**NameWrappedArray** | **[]int32** | | [optional]
+**PrefixString** | **string** | | [optional]
+**PrefixNumber** | **float32** | | [optional]
+**PrefixInteger** | **int32** | | [optional]
+**PrefixBoolean** | **bool** | | [optional]
+**PrefixArray** | **[]int32** | | [optional]
+**PrefixWrappedArray** | **[]int32** | | [optional]
+**NamespaceString** | **string** | | [optional]
+**NamespaceNumber** | **float32** | | [optional]
+**NamespaceInteger** | **int32** | | [optional]
+**NamespaceBoolean** | **bool** | | [optional]
+**NamespaceArray** | **[]int32** | | [optional]
+**NamespaceWrappedArray** | **[]int32** | | [optional]
+**PrefixNsString** | **string** | | [optional]
+**PrefixNsNumber** | **float32** | | [optional]
+**PrefixNsInteger** | **int32** | | [optional]
+**PrefixNsBoolean** | **bool** | | [optional]
+**PrefixNsArray** | **[]int32** | | [optional]
+**PrefixNsWrappedArray** | **[]int32** | | [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/client/petstore/go-experimental/go-petstore/git_push.sh b/samples/client/petstore/go-experimental/go-petstore/git_push.sh
new file mode 100644
index 00000000000..8442b80bb44
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/git_push.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
+#
+# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update"
+
+git_user_id=$1
+git_repo_id=$2
+release_note=$3
+
+if [ "$git_user_id" = "" ]; then
+ git_user_id="GIT_USER_ID"
+ echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
+fi
+
+if [ "$git_repo_id" = "" ]; then
+ git_repo_id="GIT_REPO_ID"
+ echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
+fi
+
+if [ "$release_note" = "" ]; then
+ release_note="Minor update"
+ echo "[INFO] No command line input provided. Set \$release_note to $release_note"
+fi
+
+# Initialize the local directory as a Git repository
+git init
+
+# Adds the files in the local repository and stages them for commit.
+git add .
+
+# Commits the tracked changes and prepares them to be pushed to a remote repository.
+git commit -m "$release_note"
+
+# Sets the new remote
+git_remote=`git remote`
+if [ "$git_remote" = "" ]; then # git remote not defined
+
+ if [ "$GIT_TOKEN" = "" ]; then
+ echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
+ git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git
+ else
+ git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git
+ fi
+
+fi
+
+git pull origin master
+
+# Pushes (Forces) the changes in the local repository up to the remote repository
+echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git"
+git push origin master 2>&1 | grep -v 'To https'
+
diff --git a/samples/client/petstore/go-experimental/go-petstore/go.mod b/samples/client/petstore/go-experimental/go-petstore/go.mod
new file mode 100644
index 00000000000..199809ed706
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/go.mod
@@ -0,0 +1,6 @@
+module github.com/GIT_USER_ID/GIT_REPO_ID
+
+require (
+ github.com/antihax/optional v0.0.0-20180406194304-ca021399b1a6
+ golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a
+)
diff --git a/samples/client/petstore/go-experimental/go-petstore/go.sum b/samples/client/petstore/go-experimental/go-petstore/go.sum
new file mode 100644
index 00000000000..e3c16fef3ac
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/go.sum
@@ -0,0 +1,11 @@
+cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/antihax/optional v0.0.0-20180406194304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a h1:tImsplftrFpALCYumobsd0K86vlAs/eXGFms2txfJfA=
+golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_200_response.go b/samples/client/petstore/go-experimental/go-petstore/model_200_response.go
new file mode 100644
index 00000000000..f918cabaaae
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_200_response.go
@@ -0,0 +1,16 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+// Model for testing model name starting with number
+type Model200Response struct {
+ Name int32 `json:"name,omitempty"`
+ Class string `json:"class,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_any_type.go b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_any_type.go
new file mode 100644
index 00000000000..ca06584a72f
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_any_type.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type AdditionalPropertiesAnyType struct {
+ Name string `json:"name,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_array.go b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_array.go
new file mode 100644
index 00000000000..2e71585506f
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_array.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type AdditionalPropertiesArray struct {
+ Name string `json:"name,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_boolean.go b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_boolean.go
new file mode 100644
index 00000000000..09f1ac3b32b
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_boolean.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type AdditionalPropertiesBoolean struct {
+ Name string `json:"name,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_class.go b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_class.go
new file mode 100644
index 00000000000..2e1845e194f
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_class.go
@@ -0,0 +1,24 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type AdditionalPropertiesClass struct {
+ MapString map[string]string `json:"map_string,omitempty"`
+ MapNumber map[string]float32 `json:"map_number,omitempty"`
+ MapInteger map[string]int32 `json:"map_integer,omitempty"`
+ MapBoolean map[string]bool `json:"map_boolean,omitempty"`
+ MapArrayInteger map[string][]int32 `json:"map_array_integer,omitempty"`
+ MapArrayAnytype map[string][]map[string]interface{} `json:"map_array_anytype,omitempty"`
+ MapMapString map[string]map[string]string `json:"map_map_string,omitempty"`
+ MapMapAnytype map[string]map[string]map[string]interface{} `json:"map_map_anytype,omitempty"`
+ Anytype1 map[string]interface{} `json:"anytype_1,omitempty"`
+ Anytype2 map[string]interface{} `json:"anytype_2,omitempty"`
+ Anytype3 map[string]interface{} `json:"anytype_3,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_integer.go b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_integer.go
new file mode 100644
index 00000000000..2f69fe4b012
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_integer.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type AdditionalPropertiesInteger struct {
+ Name string `json:"name,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_number.go b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_number.go
new file mode 100644
index 00000000000..900b2ec32cc
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_number.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type AdditionalPropertiesNumber struct {
+ Name string `json:"name,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_object.go b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_object.go
new file mode 100644
index 00000000000..99fa6d02fdc
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_object.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type AdditionalPropertiesObject struct {
+ Name string `json:"name,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_string.go b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_string.go
new file mode 100644
index 00000000000..82fe0e4ed30
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_additional_properties_string.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type AdditionalPropertiesString struct {
+ Name string `json:"name,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_animal.go b/samples/client/petstore/go-experimental/go-petstore/model_animal.go
new file mode 100644
index 00000000000..39d0d2d1ec3
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_animal.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type Animal struct {
+ ClassName string `json:"className"`
+ Color string `json:"color,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_api_response.go b/samples/client/petstore/go-experimental/go-petstore/model_api_response.go
new file mode 100644
index 00000000000..12732fa32c6
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_api_response.go
@@ -0,0 +1,16 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type ApiResponse struct {
+ Code int32 `json:"code,omitempty"`
+ Type string `json:"type,omitempty"`
+ Message string `json:"message,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_array_of_array_of_number_only.go b/samples/client/petstore/go-experimental/go-petstore/model_array_of_array_of_number_only.go
new file mode 100644
index 00000000000..8bf700c7eb3
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_array_of_array_of_number_only.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type ArrayOfArrayOfNumberOnly struct {
+ ArrayArrayNumber [][]float32 `json:"ArrayArrayNumber,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_array_of_number_only.go b/samples/client/petstore/go-experimental/go-petstore/model_array_of_number_only.go
new file mode 100644
index 00000000000..ccb473355ca
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_array_of_number_only.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type ArrayOfNumberOnly struct {
+ ArrayNumber []float32 `json:"ArrayNumber,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_array_test_.go b/samples/client/petstore/go-experimental/go-petstore/model_array_test_.go
new file mode 100644
index 00000000000..f8819800934
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_array_test_.go
@@ -0,0 +1,16 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type ArrayTest struct {
+ ArrayOfString []string `json:"array_of_string,omitempty"`
+ ArrayArrayOfInteger [][]int64 `json:"array_array_of_integer,omitempty"`
+ ArrayArrayOfModel [][]ReadOnlyFirst `json:"array_array_of_model,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_capitalization.go b/samples/client/petstore/go-experimental/go-petstore/model_capitalization.go
new file mode 100644
index 00000000000..8284ba9c765
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_capitalization.go
@@ -0,0 +1,20 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type Capitalization struct {
+ SmallCamel string `json:"smallCamel,omitempty"`
+ CapitalCamel string `json:"CapitalCamel,omitempty"`
+ SmallSnake string `json:"small_Snake,omitempty"`
+ CapitalSnake string `json:"Capital_Snake,omitempty"`
+ SCAETHFlowPoints string `json:"SCA_ETH_Flow_Points,omitempty"`
+ // Name of the pet
+ ATT_NAME string `json:"ATT_NAME,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_cat.go b/samples/client/petstore/go-experimental/go-petstore/model_cat.go
new file mode 100644
index 00000000000..58b3deeb938
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_cat.go
@@ -0,0 +1,16 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type Cat struct {
+ ClassName string `json:"className"`
+ Color string `json:"color,omitempty"`
+ Declawed bool `json:"declawed,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_cat_all_of.go b/samples/client/petstore/go-experimental/go-petstore/model_cat_all_of.go
new file mode 100644
index 00000000000..3c1d802bd41
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_cat_all_of.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type CatAllOf struct {
+ Declawed bool `json:"declawed,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_category.go b/samples/client/petstore/go-experimental/go-petstore/model_category.go
new file mode 100644
index 00000000000..2f971417ac1
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_category.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type Category struct {
+ Id int64 `json:"id,omitempty"`
+ Name string `json:"name"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_class_model.go b/samples/client/petstore/go-experimental/go-petstore/model_class_model.go
new file mode 100644
index 00000000000..09c7e891968
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_class_model.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+// Model for testing model with \"_class\" property
+type ClassModel struct {
+ Class string `json:"_class,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_client.go b/samples/client/petstore/go-experimental/go-petstore/model_client.go
new file mode 100644
index 00000000000..3aa61112c4d
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_client.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type Client struct {
+ Client string `json:"client,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_dog.go b/samples/client/petstore/go-experimental/go-petstore/model_dog.go
new file mode 100644
index 00000000000..3f791ca1947
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_dog.go
@@ -0,0 +1,16 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type Dog struct {
+ ClassName string `json:"className"`
+ Color string `json:"color,omitempty"`
+ Breed string `json:"breed,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_dog_all_of.go b/samples/client/petstore/go-experimental/go-petstore/model_dog_all_of.go
new file mode 100644
index 00000000000..a0db0aba4b5
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_dog_all_of.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type DogAllOf struct {
+ Breed string `json:"breed,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_enum_arrays.go b/samples/client/petstore/go-experimental/go-petstore/model_enum_arrays.go
new file mode 100644
index 00000000000..ab4dce92ebb
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_enum_arrays.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type EnumArrays struct {
+ JustSymbol string `json:"just_symbol,omitempty"`
+ ArrayEnum []string `json:"array_enum,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_enum_class.go b/samples/client/petstore/go-experimental/go-petstore/model_enum_class.go
new file mode 100644
index 00000000000..534ce432881
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_enum_class.go
@@ -0,0 +1,18 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+type EnumClass string
+
+// List of EnumClass
+const (
+ ABC EnumClass = "_abc"
+ EFG EnumClass = "-efg"
+ XYZ EnumClass = "(xyz)"
+)
\ No newline at end of file
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_enum_test_.go b/samples/client/petstore/go-experimental/go-petstore/model_enum_test_.go
new file mode 100644
index 00000000000..f85f31501a0
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_enum_test_.go
@@ -0,0 +1,18 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type EnumTest struct {
+ EnumString string `json:"enum_string,omitempty"`
+ EnumStringRequired string `json:"enum_string_required"`
+ EnumInteger int32 `json:"enum_integer,omitempty"`
+ EnumNumber float64 `json:"enum_number,omitempty"`
+ OuterEnum OuterEnum `json:"outerEnum,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_file.go b/samples/client/petstore/go-experimental/go-petstore/model_file.go
new file mode 100644
index 00000000000..2782ccc9a2a
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_file.go
@@ -0,0 +1,16 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+// Must be named `File` for test.
+type File struct {
+ // Test capitalization
+ SourceURI string `json:"sourceURI,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_file_schema_test_class.go b/samples/client/petstore/go-experimental/go-petstore/model_file_schema_test_class.go
new file mode 100644
index 00000000000..487f766c649
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_file_schema_test_class.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type FileSchemaTestClass struct {
+ File File `json:"file,omitempty"`
+ Files []File `json:"files,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_format_test_.go b/samples/client/petstore/go-experimental/go-petstore/model_format_test_.go
new file mode 100644
index 00000000000..d723bdfee39
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_format_test_.go
@@ -0,0 +1,30 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+import (
+ "os"
+ "time"
+)
+
+type FormatTest struct {
+ Integer int32 `json:"integer,omitempty"`
+ Int32 int32 `json:"int32,omitempty"`
+ Int64 int64 `json:"int64,omitempty"`
+ Number float32 `json:"number"`
+ Float float32 `json:"float,omitempty"`
+ Double float64 `json:"double,omitempty"`
+ String string `json:"string,omitempty"`
+ Byte string `json:"byte"`
+ Binary *os.File `json:"binary,omitempty"`
+ Date string `json:"date"`
+ DateTime time.Time `json:"dateTime,omitempty"`
+ Uuid string `json:"uuid,omitempty"`
+ Password string `json:"password"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_has_only_read_only.go b/samples/client/petstore/go-experimental/go-petstore/model_has_only_read_only.go
new file mode 100644
index 00000000000..1cf0e4f530d
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_has_only_read_only.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type HasOnlyReadOnly struct {
+ Bar string `json:"bar,omitempty"`
+ Foo string `json:"foo,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_list.go b/samples/client/petstore/go-experimental/go-petstore/model_list.go
new file mode 100644
index 00000000000..12f3bd3f660
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_list.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type List struct {
+ Var123List string `json:"123-list,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_map_test_.go b/samples/client/petstore/go-experimental/go-petstore/model_map_test_.go
new file mode 100644
index 00000000000..830e760fe31
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_map_test_.go
@@ -0,0 +1,17 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type MapTest struct {
+ MapMapOfString map[string]map[string]string `json:"map_map_of_string,omitempty"`
+ MapOfEnumString map[string]string `json:"map_of_enum_string,omitempty"`
+ DirectMap map[string]bool `json:"direct_map,omitempty"`
+ IndirectMap map[string]bool `json:"indirect_map,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_mixed_properties_and_additional_properties_class.go b/samples/client/petstore/go-experimental/go-petstore/model_mixed_properties_and_additional_properties_class.go
new file mode 100644
index 00000000000..0ad92e96f8e
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_mixed_properties_and_additional_properties_class.go
@@ -0,0 +1,19 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+import (
+ "time"
+)
+
+type MixedPropertiesAndAdditionalPropertiesClass struct {
+ Uuid string `json:"uuid,omitempty"`
+ DateTime time.Time `json:"dateTime,omitempty"`
+ Map map[string]Animal `json:"map,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_name.go b/samples/client/petstore/go-experimental/go-petstore/model_name.go
new file mode 100644
index 00000000000..dde1b92eb6a
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_name.go
@@ -0,0 +1,18 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+// Model for testing model name same as property name
+type Name struct {
+ Name int32 `json:"name"`
+ SnakeCase int32 `json:"snake_case,omitempty"`
+ Property string `json:"property,omitempty"`
+ Var123Number int32 `json:"123Number,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_number_only.go b/samples/client/petstore/go-experimental/go-petstore/model_number_only.go
new file mode 100644
index 00000000000..7a2fd5fd8f6
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_number_only.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type NumberOnly struct {
+ JustNumber float32 `json:"JustNumber,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_order.go b/samples/client/petstore/go-experimental/go-petstore/model_order.go
new file mode 100644
index 00000000000..c81d67ae0fa
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_order.go
@@ -0,0 +1,23 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+import (
+ "time"
+)
+
+type Order struct {
+ Id int64 `json:"id,omitempty"`
+ PetId int64 `json:"petId,omitempty"`
+ Quantity int32 `json:"quantity,omitempty"`
+ ShipDate time.Time `json:"shipDate,omitempty"`
+ // Order Status
+ Status string `json:"status,omitempty"`
+ Complete bool `json:"complete,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_outer_composite.go b/samples/client/petstore/go-experimental/go-petstore/model_outer_composite.go
new file mode 100644
index 00000000000..0ebb526267e
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_outer_composite.go
@@ -0,0 +1,16 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type OuterComposite struct {
+ MyNumber float32 `json:"my_number,omitempty"`
+ MyString string `json:"my_string,omitempty"`
+ MyBoolean bool `json:"my_boolean,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_outer_enum.go b/samples/client/petstore/go-experimental/go-petstore/model_outer_enum.go
new file mode 100644
index 00000000000..903d31e8269
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_outer_enum.go
@@ -0,0 +1,18 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+type OuterEnum string
+
+// List of OuterEnum
+const (
+ PLACED OuterEnum = "placed"
+ APPROVED OuterEnum = "approved"
+ DELIVERED OuterEnum = "delivered"
+)
\ No newline at end of file
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_pet.go b/samples/client/petstore/go-experimental/go-petstore/model_pet.go
new file mode 100644
index 00000000000..4930dbb92e8
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_pet.go
@@ -0,0 +1,20 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type Pet struct {
+ Id int64 `json:"id,omitempty"`
+ Category Category `json:"category,omitempty"`
+ Name string `json:"name"`
+ PhotoUrls []string `json:"photoUrls"`
+ Tags []Tag `json:"tags,omitempty"`
+ // pet status in the store
+ Status string `json:"status,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_read_only_first.go b/samples/client/petstore/go-experimental/go-petstore/model_read_only_first.go
new file mode 100644
index 00000000000..6b22163900b
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_read_only_first.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type ReadOnlyFirst struct {
+ Bar string `json:"bar,omitempty"`
+ Baz string `json:"baz,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_return.go b/samples/client/petstore/go-experimental/go-petstore/model_return.go
new file mode 100644
index 00000000000..7851dd851d3
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_return.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+// Model for testing reserved words
+type Return struct {
+ Return int32 `json:"return,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_special_model_name.go b/samples/client/petstore/go-experimental/go-petstore/model_special_model_name.go
new file mode 100644
index 00000000000..f906e91987d
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_special_model_name.go
@@ -0,0 +1,14 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type SpecialModelName struct {
+ SpecialPropertyName int64 `json:"$special[property.name],omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_tag.go b/samples/client/petstore/go-experimental/go-petstore/model_tag.go
new file mode 100644
index 00000000000..37a2b63d445
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_tag.go
@@ -0,0 +1,15 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type Tag struct {
+ Id int64 `json:"id,omitempty"`
+ Name string `json:"name,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_type_holder_default.go b/samples/client/petstore/go-experimental/go-petstore/model_type_holder_default.go
new file mode 100644
index 00000000000..68e1218ec95
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_type_holder_default.go
@@ -0,0 +1,18 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type TypeHolderDefault struct {
+ StringItem string `json:"string_item"`
+ NumberItem float32 `json:"number_item"`
+ IntegerItem int32 `json:"integer_item"`
+ BoolItem bool `json:"bool_item"`
+ ArrayItem []int32 `json:"array_item"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_type_holder_example.go b/samples/client/petstore/go-experimental/go-petstore/model_type_holder_example.go
new file mode 100644
index 00000000000..e129bb6a765
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_type_holder_example.go
@@ -0,0 +1,18 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type TypeHolderExample struct {
+ StringItem string `json:"string_item"`
+ NumberItem float32 `json:"number_item"`
+ IntegerItem int32 `json:"integer_item"`
+ BoolItem bool `json:"bool_item"`
+ ArrayItem []int32 `json:"array_item"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_user.go b/samples/client/petstore/go-experimental/go-petstore/model_user.go
new file mode 100644
index 00000000000..caff75ebc2c
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_user.go
@@ -0,0 +1,22 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type User struct {
+ Id int64 `json:"id,omitempty"`
+ Username string `json:"username,omitempty"`
+ FirstName string `json:"firstName,omitempty"`
+ LastName string `json:"lastName,omitempty"`
+ Email string `json:"email,omitempty"`
+ Password string `json:"password,omitempty"`
+ Phone string `json:"phone,omitempty"`
+ // User Status
+ UserStatus int32 `json:"userStatus,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/model_xml_item.go b/samples/client/petstore/go-experimental/go-petstore/model_xml_item.go
new file mode 100644
index 00000000000..a623bda5c74
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/model_xml_item.go
@@ -0,0 +1,42 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+type XmlItem struct {
+ AttributeString string `json:"attribute_string,omitempty"`
+ AttributeNumber float32 `json:"attribute_number,omitempty"`
+ AttributeInteger int32 `json:"attribute_integer,omitempty"`
+ AttributeBoolean bool `json:"attribute_boolean,omitempty"`
+ WrappedArray []int32 `json:"wrapped_array,omitempty"`
+ NameString string `json:"name_string,omitempty"`
+ NameNumber float32 `json:"name_number,omitempty"`
+ NameInteger int32 `json:"name_integer,omitempty"`
+ NameBoolean bool `json:"name_boolean,omitempty"`
+ NameArray []int32 `json:"name_array,omitempty"`
+ NameWrappedArray []int32 `json:"name_wrapped_array,omitempty"`
+ PrefixString string `json:"prefix_string,omitempty"`
+ PrefixNumber float32 `json:"prefix_number,omitempty"`
+ PrefixInteger int32 `json:"prefix_integer,omitempty"`
+ PrefixBoolean bool `json:"prefix_boolean,omitempty"`
+ PrefixArray []int32 `json:"prefix_array,omitempty"`
+ PrefixWrappedArray []int32 `json:"prefix_wrapped_array,omitempty"`
+ NamespaceString string `json:"namespace_string,omitempty"`
+ NamespaceNumber float32 `json:"namespace_number,omitempty"`
+ NamespaceInteger int32 `json:"namespace_integer,omitempty"`
+ NamespaceBoolean bool `json:"namespace_boolean,omitempty"`
+ NamespaceArray []int32 `json:"namespace_array,omitempty"`
+ NamespaceWrappedArray []int32 `json:"namespace_wrapped_array,omitempty"`
+ PrefixNsString string `json:"prefix_ns_string,omitempty"`
+ PrefixNsNumber float32 `json:"prefix_ns_number,omitempty"`
+ PrefixNsInteger int32 `json:"prefix_ns_integer,omitempty"`
+ PrefixNsBoolean bool `json:"prefix_ns_boolean,omitempty"`
+ PrefixNsArray []int32 `json:"prefix_ns_array,omitempty"`
+ PrefixNsWrappedArray []int32 `json:"prefix_ns_wrapped_array,omitempty"`
+}
diff --git a/samples/client/petstore/go-experimental/go-petstore/response.go b/samples/client/petstore/go-experimental/go-petstore/response.go
new file mode 100644
index 00000000000..38f373df75e
--- /dev/null
+++ b/samples/client/petstore/go-experimental/go-petstore/response.go
@@ -0,0 +1,43 @@
+/*
+ * 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: \" \\
+ *
+ * API version: 1.0.0
+ * Generated by: OpenAPI Generator (https://openapi-generator.tech)
+ */
+
+package petstore
+
+import (
+ "net/http"
+)
+
+type APIResponse struct {
+ *http.Response `json:"-"`
+ Message string `json:"message,omitempty"`
+ // Operation is the name of the OpenAPI operation.
+ Operation string `json:"operation,omitempty"`
+ // RequestURL is the request URL. This value is always available, even if the
+ // embedded *http.Response is nil.
+ RequestURL string `json:"url,omitempty"`
+ // Method is the HTTP method used for the request. This value is always
+ // available, even if the embedded *http.Response is nil.
+ Method string `json:"method,omitempty"`
+ // Payload holds the contents of the response body (which may be nil or empty).
+ // This is provided here as the raw response.Body() reader will have already
+ // been drained.
+ Payload []byte `json:"-"`
+}
+
+func NewAPIResponse(r *http.Response) *APIResponse {
+
+ response := &APIResponse{Response: r}
+ return response
+}
+
+func NewAPIResponseWithError(errorMessage string) *APIResponse {
+
+ response := &APIResponse{Message: errorMessage}
+ return response
+}
diff --git a/samples/client/petstore/go-experimental/pet_api_test.go b/samples/client/petstore/go-experimental/pet_api_test.go
new file mode 100644
index 00000000000..969fab1f667
--- /dev/null
+++ b/samples/client/petstore/go-experimental/pet_api_test.go
@@ -0,0 +1,297 @@
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ "testing"
+
+ "github.com/antihax/optional"
+ "github.com/stretchr/testify/assert"
+
+ sw "./go-petstore"
+)
+
+var client *sw.APIClient
+
+const testHost = "petstore.swagger.io:80"
+const testScheme = "http"
+
+func TestMain(m *testing.M) {
+ cfg := sw.NewConfiguration()
+ cfg.AddDefaultHeader("testheader", "testvalue")
+ cfg.Host = testHost
+ cfg.Scheme = testScheme
+ client = sw.NewAPIClient(cfg)
+ retCode := m.Run()
+ os.Exit(retCode)
+}
+
+func TestAddPet(t *testing.T) {
+ newPet := (sw.Pet{Id: 12830, Name: "gopher",
+ PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending", Tags: []sw.Tag{sw.Tag{Id: 1, Name: "tag2"}}})
+
+ r, err := client.PetApi.AddPet(context.Background(), newPet)
+
+ if err != nil {
+ t.Fatalf("Error while adding pet: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
+func TestFindPetsByStatusWithMissingParam(t *testing.T) {
+ _, r, err := client.PetApi.FindPetsByStatus(context.Background(), nil)
+
+ if err != nil {
+ t.Fatalf("Error while testing TestFindPetsByStatusWithMissingParam: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
+func TestGetPetById(t *testing.T) {
+ isPetCorrect(t, 12830, "gopher", "pending")
+}
+
+func TestGetPetByIdWithInvalidID(t *testing.T) {
+ resp, r, err := client.PetApi.GetPetById(context.Background(), 999999999)
+ if r != nil && r.StatusCode == 404 {
+ assertedError, ok := err.(sw.GenericOpenAPIError)
+ a := assert.New(t)
+ a.True(ok)
+ a.Contains(string(assertedError.Body()), "type")
+
+ a.Contains(assertedError.Error(), "Not Found")
+ } else if err != nil {
+ t.Fatalf("Error while getting pet by invalid id: %v", err)
+ t.Log(r)
+ } else {
+ t.Log(resp)
+ }
+}
+
+func TestUpdatePetWithForm(t *testing.T) {
+ r, err := client.PetApi.UpdatePetWithForm(context.Background(), 12830, &sw.UpdatePetWithFormOpts{
+ Name: optional.NewString("golang"),
+ Status: optional.NewString("available"),
+ })
+ if err != nil {
+ t.Fatalf("Error while updating pet by id: %v", err)
+ t.Log(r)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+
+ // get the pet with id 12830 from server to verify the update
+ isPetCorrect(t, 12830, "golang", "available")
+}
+
+func TestFindPetsByTag(t *testing.T) {
+ var found = false
+ resp, r, err := client.PetApi.FindPetsByTags(context.Background(), []string{"tag2"})
+ if err != nil {
+ t.Fatalf("Error while getting pet by tag: %v", err)
+ t.Log(r)
+ } else {
+ if len(resp) == 0 {
+ t.Errorf("Error no pets returned")
+ } else {
+
+ assert := assert.New(t)
+ for i := 0; i < len(resp); i++ {
+ if resp[i].Id == 12830 {
+ assert.Equal(resp[i].Status, "available", "Pet status should be `pending`")
+ found = true
+ }
+ }
+ }
+
+ if found == false {
+ t.Errorf("Error while getting pet by tag could not find 12830")
+ }
+
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+ }
+}
+
+func TestFindPetsByStatus(t *testing.T) {
+ resp, r, err := client.PetApi.FindPetsByStatus(context.Background(), []string{"available"})
+ if err != nil {
+ t.Fatalf("Error while getting pet by id: %v", err)
+ t.Log(r)
+ } else {
+ if len(resp) == 0 {
+ t.Errorf("Error no pets returned")
+ } else {
+ assert := assert.New(t)
+ for i := 0; i < len(resp); i++ {
+ assert.Equal(resp[i].Status, "available", "Pet status should be `available`")
+ }
+ }
+
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+ }
+}
+
+func TestUploadFile(t *testing.T) {
+ file, _ := os.Open("../python/testfiles/foo.png")
+
+ _, r, err := client.PetApi.UploadFile(context.Background(), 12830, &sw.UploadFileOpts{
+ AdditionalMetadata: optional.NewString("golang"),
+ File: optional.NewInterface(file),
+ })
+
+ if err != nil {
+ t.Fatalf("Error while uploading file: %v", err)
+ }
+
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
+func TestUploadFileRequired(t *testing.T) {
+ return // remove when server supports this endpoint
+ file, _ := os.Open("../python/testfiles/foo.png")
+
+ _, r, err := client.PetApi.UploadFileWithRequiredFile(context.Background(), 12830,
+ file,
+ &sw.UploadFileWithRequiredFileOpts{
+ AdditionalMetadata: optional.NewString("golang"),
+ })
+
+ if err != nil {
+ t.Fatalf("Error while uploading file: %v", err)
+ }
+
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
+func TestDeletePet(t *testing.T) {
+ r, err := client.PetApi.DeletePet(context.Background(), 12830, nil)
+
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
+/*
+// Test we can concurrently create, retrieve, update, and delete.
+func TestConcurrency(t *testing.T) {
+ errc := make(chan error)
+
+ newPets := []sw.Pet{
+ sw.Pet{Id: 912345, Name: "gopherFred", PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending"},
+ sw.Pet{Id: 912346, Name: "gopherDan", PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "active"},
+ sw.Pet{Id: 912347, Name: "gopherRick", PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "mia"},
+ sw.Pet{Id: 912348, Name: "gopherJohn", PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "active"},
+ sw.Pet{Id: 912349, Name: "gopherAlf", PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending"},
+ sw.Pet{Id: 912350, Name: "gopherRob", PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending"},
+ sw.Pet{Id: 912351, Name: "gopherIan", PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "active"},
+ }
+
+ // Add the pets.
+ for _, pet := range newPets {
+ go func(newPet sw.Pet) {
+ r, err := client.PetApi.AddPet(nil, newPet)
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+ errc <- err
+ }(pet)
+ }
+ waitOnFunctions(t, errc, len(newPets))
+
+ // Verify they are correct.
+ for _, pet := range newPets {
+ go func(pet sw.Pet) {
+ isPetCorrect(t, pet.Id, pet.Name, pet.Status)
+ errc <- nil
+ }(pet)
+ }
+
+ waitOnFunctions(t, errc, len(newPets))
+
+ // Update all to active with the name gopherDan
+ for _, pet := range newPets {
+ go func(id int64) {
+ r, err := client.PetApi.UpdatePet(nil, sw.Pet{Id: (int64)(id), Name: "gopherDan", PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "active"})
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+ errc <- err
+ }(pet.Id)
+ }
+ waitOnFunctions(t, errc, len(newPets))
+
+ // Verify they are correct.
+ for _, pet := range newPets {
+ go func(pet sw.Pet) {
+ isPetCorrect(t, pet.Id, "gopherDan", "active")
+ errc <- nil
+ }(pet)
+ }
+
+ waitOnFunctions(t, errc, len(newPets))
+
+ // Delete them all.
+ for _, pet := range newPets {
+ go func(id int64) {
+ deletePet(t, (int64)(id))
+ errc <- nil
+ }(pet.Id)
+ }
+ waitOnFunctions(t, errc, len(newPets))
+}
+*/
+
+func waitOnFunctions(t *testing.T, errc chan error, n int) {
+ for i := 0; i < n; i++ {
+ err := <-errc
+ if err != nil {
+ t.Fatalf("Error performing concurrent test: %v", err)
+ }
+ }
+}
+
+func deletePet(t *testing.T, id int64) {
+ r, err := client.PetApi.DeletePet(context.Background(), id, nil)
+
+ if err != nil {
+ t.Fatalf("Error while deleting pet by id: %v", err)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
+func isPetCorrect(t *testing.T, id int64, name string, status string) {
+ assert := assert.New(t)
+ resp, r, err := client.PetApi.GetPetById(context.Background(), id)
+ if err != nil {
+ t.Fatalf("Error while getting pet by id: %v", err)
+ } else {
+ assert.Equal(resp.Id, int64(id), "Pet id should be equal")
+ assert.Equal(resp.Name, name, fmt.Sprintf("Pet name should be %s", name))
+ assert.Equal(resp.Status, status, fmt.Sprintf("Pet status should be %s", status))
+
+ //t.Log(resp)
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
+
diff --git a/samples/client/petstore/go-experimental/pom.xml b/samples/client/petstore/go-experimental/pom.xml
new file mode 100644
index 00000000000..91e3da8c34b
--- /dev/null
+++ b/samples/client/petstore/go-experimental/pom.xml
@@ -0,0 +1,103 @@
+
+ 4.0.0
+ org.openapitools
+ GoExperimentalPetstore
+ pom
+ 1.0.0
+ Go Experimental Petstore Client
+
+
+
+ maven-dependency-plugin
+
+
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.2.1
+
+
+ go-get-testify
+ pre-integration-test
+
+ exec
+
+
+ go
+
+ get
+ github.com/stretchr/testify/assert
+
+
+
+
+ go-get-oauth2
+ pre-integration-test
+
+ exec
+
+
+ go
+
+ get
+ golang.org/x/oauth2
+
+
+
+
+ go-get-context
+ pre-integration-test
+
+ exec
+
+
+ go
+
+ get
+ golang.org/x/net/context
+
+
+
+
+ go-get-optional
+ pre-integration-test
+
+ exec
+
+
+ go
+
+ get
+ github.com/antihax/optional
+
+
+
+
+ go-test
+ integration-test
+
+ exec
+
+
+ go
+
+ test
+ -v
+
+
+
+
+
+
+
+
diff --git a/samples/client/petstore/go-experimental/store_api_test.go b/samples/client/petstore/go-experimental/store_api_test.go
new file mode 100644
index 00000000000..3088adf7b40
--- /dev/null
+++ b/samples/client/petstore/go-experimental/store_api_test.go
@@ -0,0 +1,37 @@
+package main
+
+import (
+ "context"
+ "regexp"
+ "testing"
+ "time"
+
+ sw "./go-petstore"
+)
+
+func TestPlaceOrder(t *testing.T) {
+ newOrder := sw.Order{
+ Id: 0,
+ PetId: 0,
+ Quantity: 0,
+ ShipDate: time.Now().UTC(),
+ Status: "placed",
+ Complete: false}
+
+ _, r, err := client.StoreApi.PlaceOrder(context.Background(), newOrder)
+
+ if err != nil {
+ // Skip parsing time error due to error in Petstore Test Server
+ // https://github.com/OpenAPITools/openapi-generator/issues/1292
+ if regexp.
+ MustCompile(`^parsing time.+cannot parse "\+0000"" as "Z07:00"$`).
+ MatchString(err.Error()) {
+ t.Log("Skipping error for parsing time with `+0000` UTC offset as Petstore Test Server does not return valid RFC 3339 datetime")
+ } else {
+ t.Fatalf("Error while placing order: %v", err)
+ }
+ }
+ if r.StatusCode != 200 {
+ t.Log(r)
+ }
+}
diff --git a/samples/client/petstore/go-experimental/test.go.bak b/samples/client/petstore/go-experimental/test.go.bak
new file mode 100644
index 00000000000..54e14b9c7a0
--- /dev/null
+++ b/samples/client/petstore/go-experimental/test.go.bak
@@ -0,0 +1,30 @@
+package main
+
+import (
+ sw "./go-petstore"
+ "encoding/json"
+ "fmt"
+)
+
+func main() {
+
+ s := sw.NewPetApi()
+
+ // test POST(body)
+ newPet := (sw.Pet{Id: 12830, Name: "gopher",
+ PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending"})
+
+ jsonNewPet, _ := json.Marshal(newPet)
+ fmt.Println("newPet:", string(jsonNewPet))
+ s.AddPet(newPet)
+
+ // test POST(form)
+ s.UpdatePetWithForm(12830, "golang", "available")
+
+ // test GET
+ resp, apiResponse, err := s.GetPetById(12830)
+ fmt.Println("GetPetById: ", resp, err, apiResponse)
+
+ err2, apiResponse2 := s.DeletePet(12830, "")
+ fmt.Println("DeletePet: ", err2, apiResponse2)
+}
diff --git a/samples/client/petstore/go-experimental/user_api_test.go b/samples/client/petstore/go-experimental/user_api_test.go
new file mode 100644
index 00000000000..012c608fab6
--- /dev/null
+++ b/samples/client/petstore/go-experimental/user_api_test.go
@@ -0,0 +1,153 @@
+package main
+
+import (
+ "context"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+
+ sw "./go-petstore"
+)
+
+func TestCreateUser(t *testing.T) {
+ newUser := sw.User{
+ Id: 1000,
+ FirstName: "gopher",
+ LastName: "lang",
+ Username: "gopher",
+ Password: "lang",
+ Email: "lang@test.com",
+ Phone: "5101112222",
+ UserStatus: 1}
+
+ apiResponse, err := client.UserApi.CreateUser(context.Background(), newUser)
+
+ if err != nil {
+ t.Fatalf("Error while adding user: %v", err)
+ }
+ if apiResponse.StatusCode != 200 {
+ t.Log(apiResponse)
+ }
+}
+
+//adding x to skip the test, currently it is failing
+func TestCreateUsersWithArrayInput(t *testing.T) {
+ newUsers := []sw.User{
+ sw.User{
+ Id: int64(1001),
+ FirstName: "gopher1",
+ LastName: "lang1",
+ Username: "gopher1",
+ Password: "lang1",
+ Email: "lang1@test.com",
+ Phone: "5101112222",
+ UserStatus: int32(1),
+ },
+ sw.User{
+ Id: int64(1002),
+ FirstName: "gopher2",
+ LastName: "lang2",
+ Username: "gopher2",
+ Password: "lang2",
+ Email: "lang2@test.com",
+ Phone: "5101112222",
+ UserStatus: int32(1),
+ },
+ }
+
+ apiResponse, err := client.UserApi.CreateUsersWithArrayInput(context.Background(), newUsers)
+ if err != nil {
+ t.Fatalf("Error while adding users: %v", err)
+ }
+ if apiResponse.StatusCode != 200 {
+ t.Log(apiResponse)
+ }
+
+ //tear down
+ _, err1 := client.UserApi.DeleteUser(context.Background(), "gopher1")
+ if err1 != nil {
+ t.Errorf("Error while deleting user")
+ t.Log(err1)
+ }
+
+ _, err2 := client.UserApi.DeleteUser(context.Background(), "gopher2")
+ if err2 != nil {
+ t.Errorf("Error while deleting user")
+ t.Log(err2)
+ }
+}
+
+func TestGetUserByName(t *testing.T) {
+ assert := assert.New(t)
+
+ resp, apiResponse, err := client.UserApi.GetUserByName(context.Background(), "gopher")
+ if err != nil {
+ t.Fatalf("Error while getting user by id: %v", err)
+ } else {
+ assert.Equal(resp.Id, int64(1000), "User id should be equal")
+ assert.Equal(resp.Username, "gopher", "User name should be gopher")
+ assert.Equal(resp.LastName, "lang", "Last name should be lang")
+ //t.Log(resp)
+ }
+ if apiResponse.StatusCode != 200 {
+ t.Log(apiResponse)
+ }
+}
+
+func TestGetUserByNameWithInvalidID(t *testing.T) {
+ resp, apiResponse, err := client.UserApi.GetUserByName(context.Background(), "999999999")
+ if apiResponse != nil && apiResponse.StatusCode == 404 {
+ return // This is a pass condition. API will return with a 404 error.
+ } else if err != nil {
+ t.Fatalf("Error while getting user by invalid id: %v", err)
+ t.Log(apiResponse)
+ } else {
+ t.Log(resp)
+ }
+ if apiResponse.StatusCode != 200 {
+ t.Log(apiResponse)
+ }
+}
+
+func TestUpdateUser(t *testing.T) {
+ assert := assert.New(t)
+
+ newUser := sw.User{
+ Id: 1000,
+ FirstName: "gopher20",
+ LastName: "lang20",
+ Username: "gopher",
+ Password: "lang",
+ Email: "lang@test.com",
+ Phone: "5101112222",
+ UserStatus: 1}
+
+ apiResponse, err := client.UserApi.UpdateUser(context.Background(), "gopher", newUser)
+ if err != nil {
+ t.Fatalf("Error while deleting user by id: %v", err)
+ }
+ if apiResponse.StatusCode != 200 {
+ t.Log(apiResponse)
+ }
+
+ //verify changings are correct
+ resp, apiResponse, err := client.UserApi.GetUserByName(context.Background(), "gopher")
+ if err != nil {
+ t.Fatalf("Error while getting user by id: %v", err)
+ } else {
+ assert.Equal(resp.Id, int64(1000), "User id should be equal")
+ assert.Equal(resp.FirstName, "gopher20", "User name should be gopher")
+ assert.Equal(resp.Password, "lang", "User name should be the same")
+ }
+}
+
+func TestDeleteUser(t *testing.T) {
+ apiResponse, err := client.UserApi.DeleteUser(context.Background(), "gopher")
+
+ if err != nil {
+ t.Fatalf("Error while deleting user: %v", err)
+ }
+ if apiResponse.StatusCode != 200 {
+ t.Log(apiResponse)
+ }
+}
diff --git a/samples/client/petstore/go/pom.xml b/samples/client/petstore/go/pom.xml
index 08272006631..7b3edeff64d 100644
--- a/samples/client/petstore/go/pom.xml
+++ b/samples/client/petstore/go/pom.xml
@@ -1,11 +1,11 @@
4.0.0
org.openapitools
- Goswagger
+ GoPetstore
pom
1.0.0
Go Petstore Client
-
+
maven-dependency-plugin
diff --git a/samples/client/petstore/java/feign/.travis.yml b/samples/client/petstore/java/feign/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/feign/.travis.yml
+++ b/samples/client/petstore/java/feign/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/feign10x/.travis.yml b/samples/client/petstore/java/feign10x/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/feign10x/.travis.yml
+++ b/samples/client/petstore/java/feign10x/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/google-api-client/.travis.yml b/samples/client/petstore/java/google-api-client/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/google-api-client/.travis.yml
+++ b/samples/client/petstore/java/google-api-client/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/jersey1/.travis.yml b/samples/client/petstore/java/jersey1/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/jersey1/.travis.yml
+++ b/samples/client/petstore/java/jersey1/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/jersey2-java6/.travis.yml b/samples/client/petstore/java/jersey2-java6/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/jersey2-java6/.travis.yml
+++ b/samples/client/petstore/java/jersey2-java6/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/jersey2-java6/pom.xml b/samples/client/petstore/java/jersey2-java6/pom.xml
index cb62cae054d..8a80c6c1587 100644
--- a/samples/client/petstore/java/jersey2-java6/pom.xml
+++ b/samples/client/petstore/java/jersey2-java6/pom.xml
@@ -151,17 +151,17 @@
jar
-
-
-
- http.response.details
- a
- Http Response Details:
-
-
-
+
+
+
+ http.response.details
+ a
+ Http Response Details:
+
+
+
org.apache.maven.plugins
diff --git a/samples/client/petstore/java/jersey2-java8/.travis.yml b/samples/client/petstore/java/jersey2-java8/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/jersey2-java8/.travis.yml
+++ b/samples/client/petstore/java/jersey2-java8/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/jersey2-java8/build.gradle b/samples/client/petstore/java/jersey2-java8/build.gradle
index 68c09729042..5966274ea71 100644
--- a/samples/client/petstore/java/jersey2-java8/build.gradle
+++ b/samples/client/petstore/java/jersey2-java8/build.gradle
@@ -112,3 +112,7 @@ dependencies {
compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
testCompile "junit:junit:$junit_version"
}
+
+javadoc {
+ options.tags = [ "http.response.details:a:Http Response Details" ]
+}
diff --git a/samples/client/petstore/java/jersey2-java8/pom.xml b/samples/client/petstore/java/jersey2-java8/pom.xml
index 204ead7705d..75381cb9def 100644
--- a/samples/client/petstore/java/jersey2-java8/pom.xml
+++ b/samples/client/petstore/java/jersey2-java8/pom.xml
@@ -151,17 +151,17 @@
jar
-
-
-
- http.response.details
- a
- Http Response Details:
-
-
-
+
+
+
+ http.response.details
+ a
+ Http Response Details:
+
+
+
org.apache.maven.plugins
diff --git a/samples/client/petstore/java/jersey2/.travis.yml b/samples/client/petstore/java/jersey2/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/jersey2/.travis.yml
+++ b/samples/client/petstore/java/jersey2/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/jersey2/build.gradle b/samples/client/petstore/java/jersey2/build.gradle
index fb535b4e085..22f7fde908b 100644
--- a/samples/client/petstore/java/jersey2/build.gradle
+++ b/samples/client/petstore/java/jersey2/build.gradle
@@ -114,3 +114,7 @@ dependencies {
compile "com.brsanthu:migbase64:2.2"
testCompile "junit:junit:$junit_version"
}
+
+javadoc {
+ options.tags = [ "http.response.details:a:Http Response Details" ]
+}
diff --git a/samples/client/petstore/java/jersey2/pom.xml b/samples/client/petstore/java/jersey2/pom.xml
index 60ace064510..51899df37ed 100644
--- a/samples/client/petstore/java/jersey2/pom.xml
+++ b/samples/client/petstore/java/jersey2/pom.xml
@@ -151,17 +151,17 @@
jar
-
-
-
- http.response.details
- a
- Http Response Details:
-
-
-
+
+
+
+ http.response.details
+ a
+ Http Response Details:
+
+
+
org.apache.maven.plugins
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/.travis.yml b/samples/client/petstore/java/okhttp-gson-parcelableModel/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/okhttp-gson-parcelableModel/.travis.yml
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/build.gradle b/samples/client/petstore/java/okhttp-gson-parcelableModel/build.gradle
index 229b37b48cc..bef53f36259 100644
--- a/samples/client/petstore/java/okhttp-gson-parcelableModel/build.gradle
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/build.gradle
@@ -108,3 +108,7 @@ dependencies {
compile 'org.threeten:threetenbp:1.3.5'
testCompile 'junit:junit:4.12'
}
+
+javadoc {
+ options.tags = [ "http.response.details:a:Http Response Details" ]
+}
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/build.sbt b/samples/client/petstore/java/okhttp-gson-parcelableModel/build.sbt
index ea38e20bc43..626e3702520 100644
--- a/samples/client/petstore/java/okhttp-gson-parcelableModel/build.sbt
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/build.sbt
@@ -17,6 +17,7 @@ lazy val root = (project in file(".")).
"org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1",
"org.threeten" % "threetenbp" % "1.3.5" % "compile",
"io.gsonfire" % "gson-fire" % "1.8.3" % "compile",
+ "javax.annotation" % "jsr250-api" % "1.0" % "compile",
"junit" % "junit" % "4.12" % "test",
"com.novocode" % "junit-interface" % "0.10" % "test"
)
diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml b/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml
index 30df3d74268..2f7acab2c8d 100644
--- a/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml
+++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml
@@ -142,17 +142,17 @@
jar
-
-
-
- http.response.details
- a
- Http Response Details:
-
-
-
+
+
+
+ http.response.details
+ a
+ Http Response Details:
+
+
+
org.apache.maven.plugins
@@ -242,6 +242,11 @@
4.1.1.4
provided
+
+ javax.annotation
+ jsr250-api
+ ${javax-annotation-version}
+
junit
@@ -255,12 +260,13 @@
${java.version}
${java.version}
1.8.3
- 1.5.21
+ 1.5.22
3.14.2
2.8.5
3.9
1.3.8
1.0.0
+ 1.0
4.12
UTF-8
diff --git a/samples/client/petstore/java/okhttp-gson/.travis.yml b/samples/client/petstore/java/okhttp-gson/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/okhttp-gson/.travis.yml
+++ b/samples/client/petstore/java/okhttp-gson/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/okhttp-gson/build.gradle b/samples/client/petstore/java/okhttp-gson/build.gradle
index 0206cad9df4..72c122a5169 100644
--- a/samples/client/petstore/java/okhttp-gson/build.gradle
+++ b/samples/client/petstore/java/okhttp-gson/build.gradle
@@ -108,3 +108,7 @@ dependencies {
compile 'org.threeten:threetenbp:1.3.5'
testCompile 'junit:junit:4.12'
}
+
+javadoc {
+ options.tags = [ "http.response.details:a:Http Response Details" ]
+}
diff --git a/samples/client/petstore/java/okhttp-gson/build.sbt b/samples/client/petstore/java/okhttp-gson/build.sbt
index 17e9ba0e59c..1bc31c01101 100644
--- a/samples/client/petstore/java/okhttp-gson/build.sbt
+++ b/samples/client/petstore/java/okhttp-gson/build.sbt
@@ -17,6 +17,7 @@ lazy val root = (project in file(".")).
"org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1",
"org.threeten" % "threetenbp" % "1.3.5" % "compile",
"io.gsonfire" % "gson-fire" % "1.8.3" % "compile",
+ "javax.annotation" % "jsr250-api" % "1.0" % "compile",
"junit" % "junit" % "4.12" % "test",
"com.novocode" % "junit-interface" % "0.10" % "test"
)
diff --git a/samples/client/petstore/java/okhttp-gson/pom.xml b/samples/client/petstore/java/okhttp-gson/pom.xml
index a716cc878d7..733a77dee40 100644
--- a/samples/client/petstore/java/okhttp-gson/pom.xml
+++ b/samples/client/petstore/java/okhttp-gson/pom.xml
@@ -142,17 +142,17 @@
jar
-
-
-
- http.response.details
- a
- Http Response Details:
-
-
-
+
+
+
+ http.response.details
+ a
+ Http Response Details:
+
+
+
org.apache.maven.plugins
@@ -235,6 +235,11 @@
threetenbp
${threetenbp-version}
+
+ javax.annotation
+ jsr250-api
+ ${javax-annotation-version}
+
junit
@@ -248,12 +253,13 @@
${java.version}
${java.version}
1.8.3
- 1.5.21
+ 1.5.22
3.14.2
2.8.5
3.9
1.3.8
1.0.0
+ 1.0
4.12
UTF-8
diff --git a/samples/client/petstore/java/rest-assured/.travis.yml b/samples/client/petstore/java/rest-assured/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/rest-assured/.travis.yml
+++ b/samples/client/petstore/java/rest-assured/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/rest-assured/build.gradle b/samples/client/petstore/java/rest-assured/build.gradle
index 0e5596f30af..c758bd33882 100644
--- a/samples/client/petstore/java/rest-assured/build.gradle
+++ b/samples/client/petstore/java/rest-assured/build.gradle
@@ -96,7 +96,7 @@ if(hasProperty('target') && target == 'android') {
ext {
swagger_annotations_version = "1.5.21"
- rest_assured_version = "3.3.0"
+ rest_assured_version = "4.0.0"
junit_version = "4.12"
gson_version = "2.8.5"
gson_fire_version = "1.8.3"
diff --git a/samples/client/petstore/java/rest-assured/build.sbt b/samples/client/petstore/java/rest-assured/build.sbt
index 5a011f9f84d..4bc8d014b71 100644
--- a/samples/client/petstore/java/rest-assured/build.sbt
+++ b/samples/client/petstore/java/rest-assured/build.sbt
@@ -10,7 +10,7 @@ lazy val root = (project in file(".")).
resolvers += Resolver.mavenLocal,
libraryDependencies ++= Seq(
"io.swagger" % "swagger-annotations" % "1.5.21",
- "io.rest-assured" % "scala-support" % "3.3.0",
+ "io.rest-assured" % "scala-support" % "4.0.0",
"com.google.code.gson" % "gson" % "2.8.5",
"io.gsonfire" % "gson-fire" % "1.8.3" % "compile",
"org.threeten" % "threetenbp" % "1.3.8" % "compile",
diff --git a/samples/client/petstore/java/rest-assured/pom.xml b/samples/client/petstore/java/rest-assured/pom.xml
index 95886cb3275..f6d82e87011 100644
--- a/samples/client/petstore/java/rest-assured/pom.xml
+++ b/samples/client/petstore/java/rest-assured/pom.xml
@@ -235,7 +235,7 @@
UTF-8
1.5.21
- 3.3.0
+ 4.0.0
2.8.5
1.8.3
1.0.0
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CatAllOfTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CatAllOfTest.java
index 0473dc929e5..384ab21b773 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CatAllOfTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CatAllOfTest.java
@@ -2,7 +2,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/DogAllOfTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/DogAllOfTest.java
index 7780c14a386..0d695b15a63 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/DogAllOfTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/DogAllOfTest.java
@@ -2,7 +2,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/resteasy/.travis.yml b/samples/client/petstore/java/resteasy/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/resteasy/.travis.yml
+++ b/samples/client/petstore/java/resteasy/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/resttemplate-withXml/.travis.yml b/samples/client/petstore/java/resttemplate-withXml/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/resttemplate-withXml/.travis.yml
+++ b/samples/client/petstore/java/resttemplate-withXml/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/resttemplate/.travis.yml b/samples/client/petstore/java/resttemplate/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/resttemplate/.travis.yml
+++ b/samples/client/petstore/java/resttemplate/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/retrofit/.travis.yml b/samples/client/petstore/java/retrofit/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/retrofit/.travis.yml
+++ b/samples/client/petstore/java/retrofit/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/retrofit2-play24/.travis.yml b/samples/client/petstore/java/retrofit2-play24/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/retrofit2-play24/.travis.yml
+++ b/samples/client/petstore/java/retrofit2-play24/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/retrofit2-play25/.travis.yml b/samples/client/petstore/java/retrofit2-play25/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/retrofit2-play25/.travis.yml
+++ b/samples/client/petstore/java/retrofit2-play25/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/retrofit2-play26/.travis.yml b/samples/client/petstore/java/retrofit2-play26/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/retrofit2-play26/.travis.yml
+++ b/samples/client/petstore/java/retrofit2-play26/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/retrofit2/.travis.yml b/samples/client/petstore/java/retrofit2/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/retrofit2/.travis.yml
+++ b/samples/client/petstore/java/retrofit2/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/retrofit2rx/.travis.yml b/samples/client/petstore/java/retrofit2rx/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/retrofit2rx/.travis.yml
+++ b/samples/client/petstore/java/retrofit2rx/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/retrofit2rx2/.travis.yml b/samples/client/petstore/java/retrofit2rx2/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/retrofit2rx2/.travis.yml
+++ b/samples/client/petstore/java/retrofit2rx2/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/vertx/.travis.yml b/samples/client/petstore/java/vertx/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/vertx/.travis.yml
+++ b/samples/client/petstore/java/vertx/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/java/webclient/.travis.yml b/samples/client/petstore/java/webclient/.travis.yml
index 80a7f2fc66c..e3bdf2af1be 100644
--- a/samples/client/petstore/java/webclient/.travis.yml
+++ b/samples/client/petstore/java/webclient/.travis.yml
@@ -1,17 +1,22 @@
#
-# Generated by: https://openapi-generator.tech
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
#
language: java
jdk:
- - oraclejdk8
- - oraclejdk7
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
before_install:
# ensure gradlew has proper permission
- chmod a+x ./gradlew
script:
# test using maven
- - mvn test
- # uncomment below to test using gradle
- # - gradle test
- # uncomment below to test using sbt
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
# - sbt test
diff --git a/samples/client/petstore/javascript-flowtyped/.openapi-generator/VERSION b/samples/client/petstore/javascript-flowtyped/.openapi-generator/VERSION
index d96260ba335..479c313e87b 100644
--- a/samples/client/petstore/javascript-flowtyped/.openapi-generator/VERSION
+++ b/samples/client/petstore/javascript-flowtyped/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.2-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/javascript-flowtyped/package-lock.json b/samples/client/petstore/javascript-flowtyped/package-lock.json
index f90d98c168f..2207ddfeefc 100644
--- a/samples/client/petstore/javascript-flowtyped/package-lock.json
+++ b/samples/client/petstore/javascript-flowtyped/package-lock.json
@@ -4,38 +4,1081 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "@babel/cli": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.5.0.tgz",
+ "integrity": "sha512-qNH55fWbKrEsCwID+Qc/3JDPnsSGpIIiMDbppnR8Z6PxLAqMQCFNqBctkIkBrMH49Nx+qqVTrHRWUR+ho2k+qQ==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^2.0.4",
+ "commander": "^2.8.1",
+ "convert-source-map": "^1.1.0",
+ "fs-readdir-recursive": "^1.1.0",
+ "glob": "^7.0.0",
+ "lodash": "^4.17.11",
+ "mkdirp": "^0.5.1",
+ "output-file-sync": "^2.0.0",
+ "slash": "^2.0.0",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
+ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "@babel/core": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.0.tgz",
+ "integrity": "sha512-6Isr4X98pwXqHvtigw71CKgmhL1etZjPs5A67jL/w0TkLM9eqmFR40YrnJvEc1WnMZFsskjsmid8bHZyxKEAnw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/generator": "^7.5.0",
+ "@babel/helpers": "^7.5.0",
+ "@babel/parser": "^7.5.0",
+ "@babel/template": "^7.4.4",
+ "@babel/traverse": "^7.5.0",
+ "@babel/types": "^7.5.0",
+ "convert-source-map": "^1.1.0",
+ "debug": "^4.1.0",
+ "json5": "^2.1.0",
+ "lodash": "^4.17.11",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.0.tgz",
+ "integrity": "sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.5.0",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.11",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz",
+ "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz",
+ "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-builder-react-jsx": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz",
+ "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.3.0",
+ "esutils": "^2.0.0"
+ }
+ },
+ "@babel/helper-call-delegate": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz",
+ "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.4.4",
+ "@babel/traverse": "^7.4.4",
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.0.tgz",
+ "integrity": "sha512-EAoMc3hE5vE5LNhMqDOwB1usHvmRjCDAnH8CD4PVkX9/Yr3W/tcz8xE8QvdZxfsFBDICwZnF2UTHIqslRpvxmA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-member-expression-to-functions": "^7.0.0",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.4.4",
+ "@babel/helper-split-export-declaration": "^7.4.4"
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz",
+ "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/types": "^7.4.4",
+ "lodash": "^4.17.11"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz",
+ "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
+ "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
+ "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz",
+ "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz",
+ "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz",
+ "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz",
+ "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-simple-access": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.4.4",
+ "@babel/template": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "lodash": "^4.17.11"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz",
+ "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz",
+ "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==",
+ "dev": true
+ },
+ "@babel/helper-regex": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz",
+ "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.11"
+ }
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz",
+ "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-wrap-function": "^7.1.0",
+ "@babel/template": "^7.1.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz",
+ "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.0.0",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/traverse": "^7.4.4",
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz",
+ "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
+ "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz",
+ "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/template": "^7.1.0",
+ "@babel/traverse": "^7.1.0",
+ "@babel/types": "^7.2.0"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.1.tgz",
+ "integrity": "sha512-rVOTDv8sH8kNI72Unenusxw6u+1vEepZgLxeV+jHkhsQlYhzVhzL1EpfoWT7Ub3zpWSv2WV03V853dqsnyoQzA==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.4.4",
+ "@babel/traverse": "^7.5.0",
+ "@babel/types": "^7.5.0"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
+ "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.0.tgz",
+ "integrity": "sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA==",
+ "dev": true
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz",
+ "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.1.0",
+ "@babel/plugin-syntax-async-generators": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz",
+ "integrity": "sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.3.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-proposal-decorators": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz",
+ "integrity": "sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.3.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-decorators": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz",
+ "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-json-strings": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz",
+ "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz",
+ "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.2.0"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz",
+ "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.5.4"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz",
+ "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-decorators": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz",
+ "integrity": "sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
+ "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-flow": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz",
+ "integrity": "sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz",
+ "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz",
+ "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz",
+ "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz",
+ "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz",
+ "integrity": "sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz",
+ "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz",
+ "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-remap-async-to-generator": "^7.1.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz",
+ "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz",
+ "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "lodash": "^4.17.11"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz",
+ "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-define-map": "^7.1.0",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-optimise-call-expression": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.0.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz",
+ "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz",
+ "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz",
+ "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.5.4"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz",
+ "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz",
+ "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-flow-strip-types": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz",
+ "integrity": "sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.2.0"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz",
+ "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz",
+ "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz",
+ "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz",
+ "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ },
+ "dependencies": {
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
+ "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ }
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz",
+ "integrity": "sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.4.4",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-simple-access": "^7.1.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ },
+ "dependencies": {
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
+ "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ }
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz",
+ "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.4.4",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
+ },
+ "dependencies": {
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
+ "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ }
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz",
+ "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.1.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz",
+ "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==",
+ "dev": true,
+ "requires": {
+ "regexp-tree": "^0.1.6"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz",
+ "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz",
+ "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-replace-supers": "^7.1.0"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz",
+ "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-call-delegate": "^7.4.4",
+ "@babel/helper-get-function-arity": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-react-constant-elements": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz",
+ "integrity": "sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-react-display-name": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz",
+ "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz",
+ "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-react-jsx": "^7.3.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-self": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz",
+ "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-source": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz",
+ "integrity": "sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz",
+ "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.14.0"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz",
+ "integrity": "sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "resolve": "^1.8.1",
+ "semver": "^5.5.1"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz",
+ "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz",
+ "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz",
+ "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz",
+ "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz",
+ "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0"
+ }
+ },
+ "@babel/plugin-transform-typescript": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.1.tgz",
+ "integrity": "sha512-dzJ4e/vIFjQOucCu6d+s/ebr+kc8/sAaSscI35X34yEX0gfS6yxY9pKX15U2kumeXe3ScQiTnTQcvRv48bmMtQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.5.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-typescript": "^7.2.0"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz",
+ "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-regex": "^7.4.4",
+ "regexpu-core": "^4.5.4"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz",
+ "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
+ "@babel/plugin-proposal-json-strings": "^7.2.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.3.1",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
+ "@babel/plugin-syntax-async-generators": "^7.2.0",
+ "@babel/plugin-syntax-json-strings": "^7.2.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
+ "@babel/plugin-transform-arrow-functions": "^7.2.0",
+ "@babel/plugin-transform-async-to-generator": "^7.2.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
+ "@babel/plugin-transform-block-scoping": "^7.2.0",
+ "@babel/plugin-transform-classes": "^7.2.0",
+ "@babel/plugin-transform-computed-properties": "^7.2.0",
+ "@babel/plugin-transform-destructuring": "^7.2.0",
+ "@babel/plugin-transform-dotall-regex": "^7.2.0",
+ "@babel/plugin-transform-duplicate-keys": "^7.2.0",
+ "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
+ "@babel/plugin-transform-for-of": "^7.2.0",
+ "@babel/plugin-transform-function-name": "^7.2.0",
+ "@babel/plugin-transform-literals": "^7.2.0",
+ "@babel/plugin-transform-modules-amd": "^7.2.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.2.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.2.0",
+ "@babel/plugin-transform-modules-umd": "^7.2.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0",
+ "@babel/plugin-transform-new-target": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.2.0",
+ "@babel/plugin-transform-parameters": "^7.2.0",
+ "@babel/plugin-transform-regenerator": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.2.0",
+ "@babel/plugin-transform-spread": "^7.2.0",
+ "@babel/plugin-transform-sticky-regex": "^7.2.0",
+ "@babel/plugin-transform-template-literals": "^7.2.0",
+ "@babel/plugin-transform-typeof-symbol": "^7.2.0",
+ "@babel/plugin-transform-unicode-regex": "^7.2.0",
+ "browserslist": "^4.3.4",
+ "invariant": "^2.2.2",
+ "js-levenshtein": "^1.1.3",
+ "semver": "^5.3.0"
+ }
+ },
+ "@babel/preset-flow": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.0.0.tgz",
+ "integrity": "sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0"
+ }
+ },
+ "@babel/preset-react": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz",
+ "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.0.0"
+ }
+ },
+ "@babel/preset-typescript": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz",
+ "integrity": "sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.1.0"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz",
+ "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.12.0"
+ }
+ },
+ "@babel/template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
+ "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.4.4",
+ "@babel/types": "^7.4.4"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.0.tgz",
+ "integrity": "sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/generator": "^7.5.0",
+ "@babel/helper-function-name": "^7.1.0",
+ "@babel/helper-split-export-declaration": "^7.4.4",
+ "@babel/parser": "^7.5.0",
+ "@babel/types": "^7.5.0",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.11"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz",
+ "integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.11",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
"ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
"ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
},
"anymatch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
- "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
"dev": true,
"optional": true,
"requires": {
- "micromatch": "^2.1.5",
- "normalize-path": "^2.0.0"
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
}
},
"arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "dev": true,
- "optional": true,
- "requires": {
- "arr-flatten": "^1.0.1"
- }
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
},
"arr-flatten": {
"version": "1.1.0",
@@ -50,11 +1093,10 @@
"dev": true
},
"array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
- "dev": true,
- "optional": true
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
},
"assign-symbols": {
"version": "1.0.0",
@@ -63,10 +1105,11 @@
"dev": true
},
"async-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
- "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
- "dev": true
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "dev": true,
+ "optional": true
},
"atob": {
"version": "2.1.2",
@@ -74,847 +1117,119 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true
},
- "babel-cli": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
- "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
+ "babel-loader": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz",
+ "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==",
"dev": true,
"requires": {
- "babel-core": "^6.26.0",
- "babel-polyfill": "^6.26.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "chokidar": "^1.6.1",
- "commander": "^2.11.0",
- "convert-source-map": "^1.5.0",
- "fs-readdir-recursive": "^1.0.0",
- "glob": "^7.1.2",
- "lodash": "^4.17.4",
- "output-file-sync": "^1.1.2",
- "path-is-absolute": "^1.0.1",
- "slash": "^1.0.0",
- "source-map": "^0.5.6",
- "v8flags": "^2.1.1"
- }
- },
- "babel-code-frame": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
- "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
- "dev": true,
- "requires": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
- }
- },
- "babel-core": {
- "version": "6.26.3",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
- "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
- "dev": true,
- "requires": {
- "babel-code-frame": "^6.26.0",
- "babel-generator": "^6.26.0",
- "babel-helpers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "convert-source-map": "^1.5.1",
- "debug": "^2.6.9",
- "json5": "^0.5.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.4",
- "path-is-absolute": "^1.0.1",
- "private": "^0.1.8",
- "slash": "^1.0.0",
- "source-map": "^0.5.7"
- }
- },
- "babel-generator": {
- "version": "6.26.1",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
- "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
- "dev": true,
- "requires": {
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "detect-indent": "^4.0.0",
- "jsesc": "^1.3.0",
- "lodash": "^4.17.4",
- "source-map": "^0.5.7",
- "trim-right": "^1.0.1"
- }
- },
- "babel-helper-builder-binary-assignment-operator-visitor": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
- "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
- "dev": true,
- "requires": {
- "babel-helper-explode-assignable-expression": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helper-builder-react-jsx": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
- "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "esutils": "^2.0.2"
- }
- },
- "babel-helper-call-delegate": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
- "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
- "dev": true,
- "requires": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helper-define-map": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
- "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
- }
- },
- "babel-helper-explode-assignable-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
- "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helper-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
- "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
- "dev": true,
- "requires": {
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helper-get-function-arity": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
- "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helper-hoist-variables": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
- "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helper-optimise-call-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
- "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helper-regex": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
- "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
- }
- },
- "babel-helper-remap-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helper-replace-supers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
- "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
- "dev": true,
- "requires": {
- "babel-helper-optimise-call-expression": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
- },
- "babel-helpers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
- "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
- },
- "babel-messages": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-check-es2015-constants": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
- "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
+ "find-cache-dir": "^2.0.0",
+ "loader-utils": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "util.promisify": "^1.0.0"
}
},
"babel-plugin-dynamic-import-node": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz",
- "integrity": "sha512-tTfZbM9Ecwj3GK50mnPrUpinTwA4xXmDiQGCk/aBYbvl1+X8YqldK86wZ1owVJ4u3mrKbRlXMma80J18qwiaTQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz",
+ "integrity": "sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==",
"dev": true,
"requires": {
- "babel-plugin-syntax-dynamic-import": "^6.18.0",
- "babel-template": "^6.26.0",
- "babel-types": "^6.26.0"
+ "object.assign": "^4.1.0"
}
},
- "babel-plugin-syntax-async-functions": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
- "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
+ "babel-plugin-macros": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz",
+ "integrity": "sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw==",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^5.0.5",
+ "resolve": "^1.8.1"
+ }
+ },
+ "babel-plugin-transform-react-remove-prop-types": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
+ "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==",
"dev": true
},
- "babel-plugin-syntax-class-properties": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
- "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
- "dev": true
- },
- "babel-plugin-syntax-dynamic-import": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
- "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
- "dev": true
- },
- "babel-plugin-syntax-exponentiation-operator": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
- "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
- "dev": true
- },
- "babel-plugin-syntax-flow": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
- "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=",
- "dev": true
- },
- "babel-plugin-syntax-jsx": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
- "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
- "dev": true
- },
- "babel-plugin-syntax-object-rest-spread": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
- "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
- "dev": true
- },
- "babel-plugin-syntax-trailing-function-commas": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
- "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
- "dev": true
- },
- "babel-plugin-transform-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
+ "babel-preset-react-app": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-7.0.2.tgz",
+ "integrity": "sha512-mwCk/u2wuiO8qQqblN5PlDa44taY0acq7hw6W+a70W522P7a9mIcdggL1fe5/LgAT7tqCq46q9wwhqaMoYKslQ==",
"dev": true,
"requires": {
- "babel-helper-remap-async-to-generator": "^6.24.1",
- "babel-plugin-syntax-async-functions": "^6.8.0",
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-class-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
- "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-plugin-syntax-class-properties": "^6.8.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-arrow-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
- "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-block-scoped-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
- "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-block-scoping": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
- "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
- }
- },
- "babel-plugin-transform-es2015-classes": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
- "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
- "dev": true,
- "requires": {
- "babel-helper-define-map": "^6.24.1",
- "babel-helper-function-name": "^6.24.1",
- "babel-helper-optimise-call-expression": "^6.24.1",
- "babel-helper-replace-supers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-computed-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
- "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-destructuring": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
- "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-duplicate-keys": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
- "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-for-of": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
- "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
- "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
- "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-modules-amd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
- "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.26.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
- "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
- "dev": true,
- "requires": {
- "babel-plugin-transform-strict-mode": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-types": "^6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-systemjs": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
- "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
- "dev": true,
- "requires": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-modules-umd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
- "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-object-super": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
- "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
- "dev": true,
- "requires": {
- "babel-helper-replace-supers": "^6.24.1",
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-parameters": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
- "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
- "dev": true,
- "requires": {
- "babel-helper-call-delegate": "^6.24.1",
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-shorthand-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
- "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-spread": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
- "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-sticky-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
- "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
- "dev": true,
- "requires": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-plugin-transform-es2015-template-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
- "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-typeof-symbol": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
- "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-es2015-unicode-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
- "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
- "dev": true,
- "requires": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "regexpu-core": "^2.0.0"
- }
- },
- "babel-plugin-transform-exponentiation-operator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
- "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
- "dev": true,
- "requires": {
- "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-flow-strip-types": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
- "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-flow": "^6.18.0",
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-object-rest-spread": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
- "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-object-rest-spread": "^6.8.0",
- "babel-runtime": "^6.26.0"
- }
- },
- "babel-plugin-transform-react-constant-elements": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz",
- "integrity": "sha1-LxGb9NLN1F65uqrldAU8YE9hR90=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-react-display-name": {
- "version": "6.25.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
- "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-react-jsx": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
- "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
- "dev": true,
- "requires": {
- "babel-helper-builder-react-jsx": "^6.24.1",
- "babel-plugin-syntax-jsx": "^6.8.0",
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-react-jsx-self": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
- "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-jsx": "^6.8.0",
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-react-jsx-source": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
- "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-jsx": "^6.8.0",
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-regenerator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
- "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
- "dev": true,
- "requires": {
- "regenerator-transform": "^0.10.0"
- }
- },
- "babel-plugin-transform-runtime": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
- "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
- }
- },
- "babel-plugin-transform-strict-mode": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
- "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
- },
- "babel-polyfill": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
- "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "regenerator-runtime": "^0.10.5"
+ "@babel/core": "7.2.2",
+ "@babel/plugin-proposal-class-properties": "7.3.0",
+ "@babel/plugin-proposal-decorators": "7.3.0",
+ "@babel/plugin-proposal-object-rest-spread": "7.3.2",
+ "@babel/plugin-syntax-dynamic-import": "7.2.0",
+ "@babel/plugin-transform-classes": "7.2.2",
+ "@babel/plugin-transform-destructuring": "7.3.2",
+ "@babel/plugin-transform-flow-strip-types": "7.2.3",
+ "@babel/plugin-transform-react-constant-elements": "7.2.0",
+ "@babel/plugin-transform-react-display-name": "7.2.0",
+ "@babel/plugin-transform-runtime": "7.2.0",
+ "@babel/preset-env": "7.3.1",
+ "@babel/preset-react": "7.0.0",
+ "@babel/preset-typescript": "7.1.0",
+ "@babel/runtime": "7.3.1",
+ "babel-loader": "8.0.5",
+ "babel-plugin-dynamic-import-node": "2.2.0",
+ "babel-plugin-macros": "2.5.0",
+ "babel-plugin-transform-react-remove-prop-types": "0.4.24"
},
"dependencies": {
- "regenerator-runtime": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
- "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
+ "@babel/core": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz",
+ "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/generator": "^7.2.2",
+ "@babel/helpers": "^7.2.0",
+ "@babel/parser": "^7.2.2",
+ "@babel/template": "^7.2.2",
+ "@babel/traverse": "^7.2.2",
+ "@babel/types": "^7.2.2",
+ "convert-source-map": "^1.1.0",
+ "debug": "^4.1.0",
+ "json5": "^2.1.0",
+ "lodash": "^4.17.10",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/plugin-transform-flow-strip-types": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz",
+ "integrity": "sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.2.0"
+ }
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
}
}
},
- "babel-preset-env": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz",
- "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==",
- "dev": true,
- "requires": {
- "babel-plugin-check-es2015-constants": "^6.22.0",
- "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
- "babel-plugin-transform-async-to-generator": "^6.22.0",
- "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
- "babel-plugin-transform-es2015-classes": "^6.23.0",
- "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
- "babel-plugin-transform-es2015-destructuring": "^6.23.0",
- "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
- "babel-plugin-transform-es2015-for-of": "^6.23.0",
- "babel-plugin-transform-es2015-function-name": "^6.22.0",
- "babel-plugin-transform-es2015-literals": "^6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
- "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
- "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
- "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
- "babel-plugin-transform-es2015-object-super": "^6.22.0",
- "babel-plugin-transform-es2015-parameters": "^6.23.0",
- "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
- "babel-plugin-transform-es2015-spread": "^6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
- "babel-plugin-transform-es2015-template-literals": "^6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
- "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
- "babel-plugin-transform-exponentiation-operator": "^6.22.0",
- "babel-plugin-transform-regenerator": "^6.22.0",
- "browserslist": "^2.1.2",
- "invariant": "^2.2.2",
- "semver": "^5.3.0"
- }
- },
- "babel-preset-flow": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
- "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-flow-strip-types": "^6.22.0"
- }
- },
- "babel-preset-react": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
- "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-jsx": "^6.3.13",
- "babel-plugin-transform-react-display-name": "^6.23.0",
- "babel-plugin-transform-react-jsx": "^6.24.1",
- "babel-plugin-transform-react-jsx-self": "^6.22.0",
- "babel-plugin-transform-react-jsx-source": "^6.22.0",
- "babel-preset-flow": "^6.23.0"
- }
- },
- "babel-preset-react-app": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-3.1.2.tgz",
- "integrity": "sha512-/sh5Qd5T08PYa6t4kuCdKh9tXp6/m/Jwyx7PJTqugsYMfsDUJMlBXOs5EwFODHprzjWrmQ0SydnMZu9FY4MZYg==",
- "dev": true,
- "requires": {
- "babel-plugin-dynamic-import-node": "1.1.0",
- "babel-plugin-syntax-dynamic-import": "6.18.0",
- "babel-plugin-transform-class-properties": "6.24.1",
- "babel-plugin-transform-es2015-destructuring": "6.23.0",
- "babel-plugin-transform-object-rest-spread": "6.26.0",
- "babel-plugin-transform-react-constant-elements": "6.23.0",
- "babel-plugin-transform-react-jsx": "6.24.1",
- "babel-plugin-transform-react-jsx-self": "6.22.0",
- "babel-plugin-transform-react-jsx-source": "6.22.0",
- "babel-plugin-transform-regenerator": "6.26.0",
- "babel-plugin-transform-runtime": "6.23.0",
- "babel-preset-env": "1.6.1",
- "babel-preset-react": "6.24.1"
- }
- },
- "babel-register": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
- "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
- "dev": true,
- "requires": {
- "babel-core": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "home-or-tmp": "^2.0.0",
- "lodash": "^4.17.4",
- "mkdirp": "^0.5.1",
- "source-map-support": "^0.4.15"
- }
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dev": true,
- "requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
- }
- },
- "babel-template": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
- }
- },
- "babel-traverse": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
- "dev": true,
- "requires": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
- }
- },
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
- }
- },
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
- },
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -973,27 +1288,22 @@
"is-data-descriptor": "^1.0.0",
"kind-of": "^6.0.2"
}
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
}
}
},
- "binary-extensions": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz",
- "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==",
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"dev": true
},
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "dev": true,
+ "optional": true
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -1005,25 +1315,43 @@
}
},
"braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"dev": true,
- "optional": true,
"requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
}
},
"browserslist": {
- "version": "2.11.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
- "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.3.tgz",
+ "integrity": "sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30000792",
- "electron-to-chromium": "^1.3.30"
+ "caniuse-lite": "^1.0.30000975",
+ "electron-to-chromium": "^1.3.164",
+ "node-releases": "^1.1.23"
}
},
"cache-base": {
@@ -1041,57 +1369,74 @@
"to-object-path": "^0.3.0",
"union-value": "^1.0.0",
"unset-value": "^1.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
+ "caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+ "dev": true,
+ "requires": {
+ "callsites": "^2.0.0"
+ }
+ },
+ "caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+ "dev": true,
+ "requires": {
+ "caller-callsite": "^2.0.0"
+ }
+ },
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ },
"camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30000941",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000941.tgz",
- "integrity": "sha512-4vzGb2MfZcO20VMPj1j6nRAixhmtlhkypM4fL4zhgzEucQIYiRzSqPcWIu1OF8i0FETD93FMIPWfUJCAcFvrqA==",
+ "version": "1.0.30000980",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000980.tgz",
+ "integrity": "sha512-as0PRtWHaX3gl2gpC7qA7bX88lr+qLacMMXm1QKLLQtBCwT/Ljbgrv5EXKMNBoeEX6yFZ4vIsBb4Nh+PEwW2Rw==",
"dev": true
},
"chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
"chokidar": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
- "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz",
+ "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==",
"dev": true,
"optional": true,
"requires": {
- "anymatch": "^1.3.0",
- "async-each": "^1.0.0",
- "fsevents": "^1.0.0",
- "glob-parent": "^2.0.0",
- "inherits": "^2.0.1",
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
- "is-glob": "^2.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
"path-is-absolute": "^1.0.0",
- "readdirp": "^2.0.0"
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
}
},
"class-utils": {
@@ -1114,49 +1459,20 @@
"requires": {
"is-descriptor": "^0.1.0"
}
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
}
}
},
"cliui": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
- "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"dev": true,
"requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
}
},
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "dev": true
- },
"collection-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
@@ -1167,16 +1483,37 @@
"object-visit": "^1.0.0"
}
},
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
"commander": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
- "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
"component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
"dev": true
},
"concat-map": {
@@ -1200,25 +1537,34 @@
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
"dev": true
},
- "core-js": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
- "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==",
- "dev": true
- },
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
+ "dev": true,
+ "optional": true
},
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
"dev": true,
"requires": {
- "lru-cache": "^4.0.1",
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
}
@@ -1244,6 +1590,15 @@
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"dev": true
},
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
"define-property": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
@@ -1282,34 +1637,25 @@
"is-data-descriptor": "^1.0.0",
"kind-of": "^6.0.2"
}
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
}
}
},
- "detect-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
- "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
- "dev": true,
- "requires": {
- "repeating": "^2.0.0"
- }
- },
"electron-to-chromium": {
- "version": "1.3.113",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz",
- "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==",
+ "version": "1.3.188",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.188.tgz",
+ "integrity": "sha512-tEQcughYIMj8WDMc59EGEtNxdGgwal/oLLTDw+NEqJRJwGflQvH3aiyiexrWeZOETP4/ko78PVr6gwNhdozvuQ==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
"dev": true
},
"encoding": {
@@ -1320,12 +1666,61 @@
"iconv-lite": "~0.4.13"
}
},
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
+ "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-keys": "^1.0.12"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
"esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
@@ -1333,13 +1728,13 @@
"dev": true
},
"execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"dev": true,
"requires": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
"is-stream": "^1.1.0",
"npm-run-path": "^2.0.0",
"p-finally": "^1.0.0",
@@ -1348,23 +1743,38 @@
}
},
"expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
"dev": true,
- "optional": true,
"requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "dev": true,
- "optional": true,
- "requires": {
- "fill-range": "^2.1.0"
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
}
},
"extend-shallow": {
@@ -1389,310 +1799,37 @@
}
},
"extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
- "dev": true,
- "optional": true
- },
- "fill-range": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
- "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-number": "^2.1.0",
- "isobject": "^2.0.0",
- "randomatic": "^3.0.0",
- "repeat-element": "^1.1.2",
- "repeat-string": "^1.5.2"
- }
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"dev": true,
"requires": {
- "locate-path": "^2.0.0"
- }
- },
- "flow-copy-source": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/flow-copy-source/-/flow-copy-source-1.3.0.tgz",
- "integrity": "sha512-F8aRmNmtB5l+RFG7LAWj6IYU22K37BrhIXXCcQyxSsYWm0pNubnhBSEk+eoyGCou3+4aI4tReOfLFtgd5wnnYQ==",
- "dev": true,
- "requires": {
- "chokidar": "^2.0.0",
- "fs-extra": "^5.0.0",
- "glob": "^7.0.0",
- "kefir": "^3.7.3",
- "yargs": "^11.0.0"
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"dependencies": {
- "anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"requires": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- },
- "dependencies": {
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "dev": true,
- "requires": {
- "remove-trailing-separator": "^1.0.1"
- }
- }
+ "is-descriptor": "^1.0.0"
}
},
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "chokidar": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.2.tgz",
- "integrity": "sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==",
- "dev": true,
- "requires": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "fsevents": "^1.2.7",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.0"
- }
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- }
- },
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
- "dev": true,
- "requires": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- },
- "dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.0"
- }
- }
+ "is-extendable": "^0.1.0"
}
},
"is-accessor-descriptor": {
@@ -1723,80 +1860,163 @@
"is-data-descriptor": "^1.0.0",
"kind-of": "^6.0.2"
}
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
- "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extglob": "^2.1.1"
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "flow-copy-source": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/flow-copy-source/-/flow-copy-source-2.0.7.tgz",
+ "integrity": "sha512-/9oYivwSRgIyRMWqRkzJgulUCRPqMA8JSt7l0uoW0Xmtp8ItJpURnBczJUvnAKnHp0TNttNILCeuqW2w9cwTFg==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^3.0.0",
+ "fs-extra": "^8.1.0",
+ "glob": "^7.0.0",
+ "kefir": "^3.7.3",
+ "yargs": "^13.1.0"
+ },
+ "dependencies": {
+ "anymatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.3.tgz",
+ "integrity": "sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
+ "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chokidar": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz",
+ "integrity": "sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==",
+ "dev": true,
+ "requires": {
+ "anymatch": "^3.0.1",
+ "braces": "^3.0.2",
+ "fsevents": "^2.0.6",
+ "glob-parent": "^5.0.0",
+ "is-binary-path": "^2.1.0",
+ "is-glob": "^4.0.1",
+ "normalize-path": "^3.0.0",
+ "readdirp": "^3.1.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz",
+ "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==",
+ "dev": true,
+ "optional": true
+ },
+ "glob-parent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
+ "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
}
},
"is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.1.tgz",
+ "integrity": "sha512-XXdSXZrQuvqoETj50+JAitxz1UPdt5dupjT6T5nVB+WvjMv2XKYj+s7hPeAVCXvmJrL36O4YYyWlIC3an2ePiQ==",
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "picomatch": "^2.0.4"
}
},
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
+ "is-number": "^7.0.0"
}
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
}
}
},
@@ -1806,16 +2026,6 @@
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
"dev": true
},
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "dev": true,
- "optional": true,
- "requires": {
- "for-in": "^1.0.1"
- }
- },
"fragment-cache": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -1826,12 +2036,12 @@
}
},
"fs-extra": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
- "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
+ "graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
}
@@ -1849,36 +2059,40 @@
"dev": true
},
"fsevents": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz",
- "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+ "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
"dev": true,
"optional": true,
"requires": {
- "nan": "^2.9.2",
- "node-pre-gyp": "^0.10.0"
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
},
"dependencies": {
"abbrev": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true,
"optional": true
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true
},
"aproba": {
"version": "1.2.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true,
"optional": true
},
"are-we-there-yet": {
"version": "1.1.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"dev": true,
"optional": true,
"requires": {
@@ -1888,12 +2102,14 @@
},
"balanced-match": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
@@ -1902,61 +2118,71 @@
},
"chownr": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
+ "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
"dev": true,
"optional": true
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"dev": true
},
"concat-map": {
"version": "0.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true
},
"core-util-is": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true,
"optional": true
},
"debug": {
- "version": "2.6.9",
- "bundled": true,
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"optional": true,
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"deep-extend": {
"version": "0.6.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true,
"optional": true
},
"delegates": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"dev": true,
"optional": true
},
"detect-libc": {
"version": "1.0.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"dev": true,
"optional": true
},
"fs-minipass": {
"version": "1.2.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
+ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"dev": true,
"optional": true,
"requires": {
@@ -1965,13 +2191,15 @@
},
"fs.realpath": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true,
"optional": true
},
"gauge": {
"version": "2.7.4",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"dev": true,
"optional": true,
"requires": {
@@ -1987,7 +2215,8 @@
},
"glob": {
"version": "7.1.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true,
"optional": true,
"requires": {
@@ -2001,13 +2230,15 @@
},
"has-unicode": {
"version": "2.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"dev": true,
"optional": true
},
"iconv-lite": {
"version": "0.4.24",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"optional": true,
"requires": {
@@ -2016,7 +2247,8 @@
},
"ignore-walk": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"dev": true,
"optional": true,
"requires": {
@@ -2025,7 +2257,8 @@
},
"inflight": {
"version": "1.0.6",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"optional": true,
"requires": {
@@ -2035,18 +2268,21 @@
},
"inherits": {
"version": "2.0.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
"ini": {
"version": "1.3.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true,
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
"number-is-nan": "^1.0.0"
@@ -2054,13 +2290,15 @@
},
"isarray": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true,
"optional": true
},
"minimatch": {
"version": "3.0.4",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
@@ -2068,12 +2306,14 @@
},
"minimist": {
"version": "0.0.8",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
},
"minipass": {
"version": "2.3.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
+ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"dev": true,
"requires": {
"safe-buffer": "^5.1.2",
@@ -2082,7 +2322,8 @@
},
"minizlib": {
"version": "1.2.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
+ "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"dev": true,
"optional": true,
"requires": {
@@ -2091,32 +2332,36 @@
},
"mkdirp": {
"version": "0.5.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
- "version": "2.0.0",
- "bundled": true,
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true,
"optional": true
},
"needle": {
- "version": "2.2.4",
- "bundled": true,
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.3.0.tgz",
+ "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
"dev": true,
"optional": true,
"requires": {
- "debug": "^2.1.2",
+ "debug": "^4.1.0",
"iconv-lite": "^0.4.4",
"sax": "^1.2.4"
}
},
"node-pre-gyp": {
- "version": "0.10.3",
- "bundled": true,
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz",
+ "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
"dev": true,
"optional": true,
"requires": {
@@ -2134,7 +2379,8 @@
},
"nopt": {
"version": "4.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"dev": true,
"optional": true,
"requires": {
@@ -2143,14 +2389,16 @@
}
},
"npm-bundled": {
- "version": "1.0.5",
- "bundled": true,
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
+ "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
"dev": true,
"optional": true
},
"npm-packlist": {
- "version": "1.2.0",
- "bundled": true,
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz",
+ "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"dev": true,
"optional": true,
"requires": {
@@ -2160,7 +2408,8 @@
},
"npmlog": {
"version": "4.1.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"dev": true,
"optional": true,
"requires": {
@@ -2172,18 +2421,21 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"dev": true
},
"object-assign": {
"version": "4.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true,
"optional": true
},
"once": {
"version": "1.4.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
"wrappy": "1"
@@ -2191,19 +2443,22 @@
},
"os-homedir": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
"dev": true,
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true,
"optional": true
},
"osenv": {
"version": "0.1.5",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"dev": true,
"optional": true,
"requires": {
@@ -2213,19 +2468,22 @@
},
"path-is-absolute": {
"version": "1.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true,
"optional": true
},
"process-nextick-args": {
"version": "2.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true,
"optional": true
},
"rc": {
"version": "1.2.8",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
"optional": true,
"requires": {
@@ -2237,7 +2495,8 @@
"dependencies": {
"minimist": {
"version": "1.2.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true,
"optional": true
}
@@ -2245,7 +2504,8 @@
},
"readable-stream": {
"version": "2.3.6",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"optional": true,
"requires": {
@@ -2260,7 +2520,8 @@
},
"rimraf": {
"version": "2.6.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"optional": true,
"requires": {
@@ -2269,42 +2530,49 @@
},
"safe-buffer": {
"version": "5.1.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
"safer-buffer": {
"version": "2.1.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true,
"optional": true
},
"sax": {
"version": "1.2.4",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true,
"optional": true
},
"semver": {
- "version": "5.6.0",
- "bundled": true,
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true,
"optional": true
},
"set-blocking": {
"version": "2.0.0",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true,
"optional": true
},
"signal-exit": {
"version": "3.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true,
"optional": true
},
"string-width": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
"requires": {
"code-point-at": "^1.0.0",
@@ -2314,7 +2582,8 @@
},
"string_decoder": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"optional": true,
"requires": {
@@ -2323,7 +2592,8 @@
},
"strip-ansi": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
@@ -2331,13 +2601,15 @@
},
"strip-json-comments": {
"version": "2.0.1",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true,
"optional": true
},
"tar": {
"version": "4.4.8",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
+ "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"dev": true,
"optional": true,
"requires": {
@@ -2352,13 +2624,15 @@
},
"util-deprecate": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true,
"optional": true
},
"wide-align": {
"version": "1.1.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"dev": true,
"optional": true,
"requires": {
@@ -2367,27 +2641,38 @@
},
"wrappy": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"yallist": {
"version": "3.0.3",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
"dev": true
}
}
},
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
"get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
"get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
},
"get-value": {
"version": "2.0.6",
@@ -2396,9 +2681,9 @@
"dev": true
},
"glob": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -2409,47 +2694,62 @@
"path-is-absolute": "^1.0.0"
}
},
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
"dev": true,
"optional": true,
"requires": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
- }
- },
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "dev": true,
- "requires": {
- "is-glob": "^2.0.0"
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
}
},
"globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
},
"graceful-fs": {
- "version": "4.1.15",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
+ "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==",
"dev": true
},
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "function-bind": "^1.1.1"
}
},
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true
+ },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
@@ -2459,14 +2759,6 @@
"get-value": "^2.0.6",
"has-values": "^1.0.0",
"isobject": "^3.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"has-values": {
@@ -2479,26 +2771,6 @@
"kind-of": "^4.0.0"
},
"dependencies": {
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
"kind-of": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
@@ -2510,16 +2782,6 @@
}
}
},
- "home-or-tmp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
- "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
- "dev": true,
- "requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.1"
- }
- },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -2528,6 +2790,16 @@
"safer-buffer": ">= 2.1.2 < 3"
}
},
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2539,9 +2811,9 @@
}
},
"inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"invariant": {
@@ -2554,9 +2826,9 @@
}
},
"invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
"dev": true
},
"is-accessor-descriptor": {
@@ -2566,13 +2838,31 @@
"dev": true,
"requires": {
"kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
},
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
"is-binary-path": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"dev": true,
+ "optional": true,
"requires": {
"binary-extensions": "^1.0.0"
}
@@ -2583,6 +2873,12 @@
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+ "dev": true
+ },
"is-data-descriptor": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
@@ -2590,8 +2886,25 @@
"dev": true,
"requires": {
"kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
},
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
"is-descriptor": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
@@ -2611,22 +2924,11 @@
}
}
},
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
- "dev": true,
- "optional": true
- },
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-primitive": "^2.0.0"
- }
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
},
"is-extendable": {
"version": "0.1.1",
@@ -2635,20 +2937,11 @@
"dev": true
},
"is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
},
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
@@ -2656,24 +2949,40 @@
"dev": true
},
"is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "is-extglob": "^2.1.1"
}
},
"is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
- "optional": true,
"requires": {
"kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
},
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -2681,35 +2990,31 @@
"dev": true,
"requires": {
"isobject": "^3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"dev": true,
- "optional": true
- },
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
- "dev": true,
- "optional": true
+ "requires": {
+ "has": "^1.0.1"
+ }
},
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
+ "is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
+ },
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
@@ -2729,32 +3034,61 @@
"dev": true
},
"isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true,
- "optional": true,
- "requires": {
- "isarray": "1.0.0"
- }
- },
- "js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"dev": true
},
+ "js-levenshtein": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
+ "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
"jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
"dev": true
},
"json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
+ "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
},
"jsonfile": {
"version": "4.0.0",
@@ -2775,30 +3109,55 @@
}
},
"kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
},
"lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
"dev": true,
"requires": {
- "invert-kv": "^1.0.0"
+ "invert-kv": "^2.0.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
}
},
"locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
- "p-locate": "^2.0.0",
+ "p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
@@ -2817,14 +3176,23 @@
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
"dev": true,
"requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "dev": true,
+ "requires": {
+ "p-defer": "^1.0.0"
}
},
"map-cache": {
@@ -2842,48 +3210,42 @@
"object-visit": "^1.0.0"
}
},
- "math-random": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
- "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
- "dev": true,
- "optional": true
- },
"mem": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
- "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
"dev": true,
"requires": {
- "mimic-fn": "^1.0.0"
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
}
},
"micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dev": true,
- "optional": true,
"requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
}
},
"mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
},
"minimatch": {
@@ -2902,9 +3264,9 @@
"dev": true
},
"mixin-deep": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
- "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dev": true,
"requires": {
"for-in": "^1.0.2",
@@ -2938,9 +3300,9 @@
"dev": true
},
"nan": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
- "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
"dev": true,
"optional": true
},
@@ -2961,28 +3323,14 @@
"regex-not": "^1.0.0",
"snapdragon": "^0.8.1",
"to-regex": "^3.0.1"
- },
- "dependencies": {
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
- }
}
},
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
@@ -2992,15 +3340,21 @@
"is-stream": "^1.0.1"
}
},
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "node-releases": {
+ "version": "1.1.25",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.25.tgz",
+ "integrity": "sha512-fI5BXuk83lKEoZDdH3gRhtsNgh05/wZacuXkgbiYkceE7+QIMXOg98n9ZV7mz27B+kFHnqHcUpscZZlGRSmTpQ==",
"dev": true,
"requires": {
- "remove-trailing-separator": "^1.0.1"
+ "semver": "^5.3.0"
}
},
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
"npm-run-path": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
@@ -3010,18 +3364,6 @@
"path-key": "^2.0.0"
}
},
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
"object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
@@ -3041,9 +3383,24 @@
"requires": {
"is-descriptor": "^0.1.0"
}
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
}
}
},
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
"object-visit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
@@ -3051,25 +3408,28 @@
"dev": true,
"requires": {
"isobject": "^3.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"dev": true,
- "optional": true,
"requires": {
- "for-own": "^0.1.4",
- "is-extendable": "^0.1.1"
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
}
},
"object.pick": {
@@ -3079,14 +3439,6 @@
"dev": true,
"requires": {
"isobject": "^3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"once": {
@@ -3098,81 +3450,78 @@
"wrappy": "1"
}
},
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
- "dev": true
- },
"os-locale": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
"dev": true,
"requires": {
- "execa": "^0.7.0",
- "lcid": "^1.0.0",
- "mem": "^1.1.0"
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
}
},
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
- "dev": true
- },
"output-file-sync": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
- "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz",
+ "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.4",
- "mkdirp": "^0.5.1",
- "object-assign": "^4.1.0"
+ "graceful-fs": "^4.1.11",
+ "is-plain-obj": "^1.1.0",
+ "mkdirp": "^0.5.1"
}
},
+ "p-defer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+ "dev": true
+ },
"p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
"dev": true
},
+ "p-is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+ "dev": true
+ },
"p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
"dev": true,
"requires": {
- "p-try": "^1.0.0"
+ "p-try": "^2.0.0"
}
},
"p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
- "p-limit": "^1.1.0"
+ "p-limit": "^2.0.0"
}
},
"p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
- "optional": true,
"requires": {
- "glob-base": "^0.3.0",
- "is-dotfile": "^1.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.0"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
},
"pascalcase": {
@@ -3185,7 +3534,8 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
"integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"path-exists": {
"version": "3.0.0",
@@ -3205,6 +3555,33 @@
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
"dev": true
},
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
+ "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
+ "dev": true
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ },
"portable-fetch": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/portable-fetch/-/portable-fetch-3.0.0.tgz",
@@ -3220,13 +3597,6 @@
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
"dev": true
},
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
- "dev": true,
- "optional": true
- },
"private": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
@@ -3234,43 +3604,20 @@
"dev": true
},
"process-nextick-args": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
- "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
- "dev": true
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
- "dev": true
- },
- "randomatic": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
- "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true,
+ "optional": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
- "optional": true,
"requires": {
- "is-number": "^4.0.0",
- "kind-of": "^6.0.0",
- "math-random": "^1.0.1"
- },
- "dependencies": {
- "is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
- "dev": true,
- "optional": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true,
- "optional": true
- }
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
}
},
"readable-stream": {
@@ -3278,6 +3625,7 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
+ "optional": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -3293,286 +3641,11 @@
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
"integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
"dev": true,
+ "optional": true,
"requires": {
"graceful-fs": "^4.1.11",
"micromatch": "^3.1.10",
"readable-stream": "^2.0.2"
- },
- "dependencies": {
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- }
- },
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- }
}
},
"regenerate": {
@@ -3581,33 +3654,30 @@
"integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
"dev": true
},
+ "regenerate-unicode-properties": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
+ "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0"
+ }
+ },
"regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
+ "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==",
"dev": true
},
"regenerator-transform": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
- "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz",
+ "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==",
"dev": true,
"requires": {
- "babel-runtime": "^6.18.0",
- "babel-types": "^6.19.0",
"private": "^0.1.6"
}
},
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-equal-shallow": "^0.1.3"
- }
- },
"regex-not": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
@@ -3618,27 +3688,36 @@
"safe-regex": "^1.1.0"
}
},
+ "regexp-tree": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz",
+ "integrity": "sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg==",
+ "dev": true
+ },
"regexpu-core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
- "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz",
+ "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==",
"dev": true,
"requires": {
- "regenerate": "^1.2.1",
- "regjsgen": "^0.2.0",
- "regjsparser": "^0.1.4"
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^8.0.2",
+ "regjsgen": "^0.5.0",
+ "regjsparser": "^0.6.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.1.0"
}
},
"regjsgen": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
- "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
+ "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==",
"dev": true
},
"regjsparser": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
- "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz",
+ "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==",
"dev": true,
"requires": {
"jsesc": "~0.5.0"
@@ -3656,7 +3735,8 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
- "dev": true
+ "dev": true,
+ "optional": true
},
"repeat-element": {
"version": "1.1.3",
@@ -3670,15 +3750,6 @@
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
"dev": true
},
- "repeating": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
- "dev": true,
- "requires": {
- "is-finite": "^1.0.0"
- }
- },
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -3686,9 +3757,24 @@
"dev": true
},
"require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
+ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
"dev": true
},
"resolve-url": {
@@ -3733,9 +3819,9 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"semver": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
- "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
},
"set-blocking": {
@@ -3745,9 +3831,9 @@
"dev": true
},
"set-value": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
- "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"dev": true,
"requires": {
"extend-shallow": "^2.0.1",
@@ -3789,9 +3875,9 @@
"dev": true
},
"slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"dev": true
},
"snapdragon": {
@@ -3878,18 +3964,6 @@
"is-data-descriptor": "^1.0.0",
"kind-of": "^6.0.2"
}
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
}
}
},
@@ -3900,6 +3974,17 @@
"dev": true,
"requires": {
"kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
},
"source-map": {
@@ -3921,15 +4006,6 @@
"urix": "^0.1.0"
}
},
- "source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
- "dev": true,
- "requires": {
- "source-map": "^0.5.6"
- }
- },
"source-map-url": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
@@ -3945,6 +4021,12 @@
"extend-shallow": "^3.0.0"
}
},
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
"static-extend": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
@@ -3967,30 +4049,14 @@
}
},
"string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dev": true,
"requires": {
+ "emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
+ "strip-ansi": "^5.1.0"
}
},
"string_decoder": {
@@ -3998,17 +4064,18 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
+ "optional": true,
"requires": {
"safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "ansi-regex": "^4.1.0"
}
},
"strip-eof": {
@@ -4018,10 +4085,13 @@
"dev": true
},
"supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
},
"symbol-observable": {
"version": "1.0.4",
@@ -4030,9 +4100,9 @@
"dev": true
},
"to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true
},
"to-object-path": {
@@ -4042,6 +4112,17 @@
"dev": true,
"requires": {
"kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
},
"to-regex": {
@@ -4064,17 +4145,6 @@
"requires": {
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
- },
- "dependencies": {
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- }
}
},
"trim-right": {
@@ -4083,39 +4153,44 @@
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true
},
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
+ "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
+ "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
+ "dev": true
+ },
"union-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
- "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dev": true,
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
"is-extendable": "^0.1.1",
- "set-value": "^0.4.3"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "set-value": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
- "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.1",
- "to-object-path": "^0.3.0"
- }
- }
+ "set-value": "^2.0.1"
}
},
"universalify": {
@@ -4161,20 +4236,15 @@
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
"integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
"dev": true
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
}
}
},
"upath": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
- "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
- "dev": true
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
+ "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
+ "dev": true,
+ "optional": true
},
"urix": {
"version": "0.1.0",
@@ -4188,25 +4258,21 @@
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"dev": true
},
- "user-home": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
- "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
- "dev": true
- },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
+ "dev": true,
+ "optional": true
},
- "v8flags": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
- "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
"dev": true,
"requires": {
- "user-home": "^1.1.1"
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
}
},
"whatwg-fetch": {
@@ -4230,35 +4296,14 @@
"dev": true
},
"wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
"dev": true,
"requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- }
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
}
},
"wrappy": {
@@ -4268,44 +4313,38 @@
"dev": true
},
"y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
- "dev": true
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
"dev": true
},
"yargs": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
- "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
+ "version": "13.2.4",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz",
+ "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==",
"dev": true,
"requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.1.1",
- "find-up": "^2.1.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^2.0.0",
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "os-locale": "^3.1.0",
"require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
+ "require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
+ "string-width": "^3.0.0",
"which-module": "^2.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^9.0.2"
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.0"
}
},
"yargs-parser": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
- "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
"dev": true,
"requires": {
- "camelcase": "^4.1.0"
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
}
}
}
diff --git a/samples/client/petstore/javascript-flowtyped/package.json b/samples/client/petstore/javascript-flowtyped/package.json
index 35f0d5bd937..39ff7100606 100644
--- a/samples/client/petstore/javascript-flowtyped/package.json
+++ b/samples/client/petstore/javascript-flowtyped/package.json
@@ -27,7 +27,7 @@
"@babel/plugin-transform-flow-strip-types": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"babel-preset-react-app": "^7.0.0",
- "flow-copy-source": "^1.3.0",
+ "flow-copy-source": "^2.0.0",
"rimraf": "^2.6.2"
}
}
diff --git a/samples/client/petstore/php/OpenAPIClient-php/phpunit.xml.dist b/samples/client/petstore/php/OpenAPIClient-php/phpunit.xml.dist
index 08f78faf3bb..3dd90bbe32c 100644
--- a/samples/client/petstore/php/OpenAPIClient-php/phpunit.xml.dist
+++ b/samples/client/petstore/php/OpenAPIClient-php/phpunit.xml.dist
@@ -11,11 +11,13 @@
./test/Model
-
./lib/Api
./lib/Model
+
+
+
diff --git a/samples/server/openapi3/petstore/python-flask-python2/.gitignore b/samples/client/petstore/python-experimental/.gitignore
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/.gitignore
rename to samples/client/petstore/python-experimental/.gitignore
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/.openapi-generator-ignore b/samples/client/petstore/python-experimental/.openapi-generator-ignore
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/.openapi-generator-ignore
rename to samples/client/petstore/python-experimental/.openapi-generator-ignore
diff --git a/samples/client/petstore/python-experimental/.openapi-generator/VERSION b/samples/client/petstore/python-experimental/.openapi-generator/VERSION
new file mode 100644
index 00000000000..479c313e87b
--- /dev/null
+++ b/samples/client/petstore/python-experimental/.openapi-generator/VERSION
@@ -0,0 +1 @@
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/server/openapi3/petstore/python-flask-python2/.travis.yml b/samples/client/petstore/python-experimental/.travis.yml
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/.travis.yml
rename to samples/client/petstore/python-experimental/.travis.yml
diff --git a/samples/client/petstore/python-experimental/Makefile b/samples/client/petstore/python-experimental/Makefile
new file mode 100644
index 00000000000..a7ff5e1e244
--- /dev/null
+++ b/samples/client/petstore/python-experimental/Makefile
@@ -0,0 +1,21 @@
+ #!/bin/bash
+
+REQUIREMENTS_FILE=dev-requirements.txt
+REQUIREMENTS_OUT=dev-requirements.txt.log
+SETUP_OUT=*.egg-info
+VENV=venv
+
+clean:
+ rm -rf $(REQUIREMENTS_OUT)
+ rm -rf $(SETUP_OUT)
+ rm -rf $(VENV)
+ rm -rf .tox
+ rm -rf .coverage
+ find . -name "*.py[oc]" -delete
+ find . -name "__pycache__" -delete
+
+test: clean
+ bash ./test_python2.sh
+
+test-all: clean
+ bash ./test_python2_and_3.sh
diff --git a/samples/client/petstore/python-experimental/README.md b/samples/client/petstore/python-experimental/README.md
new file mode 100644
index 00000000000..3e91b2678be
--- /dev/null
+++ b/samples/client/petstore/python-experimental/README.md
@@ -0,0 +1,198 @@
+# petstore-api
+This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+
+This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 1.0.0
+- Package version: 1.0.0
+- Build package: org.openapitools.codegen.languages.PythonClientExperimentalCodegen
+
+## Requirements.
+
+Python 2.7 and 3.4+
+
+## Installation & Usage
+### pip install
+
+If the python package is hosted on Github, you can install directly from Github
+
+```sh
+pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
+```
+(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)
+
+Then import the package:
+```python
+import petstore_api
+```
+
+### Setuptools
+
+Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
+
+```sh
+python setup.py install --user
+```
+(or `sudo python setup.py install` to install the package for all users)
+
+Then import the package:
+```python
+import petstore_api
+```
+
+## Getting Started
+
+Please follow the [installation procedure](#installation--usage) and then run the following:
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+
+# create an instance of the API class
+api_instance = petstore_api.AnotherFakeApi(petstore_api.ApiClient(configuration))
+body = petstore_api.Client() # Client | client model
+
+try:
+ # To test special tags
+ api_response = api_instance.call_123_test_special_tags(body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling AnotherFakeApi->call_123_test_special_tags: %s\n" % e)
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*AnotherFakeApi* | [**call_123_test_special_tags**](docs/AnotherFakeApi.md#call_123_test_special_tags) | **PATCH** /another-fake/dummy | To test special tags
+*FakeApi* | [**create_xml_item**](docs/FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
+*FakeApi* | [**fake_outer_boolean_serialize**](docs/FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean |
+*FakeApi* | [**fake_outer_composite_serialize**](docs/FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite |
+*FakeApi* | [**fake_outer_number_serialize**](docs/FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number |
+*FakeApi* | [**fake_outer_string_serialize**](docs/FakeApi.md#fake_outer_string_serialize) | **POST** /fake/outer/string |
+*FakeApi* | [**test_body_with_file_schema**](docs/FakeApi.md#test_body_with_file_schema) | **PUT** /fake/body-with-file-schema |
+*FakeApi* | [**test_body_with_query_params**](docs/FakeApi.md#test_body_with_query_params) | **PUT** /fake/body-with-query-params |
+*FakeApi* | [**test_client_model**](docs/FakeApi.md#test_client_model) | **PATCH** /fake | To test \"client\" model
+*FakeApi* | [**test_endpoint_parameters**](docs/FakeApi.md#test_endpoint_parameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+*FakeApi* | [**test_enum_parameters**](docs/FakeApi.md#test_enum_parameters) | **GET** /fake | To test enum parameters
+*FakeApi* | [**test_group_parameters**](docs/FakeApi.md#test_group_parameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional)
+*FakeApi* | [**test_inline_additional_properties**](docs/FakeApi.md#test_inline_additional_properties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
+*FakeApi* | [**test_json_form_data**](docs/FakeApi.md#test_json_form_data) | **GET** /fake/jsonFormData | test json serialization of form data
+*FakeClassnameTags123Api* | [**test_classname**](docs/FakeClassnameTags123Api.md#test_classname) | **PATCH** /fake_classname_test | To test class name in snake case
+*PetApi* | [**add_pet**](docs/PetApi.md#add_pet) | **POST** /pet | Add a new pet to the store
+*PetApi* | [**delete_pet**](docs/PetApi.md#delete_pet) | **DELETE** /pet/{petId} | Deletes a pet
+*PetApi* | [**find_pets_by_status**](docs/PetApi.md#find_pets_by_status) | **GET** /pet/findByStatus | Finds Pets by status
+*PetApi* | [**find_pets_by_tags**](docs/PetApi.md#find_pets_by_tags) | **GET** /pet/findByTags | Finds Pets by tags
+*PetApi* | [**get_pet_by_id**](docs/PetApi.md#get_pet_by_id) | **GET** /pet/{petId} | Find pet by ID
+*PetApi* | [**update_pet**](docs/PetApi.md#update_pet) | **PUT** /pet | Update an existing pet
+*PetApi* | [**update_pet_with_form**](docs/PetApi.md#update_pet_with_form) | **POST** /pet/{petId} | Updates a pet in the store with form data
+*PetApi* | [**upload_file**](docs/PetApi.md#upload_file) | **POST** /pet/{petId}/uploadImage | uploads an image
+*PetApi* | [**upload_file_with_required_file**](docs/PetApi.md#upload_file_with_required_file) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required)
+*StoreApi* | [**delete_order**](docs/StoreApi.md#delete_order) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
+*StoreApi* | [**get_inventory**](docs/StoreApi.md#get_inventory) | **GET** /store/inventory | Returns pet inventories by status
+*StoreApi* | [**get_order_by_id**](docs/StoreApi.md#get_order_by_id) | **GET** /store/order/{order_id} | Find purchase order by ID
+*StoreApi* | [**place_order**](docs/StoreApi.md#place_order) | **POST** /store/order | Place an order for a pet
+*UserApi* | [**create_user**](docs/UserApi.md#create_user) | **POST** /user | Create user
+*UserApi* | [**create_users_with_array_input**](docs/UserApi.md#create_users_with_array_input) | **POST** /user/createWithArray | Creates list of users with given input array
+*UserApi* | [**create_users_with_list_input**](docs/UserApi.md#create_users_with_list_input) | **POST** /user/createWithList | Creates list of users with given input array
+*UserApi* | [**delete_user**](docs/UserApi.md#delete_user) | **DELETE** /user/{username} | Delete user
+*UserApi* | [**get_user_by_name**](docs/UserApi.md#get_user_by_name) | **GET** /user/{username} | Get user by user name
+*UserApi* | [**login_user**](docs/UserApi.md#login_user) | **GET** /user/login | Logs user into the system
+*UserApi* | [**logout_user**](docs/UserApi.md#logout_user) | **GET** /user/logout | Logs out current logged in user session
+*UserApi* | [**update_user**](docs/UserApi.md#update_user) | **PUT** /user/{username} | Updated user
+
+
+## Documentation For Models
+
+ - [AdditionalPropertiesAnyType](docs/AdditionalPropertiesAnyType.md)
+ - [AdditionalPropertiesArray](docs/AdditionalPropertiesArray.md)
+ - [AdditionalPropertiesBoolean](docs/AdditionalPropertiesBoolean.md)
+ - [AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md)
+ - [AdditionalPropertiesInteger](docs/AdditionalPropertiesInteger.md)
+ - [AdditionalPropertiesNumber](docs/AdditionalPropertiesNumber.md)
+ - [AdditionalPropertiesObject](docs/AdditionalPropertiesObject.md)
+ - [AdditionalPropertiesString](docs/AdditionalPropertiesString.md)
+ - [Animal](docs/Animal.md)
+ - [ApiResponse](docs/ApiResponse.md)
+ - [ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
+ - [ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
+ - [ArrayTest](docs/ArrayTest.md)
+ - [Capitalization](docs/Capitalization.md)
+ - [Cat](docs/Cat.md)
+ - [CatAllOf](docs/CatAllOf.md)
+ - [Category](docs/Category.md)
+ - [ClassModel](docs/ClassModel.md)
+ - [Client](docs/Client.md)
+ - [Dog](docs/Dog.md)
+ - [DogAllOf](docs/DogAllOf.md)
+ - [EnumArrays](docs/EnumArrays.md)
+ - [EnumClass](docs/EnumClass.md)
+ - [EnumTest](docs/EnumTest.md)
+ - [File](docs/File.md)
+ - [FileSchemaTestClass](docs/FileSchemaTestClass.md)
+ - [FormatTest](docs/FormatTest.md)
+ - [HasOnlyReadOnly](docs/HasOnlyReadOnly.md)
+ - [List](docs/List.md)
+ - [MapTest](docs/MapTest.md)
+ - [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
+ - [Model200Response](docs/Model200Response.md)
+ - [ModelReturn](docs/ModelReturn.md)
+ - [Name](docs/Name.md)
+ - [NumberOnly](docs/NumberOnly.md)
+ - [Order](docs/Order.md)
+ - [OuterComposite](docs/OuterComposite.md)
+ - [OuterEnum](docs/OuterEnum.md)
+ - [Pet](docs/Pet.md)
+ - [ReadOnlyFirst](docs/ReadOnlyFirst.md)
+ - [SpecialModelName](docs/SpecialModelName.md)
+ - [Tag](docs/Tag.md)
+ - [TypeHolderDefault](docs/TypeHolderDefault.md)
+ - [TypeHolderExample](docs/TypeHolderExample.md)
+ - [User](docs/User.md)
+ - [XmlItem](docs/XmlItem.md)
+
+
+## Documentation For Authorization
+
+
+## api_key
+
+- **Type**: API key
+- **API key parameter name**: api_key
+- **Location**: HTTP header
+
+
+## api_key_query
+
+- **Type**: API key
+- **API key parameter name**: api_key_query
+- **Location**: URL query string
+
+
+## http_basic_test
+
+- **Type**: HTTP basic authentication
+
+
+## petstore_auth
+
+- **Type**: OAuth
+- **Flow**: implicit
+- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog
+- **Scopes**:
+ - **write:pets**: modify pets in your account
+ - **read:pets**: read your pets
+
+
+## Author
+
+
+
+
diff --git a/samples/client/petstore/python-experimental/dev-requirements.txt b/samples/client/petstore/python-experimental/dev-requirements.txt
new file mode 100644
index 00000000000..f50c13b5c50
--- /dev/null
+++ b/samples/client/petstore/python-experimental/dev-requirements.txt
@@ -0,0 +1,5 @@
+nose
+tox
+coverage
+randomize
+flake8
diff --git a/samples/client/petstore/python-experimental/docs/AdditionalPropertiesAnyType.md b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesAnyType.md
new file mode 100644
index 00000000000..9843d35ab90
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesAnyType.md
@@ -0,0 +1,10 @@
+# AdditionalPropertiesAnyType
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [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/client/petstore/python-experimental/docs/AdditionalPropertiesArray.md b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesArray.md
new file mode 100644
index 00000000000..cfe09d91c72
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesArray.md
@@ -0,0 +1,10 @@
+# AdditionalPropertiesArray
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [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/client/petstore/python-experimental/docs/AdditionalPropertiesBoolean.md b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesBoolean.md
new file mode 100644
index 00000000000..74f009554a7
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesBoolean.md
@@ -0,0 +1,10 @@
+# AdditionalPropertiesBoolean
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [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/client/petstore/python-experimental/docs/AdditionalPropertiesClass.md b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesClass.md
new file mode 100644
index 00000000000..f1f9b29a608
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesClass.md
@@ -0,0 +1,20 @@
+# AdditionalPropertiesClass
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**map_string** | **dict(str, str)** | | [optional]
+**map_number** | **dict(str, float)** | | [optional]
+**map_integer** | **dict(str, int)** | | [optional]
+**map_boolean** | **dict(str, bool)** | | [optional]
+**map_array_integer** | **dict(str, list[int])** | | [optional]
+**map_array_anytype** | **dict(str, list[object])** | | [optional]
+**map_map_string** | **dict(str, dict(str, str))** | | [optional]
+**map_map_anytype** | **dict(str, dict(str, object))** | | [optional]
+**anytype_1** | [**object**](.md) | | [optional]
+**anytype_2** | [**object**](.md) | | [optional]
+**anytype_3** | [**object**](.md) | | [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/client/petstore/python-experimental/docs/AdditionalPropertiesInteger.md b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesInteger.md
new file mode 100644
index 00000000000..a3e58fd1b0b
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesInteger.md
@@ -0,0 +1,10 @@
+# AdditionalPropertiesInteger
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [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/client/petstore/python-experimental/docs/AdditionalPropertiesNumber.md b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesNumber.md
new file mode 100644
index 00000000000..37eafe1ff03
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesNumber.md
@@ -0,0 +1,10 @@
+# AdditionalPropertiesNumber
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [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/client/petstore/python-experimental/docs/AdditionalPropertiesObject.md b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesObject.md
new file mode 100644
index 00000000000..7f4d6713c75
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesObject.md
@@ -0,0 +1,10 @@
+# AdditionalPropertiesObject
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [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/client/petstore/python-experimental/docs/AdditionalPropertiesString.md b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesString.md
new file mode 100644
index 00000000000..9317cfeee80
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AdditionalPropertiesString.md
@@ -0,0 +1,10 @@
+# AdditionalPropertiesString
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [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/client/petstore/python-experimental/docs/Animal.md b/samples/client/petstore/python-experimental/docs/Animal.md
new file mode 100644
index 00000000000..7ed4ba541fa
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Animal.md
@@ -0,0 +1,11 @@
+# Animal
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**class_name** | **str** | |
+**color** | **str** | | [optional] [default to 'red']
+
+[[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/client/petstore/python-experimental/docs/AnotherFakeApi.md b/samples/client/petstore/python-experimental/docs/AnotherFakeApi.md
new file mode 100644
index 00000000000..c3f84772cfd
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/AnotherFakeApi.md
@@ -0,0 +1,63 @@
+# petstore_api.AnotherFakeApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**call_123_test_special_tags**](AnotherFakeApi.md#call_123_test_special_tags) | **PATCH** /another-fake/dummy | To test special tags
+
+
+# **call_123_test_special_tags**
+> Client call_123_test_special_tags(body)
+
+To test special tags
+
+To test special tags and operation ID starting with number
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.AnotherFakeApi()
+body = petstore_api.Client() # Client | client model
+
+try:
+ # To test special tags
+ api_response = api_instance.call_123_test_special_tags(body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling AnotherFakeApi->call_123_test_special_tags: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**Client**](Client.md)| client model |
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/python-experimental/docs/ApiResponse.md b/samples/client/petstore/python-experimental/docs/ApiResponse.md
new file mode 100644
index 00000000000..8fc302305ab
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/ApiResponse.md
@@ -0,0 +1,12 @@
+# ApiResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**code** | **int** | | [optional]
+**type** | **str** | | [optional]
+**message** | **str** | | [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/client/petstore/python-experimental/docs/ArrayOfArrayOfNumberOnly.md b/samples/client/petstore/python-experimental/docs/ArrayOfArrayOfNumberOnly.md
new file mode 100644
index 00000000000..aa3988ab167
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/ArrayOfArrayOfNumberOnly.md
@@ -0,0 +1,10 @@
+# ArrayOfArrayOfNumberOnly
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**array_array_number** | **list[list[float]]** | | [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/client/petstore/python-experimental/docs/ArrayOfNumberOnly.md b/samples/client/petstore/python-experimental/docs/ArrayOfNumberOnly.md
new file mode 100644
index 00000000000..2c3de967aec
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/ArrayOfNumberOnly.md
@@ -0,0 +1,10 @@
+# ArrayOfNumberOnly
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**array_number** | **list[float]** | | [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/client/petstore/python-experimental/docs/ArrayTest.md b/samples/client/petstore/python-experimental/docs/ArrayTest.md
new file mode 100644
index 00000000000..6ab0d137806
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/ArrayTest.md
@@ -0,0 +1,12 @@
+# ArrayTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**array_of_string** | **list[str]** | | [optional]
+**array_array_of_integer** | **list[list[int]]** | | [optional]
+**array_array_of_model** | **list[list[ReadOnlyFirst]]** | | [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/client/petstore/python-experimental/docs/Capitalization.md b/samples/client/petstore/python-experimental/docs/Capitalization.md
new file mode 100644
index 00000000000..85d88d239ee
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Capitalization.md
@@ -0,0 +1,15 @@
+# Capitalization
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**small_camel** | **str** | | [optional]
+**capital_camel** | **str** | | [optional]
+**small_snake** | **str** | | [optional]
+**capital_snake** | **str** | | [optional]
+**sca_eth_flow_points** | **str** | | [optional]
+**att_name** | **str** | Name of the pet | [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/client/petstore/python-experimental/docs/Cat.md b/samples/client/petstore/python-experimental/docs/Cat.md
new file mode 100644
index 00000000000..8d30565d014
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Cat.md
@@ -0,0 +1,10 @@
+# Cat
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**declawed** | **bool** | | [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/client/petstore/python-experimental/docs/CatAllOf.md b/samples/client/petstore/python-experimental/docs/CatAllOf.md
new file mode 100644
index 00000000000..35434374fc9
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/CatAllOf.md
@@ -0,0 +1,10 @@
+# CatAllOf
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**declawed** | **bool** | | [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/client/petstore/python-experimental/docs/Category.md b/samples/client/petstore/python-experimental/docs/Category.md
new file mode 100644
index 00000000000..7e5c1e31649
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Category.md
@@ -0,0 +1,11 @@
+# Category
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**name** | **str** | | [default to 'default-name']
+
+[[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/client/petstore/python-experimental/docs/ClassModel.md b/samples/client/petstore/python-experimental/docs/ClassModel.md
new file mode 100644
index 00000000000..7f6f6d17211
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/ClassModel.md
@@ -0,0 +1,10 @@
+# ClassModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_class** | **str** | | [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/client/petstore/python-experimental/docs/Client.md b/samples/client/petstore/python-experimental/docs/Client.md
new file mode 100644
index 00000000000..88e99384f92
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Client.md
@@ -0,0 +1,10 @@
+# Client
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**client** | **str** | | [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/client/petstore/python-experimental/docs/Dog.md b/samples/client/petstore/python-experimental/docs/Dog.md
new file mode 100644
index 00000000000..f727487975c
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Dog.md
@@ -0,0 +1,10 @@
+# Dog
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**breed** | **str** | | [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/client/petstore/python-experimental/docs/DogAllOf.md b/samples/client/petstore/python-experimental/docs/DogAllOf.md
new file mode 100644
index 00000000000..36d3216f7b3
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/DogAllOf.md
@@ -0,0 +1,10 @@
+# DogAllOf
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**breed** | **str** | | [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/client/petstore/python-experimental/docs/EnumArrays.md b/samples/client/petstore/python-experimental/docs/EnumArrays.md
new file mode 100644
index 00000000000..e15a5f1fd04
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/EnumArrays.md
@@ -0,0 +1,11 @@
+# EnumArrays
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**just_symbol** | **str** | | [optional]
+**array_enum** | **list[str]** | | [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/client/petstore/python-experimental/docs/EnumClass.md b/samples/client/petstore/python-experimental/docs/EnumClass.md
new file mode 100644
index 00000000000..67f017becd0
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/EnumClass.md
@@ -0,0 +1,9 @@
+# EnumClass
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[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/client/petstore/python-experimental/docs/EnumTest.md b/samples/client/petstore/python-experimental/docs/EnumTest.md
new file mode 100644
index 00000000000..c4c1630250f
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/EnumTest.md
@@ -0,0 +1,14 @@
+# EnumTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enum_string** | **str** | | [optional]
+**enum_string_required** | **str** | |
+**enum_integer** | **int** | | [optional]
+**enum_number** | **float** | | [optional]
+**outer_enum** | [**OuterEnum**](OuterEnum.md) | | [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/client/petstore/python-experimental/docs/FakeApi.md b/samples/client/petstore/python-experimental/docs/FakeApi.md
new file mode 100644
index 00000000000..946a8ce3e77
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/FakeApi.md
@@ -0,0 +1,764 @@
+# petstore_api.FakeApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_xml_item**](FakeApi.md#create_xml_item) | **POST** /fake/create_xml_item | creates an XmlItem
+[**fake_outer_boolean_serialize**](FakeApi.md#fake_outer_boolean_serialize) | **POST** /fake/outer/boolean |
+[**fake_outer_composite_serialize**](FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite |
+[**fake_outer_number_serialize**](FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number |
+[**fake_outer_string_serialize**](FakeApi.md#fake_outer_string_serialize) | **POST** /fake/outer/string |
+[**test_body_with_file_schema**](FakeApi.md#test_body_with_file_schema) | **PUT** /fake/body-with-file-schema |
+[**test_body_with_query_params**](FakeApi.md#test_body_with_query_params) | **PUT** /fake/body-with-query-params |
+[**test_client_model**](FakeApi.md#test_client_model) | **PATCH** /fake | To test \"client\" model
+[**test_endpoint_parameters**](FakeApi.md#test_endpoint_parameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+[**test_enum_parameters**](FakeApi.md#test_enum_parameters) | **GET** /fake | To test enum parameters
+[**test_group_parameters**](FakeApi.md#test_group_parameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional)
+[**test_inline_additional_properties**](FakeApi.md#test_inline_additional_properties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
+[**test_json_form_data**](FakeApi.md#test_json_form_data) | **GET** /fake/jsonFormData | test json serialization of form data
+
+
+# **create_xml_item**
+> create_xml_item(xml_item)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+xml_item = petstore_api.XmlItem() # XmlItem | XmlItem Body
+
+try:
+ # creates an XmlItem
+ api_instance.create_xml_item(xml_item)
+except ApiException as e:
+ print("Exception when calling FakeApi->create_xml_item: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xml_item** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fake_outer_boolean_serialize**
+> bool fake_outer_boolean_serialize(body=body)
+
+
+
+Test serialization of outer boolean types
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+body = True # bool | Input boolean as post body (optional)
+
+try:
+ api_response = api_instance.fake_outer_boolean_serialize(body=body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FakeApi->fake_outer_boolean_serialize: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **bool**| Input boolean as post body | [optional]
+
+### Return type
+
+**bool**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Output boolean | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fake_outer_composite_serialize**
+> OuterComposite fake_outer_composite_serialize(body=body)
+
+
+
+Test serialization of object with outer number type
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+body = petstore_api.OuterComposite() # OuterComposite | Input composite as post body (optional)
+
+try:
+ api_response = api_instance.fake_outer_composite_serialize(body=body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FakeApi->fake_outer_composite_serialize: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional]
+
+### Return type
+
+[**OuterComposite**](OuterComposite.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Output composite | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fake_outer_number_serialize**
+> float fake_outer_number_serialize(body=body)
+
+
+
+Test serialization of outer number types
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+body = 3.4 # float | Input number as post body (optional)
+
+try:
+ api_response = api_instance.fake_outer_number_serialize(body=body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FakeApi->fake_outer_number_serialize: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **float**| Input number as post body | [optional]
+
+### Return type
+
+**float**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Output number | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fake_outer_string_serialize**
+> str fake_outer_string_serialize(body=body)
+
+
+
+Test serialization of outer string types
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+body = 'body_example' # str | Input string as post body (optional)
+
+try:
+ api_response = api_instance.fake_outer_string_serialize(body=body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FakeApi->fake_outer_string_serialize: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **str**| Input string as post body | [optional]
+
+### Return type
+
+**str**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Output string | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_body_with_file_schema**
+> test_body_with_file_schema(body)
+
+
+
+For this test, the body for this request much reference a schema named `File`.
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+body = petstore_api.FileSchemaTestClass() # FileSchemaTestClass |
+
+try:
+ api_instance.test_body_with_file_schema(body)
+except ApiException as e:
+ print("Exception when calling FakeApi->test_body_with_file_schema: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**FileSchemaTestClass**](FileSchemaTestClass.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Success | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_body_with_query_params**
+> test_body_with_query_params(query, body)
+
+
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+query = 'query_example' # str |
+body = petstore_api.User() # User |
+
+try:
+ api_instance.test_body_with_query_params(query, body)
+except ApiException as e:
+ print("Exception when calling FakeApi->test_body_with_query_params: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **query** | **str**| |
+ **body** | [**User**](User.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Success | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_client_model**
+> Client test_client_model(body)
+
+To test \"client\" model
+
+To test \"client\" model
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+body = petstore_api.Client() # Client | client model
+
+try:
+ # To test \"client\" model
+ api_response = api_instance.test_client_model(body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FakeApi->test_client_model: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**Client**](Client.md)| client model |
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_endpoint_parameters**
+> test_endpoint_parameters(number, double, pattern_without_delimiter, byte, integer=integer, int32=int32, int64=int64, float=float, string=string, binary=binary, date=date, date_time=date_time, password=password, param_callback=param_callback)
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+
+### Example
+
+* Basic Authentication (http_basic_test):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure HTTP basic authorization: http_basic_test
+configuration.username = 'YOUR_USERNAME'
+configuration.password = 'YOUR_PASSWORD'
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi(petstore_api.ApiClient(configuration))
+number = 3.4 # float | None
+double = 3.4 # float | None
+pattern_without_delimiter = 'pattern_without_delimiter_example' # str | None
+byte = 'byte_example' # str | None
+integer = 56 # int | None (optional)
+int32 = 56 # int | None (optional)
+int64 = 56 # int | None (optional)
+float = 3.4 # float | None (optional)
+string = 'string_example' # str | None (optional)
+binary = '/path/to/file' # file | None (optional)
+date = '2013-10-20' # date | None (optional)
+date_time = '2013-10-20T19:20:30+01:00' # datetime | None (optional)
+password = 'password_example' # str | None (optional)
+param_callback = 'param_callback_example' # str | None (optional)
+
+try:
+ # Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+ api_instance.test_endpoint_parameters(number, double, pattern_without_delimiter, byte, integer=integer, int32=int32, int64=int64, float=float, string=string, binary=binary, date=date, date_time=date_time, password=password, param_callback=param_callback)
+except ApiException as e:
+ print("Exception when calling FakeApi->test_endpoint_parameters: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **number** | **float**| None |
+ **double** | **float**| None |
+ **pattern_without_delimiter** | **str**| None |
+ **byte** | **str**| None |
+ **integer** | **int**| None | [optional]
+ **int32** | **int**| None | [optional]
+ **int64** | **int**| None | [optional]
+ **float** | **float**| None | [optional]
+ **string** | **str**| None | [optional]
+ **binary** | **file**| None | [optional]
+ **date** | **date**| None | [optional]
+ **date_time** | **datetime**| None | [optional]
+ **password** | **str**| None | [optional]
+ **param_callback** | **str**| None | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[http_basic_test](../README.md#http_basic_test)
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**400** | Invalid username supplied | - |
+**404** | User not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_enum_parameters**
+> test_enum_parameters(enum_header_string_array=enum_header_string_array, enum_header_string=enum_header_string, enum_query_string_array=enum_query_string_array, enum_query_string=enum_query_string, enum_query_integer=enum_query_integer, enum_query_double=enum_query_double, enum_form_string_array=enum_form_string_array, enum_form_string=enum_form_string)
+
+To test enum parameters
+
+To test enum parameters
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+enum_header_string_array = ['enum_header_string_array_example'] # list[str] | Header parameter enum test (string array) (optional)
+enum_header_string = '-efg' # str | Header parameter enum test (string) (optional) (default to '-efg')
+enum_query_string_array = ['enum_query_string_array_example'] # list[str] | Query parameter enum test (string array) (optional)
+enum_query_string = '-efg' # str | Query parameter enum test (string) (optional) (default to '-efg')
+enum_query_integer = 56 # int | Query parameter enum test (double) (optional)
+enum_query_double = 3.4 # float | Query parameter enum test (double) (optional)
+enum_form_string_array = '$' # list[str] | Form parameter enum test (string array) (optional) (default to '$')
+enum_form_string = '-efg' # str | Form parameter enum test (string) (optional) (default to '-efg')
+
+try:
+ # To test enum parameters
+ api_instance.test_enum_parameters(enum_header_string_array=enum_header_string_array, enum_header_string=enum_header_string, enum_query_string_array=enum_query_string_array, enum_query_string=enum_query_string, enum_query_integer=enum_query_integer, enum_query_double=enum_query_double, enum_form_string_array=enum_form_string_array, enum_form_string=enum_form_string)
+except ApiException as e:
+ print("Exception when calling FakeApi->test_enum_parameters: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **enum_header_string_array** | [**list[str]**](str.md)| Header parameter enum test (string array) | [optional]
+ **enum_header_string** | **str**| Header parameter enum test (string) | [optional] [default to '-efg']
+ **enum_query_string_array** | [**list[str]**](str.md)| Query parameter enum test (string array) | [optional]
+ **enum_query_string** | **str**| Query parameter enum test (string) | [optional] [default to '-efg']
+ **enum_query_integer** | **int**| Query parameter enum test (double) | [optional]
+ **enum_query_double** | **float**| Query parameter enum test (double) | [optional]
+ **enum_form_string_array** | [**list[str]**](str.md)| Form parameter enum test (string array) | [optional] [default to '$']
+ **enum_form_string** | **str**| Form parameter enum test (string) | [optional] [default to '-efg']
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**400** | Invalid request | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_group_parameters**
+> test_group_parameters(required_string_group, required_boolean_group, required_int64_group, string_group=string_group, boolean_group=boolean_group, int64_group=int64_group)
+
+Fake endpoint to test group parameters (optional)
+
+Fake endpoint to test group parameters (optional)
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+required_string_group = 56 # int | Required String in group parameters
+required_boolean_group = True # bool | Required Boolean in group parameters
+required_int64_group = 56 # int | Required Integer in group parameters
+string_group = 56 # int | String in group parameters (optional)
+boolean_group = True # bool | Boolean in group parameters (optional)
+int64_group = 56 # int | Integer in group parameters (optional)
+
+try:
+ # Fake endpoint to test group parameters (optional)
+ api_instance.test_group_parameters(required_string_group, required_boolean_group, required_int64_group, string_group=string_group, boolean_group=boolean_group, int64_group=int64_group)
+except ApiException as e:
+ print("Exception when calling FakeApi->test_group_parameters: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **required_string_group** | **int**| Required String in group parameters |
+ **required_boolean_group** | **bool**| Required Boolean in group parameters |
+ **required_int64_group** | **int**| Required Integer in group parameters |
+ **string_group** | **int**| String in group parameters | [optional]
+ **boolean_group** | **bool**| Boolean in group parameters | [optional]
+ **int64_group** | **int**| Integer in group parameters | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**400** | Someting wrong | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_inline_additional_properties**
+> test_inline_additional_properties(param)
+
+test inline additionalProperties
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+param = {'key': 'param_example'} # dict(str, str) | request body
+
+try:
+ # test inline additionalProperties
+ api_instance.test_inline_additional_properties(param)
+except ApiException as e:
+ print("Exception when calling FakeApi->test_inline_additional_properties: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **param** | [**dict(str, str)**](str.md)| request body |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_json_form_data**
+> test_json_form_data(param, param2)
+
+test json serialization of form data
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.FakeApi()
+param = 'param_example' # str | field1
+param2 = 'param2_example' # str | field2
+
+try:
+ # test json serialization of form data
+ api_instance.test_json_form_data(param, param2)
+except ApiException as e:
+ print("Exception when calling FakeApi->test_json_form_data: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **param** | **str**| field1 |
+ **param2** | **str**| field2 |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/python-experimental/docs/FakeClassnameTags123Api.md b/samples/client/petstore/python-experimental/docs/FakeClassnameTags123Api.md
new file mode 100644
index 00000000000..7ffcf211224
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/FakeClassnameTags123Api.md
@@ -0,0 +1,69 @@
+# petstore_api.FakeClassnameTags123Api
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**test_classname**](FakeClassnameTags123Api.md#test_classname) | **PATCH** /fake_classname_test | To test class name in snake case
+
+
+# **test_classname**
+> Client test_classname(body)
+
+To test class name in snake case
+
+To test class name in snake case
+
+### Example
+
+* Api Key Authentication (api_key_query):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure API key authorization: api_key_query
+configuration.api_key['api_key_query'] = 'YOUR_API_KEY'
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key_query'] = 'Bearer'
+
+# create an instance of the API class
+api_instance = petstore_api.FakeClassnameTags123Api(petstore_api.ApiClient(configuration))
+body = petstore_api.Client() # Client | client model
+
+try:
+ # To test class name in snake case
+ api_response = api_instance.test_classname(body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FakeClassnameTags123Api->test_classname: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**Client**](Client.md)| client model |
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+[api_key_query](../README.md#api_key_query)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/python-experimental/docs/File.md b/samples/client/petstore/python-experimental/docs/File.md
new file mode 100644
index 00000000000..6a925f0a7af
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/File.md
@@ -0,0 +1,10 @@
+# File
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**source_uri** | **str** | Test capitalization | [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/client/petstore/python-experimental/docs/FileSchemaTestClass.md b/samples/client/petstore/python-experimental/docs/FileSchemaTestClass.md
new file mode 100644
index 00000000000..dc372228988
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/FileSchemaTestClass.md
@@ -0,0 +1,11 @@
+# FileSchemaTestClass
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**file** | [**File**](File.md) | | [optional]
+**files** | [**list[File]**](File.md) | | [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/client/petstore/python-experimental/docs/FormatTest.md b/samples/client/petstore/python-experimental/docs/FormatTest.md
new file mode 100644
index 00000000000..31d92e2a750
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/FormatTest.md
@@ -0,0 +1,22 @@
+# FormatTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**integer** | **int** | | [optional]
+**int32** | **int** | | [optional]
+**int64** | **int** | | [optional]
+**number** | **float** | |
+**float** | **float** | | [optional]
+**double** | **float** | | [optional]
+**string** | **str** | | [optional]
+**byte** | **str** | |
+**binary** | **file** | | [optional]
+**date** | **date** | |
+**date_time** | **datetime** | | [optional]
+**uuid** | **str** | | [optional]
+**password** | **str** | |
+
+[[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/client/petstore/python-experimental/docs/HasOnlyReadOnly.md b/samples/client/petstore/python-experimental/docs/HasOnlyReadOnly.md
new file mode 100644
index 00000000000..44ad450b52c
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/HasOnlyReadOnly.md
@@ -0,0 +1,11 @@
+# HasOnlyReadOnly
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **str** | | [optional]
+**foo** | **str** | | [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/client/petstore/python-experimental/docs/List.md b/samples/client/petstore/python-experimental/docs/List.md
new file mode 100644
index 00000000000..11f4f3a05f3
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/List.md
@@ -0,0 +1,10 @@
+# List
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_123_list** | **str** | | [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/client/petstore/python-experimental/docs/MapTest.md b/samples/client/petstore/python-experimental/docs/MapTest.md
new file mode 100644
index 00000000000..a5601691f88
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/MapTest.md
@@ -0,0 +1,13 @@
+# MapTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**map_map_of_string** | **dict(str, dict(str, str))** | | [optional]
+**map_of_enum_string** | **dict(str, str)** | | [optional]
+**direct_map** | **dict(str, bool)** | | [optional]
+**indirect_map** | **dict(str, bool)** | | [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/client/petstore/python-experimental/docs/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/client/petstore/python-experimental/docs/MixedPropertiesAndAdditionalPropertiesClass.md
new file mode 100644
index 00000000000..b9808d5275e
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/MixedPropertiesAndAdditionalPropertiesClass.md
@@ -0,0 +1,12 @@
+# MixedPropertiesAndAdditionalPropertiesClass
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**uuid** | **str** | | [optional]
+**date_time** | **datetime** | | [optional]
+**map** | [**dict(str, Animal)**](Animal.md) | | [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/client/petstore/python-experimental/docs/Model200Response.md b/samples/client/petstore/python-experimental/docs/Model200Response.md
new file mode 100644
index 00000000000..30f47cae521
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Model200Response.md
@@ -0,0 +1,11 @@
+# Model200Response
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **int** | | [optional]
+**_class** | **str** | | [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/client/petstore/python-experimental/docs/ModelReturn.md b/samples/client/petstore/python-experimental/docs/ModelReturn.md
new file mode 100644
index 00000000000..2b03798e301
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/ModelReturn.md
@@ -0,0 +1,10 @@
+# ModelReturn
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_return** | **int** | | [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/client/petstore/python-experimental/docs/Name.md b/samples/client/petstore/python-experimental/docs/Name.md
new file mode 100644
index 00000000000..542da3f0476
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Name.md
@@ -0,0 +1,13 @@
+# Name
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **int** | |
+**snake_case** | **int** | | [optional]
+**_property** | **str** | | [optional]
+**_123_number** | **int** | | [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/client/petstore/python-experimental/docs/NumberOnly.md b/samples/client/petstore/python-experimental/docs/NumberOnly.md
new file mode 100644
index 00000000000..93a0fde7b93
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/NumberOnly.md
@@ -0,0 +1,10 @@
+# NumberOnly
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**just_number** | **float** | | [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/client/petstore/python-experimental/docs/Order.md b/samples/client/petstore/python-experimental/docs/Order.md
new file mode 100644
index 00000000000..b5f7b22d34c
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Order.md
@@ -0,0 +1,15 @@
+# Order
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**pet_id** | **int** | | [optional]
+**quantity** | **int** | | [optional]
+**ship_date** | **datetime** | | [optional]
+**status** | **str** | Order Status | [optional]
+**complete** | **bool** | | [optional] [default to False]
+
+[[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/client/petstore/python-experimental/docs/OuterComposite.md b/samples/client/petstore/python-experimental/docs/OuterComposite.md
new file mode 100644
index 00000000000..bab07ad559e
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/OuterComposite.md
@@ -0,0 +1,12 @@
+# OuterComposite
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**my_number** | **float** | | [optional]
+**my_string** | **str** | | [optional]
+**my_boolean** | **bool** | | [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/client/petstore/python-experimental/docs/OuterEnum.md b/samples/client/petstore/python-experimental/docs/OuterEnum.md
new file mode 100644
index 00000000000..06d413b0168
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/OuterEnum.md
@@ -0,0 +1,9 @@
+# OuterEnum
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[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/client/petstore/python-experimental/docs/Pet.md b/samples/client/petstore/python-experimental/docs/Pet.md
new file mode 100644
index 00000000000..9e15090300f
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Pet.md
@@ -0,0 +1,15 @@
+# Pet
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**category** | [**Category**](Category.md) | | [optional]
+**name** | **str** | |
+**photo_urls** | **list[str]** | |
+**tags** | [**list[Tag]**](Tag.md) | | [optional]
+**status** | **str** | pet status in the store | [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/client/petstore/python-experimental/docs/PetApi.md b/samples/client/petstore/python-experimental/docs/PetApi.md
new file mode 100644
index 00000000000..3ed2551bd64
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/PetApi.md
@@ -0,0 +1,548 @@
+# petstore_api.PetApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_pet**](PetApi.md#add_pet) | **POST** /pet | Add a new pet to the store
+[**delete_pet**](PetApi.md#delete_pet) | **DELETE** /pet/{petId} | Deletes a pet
+[**find_pets_by_status**](PetApi.md#find_pets_by_status) | **GET** /pet/findByStatus | Finds Pets by status
+[**find_pets_by_tags**](PetApi.md#find_pets_by_tags) | **GET** /pet/findByTags | Finds Pets by tags
+[**get_pet_by_id**](PetApi.md#get_pet_by_id) | **GET** /pet/{petId} | Find pet by ID
+[**update_pet**](PetApi.md#update_pet) | **PUT** /pet | Update an existing pet
+[**update_pet_with_form**](PetApi.md#update_pet_with_form) | **POST** /pet/{petId} | Updates a pet in the store with form data
+[**upload_file**](PetApi.md#upload_file) | **POST** /pet/{petId}/uploadImage | uploads an image
+[**upload_file_with_required_file**](PetApi.md#upload_file_with_required_file) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required)
+
+
+# **add_pet**
+> add_pet(body)
+
+Add a new pet to the store
+
+### Example
+
+* OAuth Authentication (petstore_auth):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure OAuth2 access token for authorization: petstore_auth
+configuration.access_token = 'YOUR_ACCESS_TOKEN'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+body = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
+
+try:
+ # Add a new pet to the store
+ api_instance.add_pet(body)
+except ApiException as e:
+ print("Exception when calling PetApi->add_pet: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/xml
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**405** | Invalid input | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_pet**
+> delete_pet(pet_id, api_key=api_key)
+
+Deletes a pet
+
+### Example
+
+* OAuth Authentication (petstore_auth):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure OAuth2 access token for authorization: petstore_auth
+configuration.access_token = 'YOUR_ACCESS_TOKEN'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+pet_id = 56 # int | Pet id to delete
+api_key = 'api_key_example' # str | (optional)
+
+try:
+ # Deletes a pet
+ api_instance.delete_pet(pet_id, api_key=api_key)
+except ApiException as e:
+ print("Exception when calling PetApi->delete_pet: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pet_id** | **int**| Pet id to delete |
+ **api_key** | **str**| | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**400** | Invalid pet value | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **find_pets_by_status**
+> list[Pet] find_pets_by_status(status)
+
+Finds Pets by status
+
+Multiple status values can be provided with comma separated strings
+
+### Example
+
+* OAuth Authentication (petstore_auth):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure OAuth2 access token for authorization: petstore_auth
+configuration.access_token = 'YOUR_ACCESS_TOKEN'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+status = ['status_example'] # list[str] | Status values that need to be considered for filter
+
+try:
+ # Finds Pets by status
+ api_response = api_instance.find_pets_by_status(status)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling PetApi->find_pets_by_status: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **status** | [**list[str]**](str.md)| Status values that need to be considered for filter |
+
+### Return type
+
+[**list[Pet]**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**400** | Invalid status value | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **find_pets_by_tags**
+> list[Pet] find_pets_by_tags(tags)
+
+Finds Pets by tags
+
+Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+
+### Example
+
+* OAuth Authentication (petstore_auth):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure OAuth2 access token for authorization: petstore_auth
+configuration.access_token = 'YOUR_ACCESS_TOKEN'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+tags = ['tags_example'] # list[str] | Tags to filter by
+
+try:
+ # Finds Pets by tags
+ api_response = api_instance.find_pets_by_tags(tags)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling PetApi->find_pets_by_tags: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **tags** | [**list[str]**](str.md)| Tags to filter by |
+
+### Return type
+
+[**list[Pet]**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**400** | Invalid tag value | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_pet_by_id**
+> Pet get_pet_by_id(pet_id)
+
+Find pet by ID
+
+Returns a single pet
+
+### Example
+
+* Api Key Authentication (api_key):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = 'YOUR_API_KEY'
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+pet_id = 56 # int | ID of pet to return
+
+try:
+ # Find pet by ID
+ api_response = api_instance.get_pet_by_id(pet_id)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling PetApi->get_pet_by_id: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pet_id** | **int**| ID of pet to return |
+
+### Return type
+
+[**Pet**](Pet.md)
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**400** | Invalid ID supplied | - |
+**404** | Pet not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_pet**
+> update_pet(body)
+
+Update an existing pet
+
+### Example
+
+* OAuth Authentication (petstore_auth):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure OAuth2 access token for authorization: petstore_auth
+configuration.access_token = 'YOUR_ACCESS_TOKEN'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+body = petstore_api.Pet() # Pet | Pet object that needs to be added to the store
+
+try:
+ # Update an existing pet
+ api_instance.update_pet(body)
+except ApiException as e:
+ print("Exception when calling PetApi->update_pet: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/xml
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**400** | Invalid ID supplied | - |
+**404** | Pet not found | - |
+**405** | Validation exception | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_pet_with_form**
+> update_pet_with_form(pet_id, name=name, status=status)
+
+Updates a pet in the store with form data
+
+### Example
+
+* OAuth Authentication (petstore_auth):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure OAuth2 access token for authorization: petstore_auth
+configuration.access_token = 'YOUR_ACCESS_TOKEN'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+pet_id = 56 # int | ID of pet that needs to be updated
+name = 'name_example' # str | Updated name of the pet (optional)
+status = 'status_example' # str | Updated status of the pet (optional)
+
+try:
+ # Updates a pet in the store with form data
+ api_instance.update_pet_with_form(pet_id, name=name, status=status)
+except ApiException as e:
+ print("Exception when calling PetApi->update_pet_with_form: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pet_id** | **int**| ID of pet that needs to be updated |
+ **name** | **str**| Updated name of the pet | [optional]
+ **status** | **str**| Updated status of the pet | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**405** | Invalid input | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **upload_file**
+> ApiResponse upload_file(pet_id, additional_metadata=additional_metadata, file=file)
+
+uploads an image
+
+### Example
+
+* OAuth Authentication (petstore_auth):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure OAuth2 access token for authorization: petstore_auth
+configuration.access_token = 'YOUR_ACCESS_TOKEN'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+pet_id = 56 # int | ID of pet to update
+additional_metadata = 'additional_metadata_example' # str | Additional data to pass to server (optional)
+file = '/path/to/file' # file | file to upload (optional)
+
+try:
+ # uploads an image
+ api_response = api_instance.upload_file(pet_id, additional_metadata=additional_metadata, file=file)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling PetApi->upload_file: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pet_id** | **int**| ID of pet to update |
+ **additional_metadata** | **str**| Additional data to pass to server | [optional]
+ **file** | **file**| file to upload | [optional]
+
+### Return type
+
+[**ApiResponse**](ApiResponse.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **upload_file_with_required_file**
+> ApiResponse upload_file_with_required_file(pet_id, required_file, additional_metadata=additional_metadata)
+
+uploads an image (required)
+
+### Example
+
+* OAuth Authentication (petstore_auth):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure OAuth2 access token for authorization: petstore_auth
+configuration.access_token = 'YOUR_ACCESS_TOKEN'
+
+# create an instance of the API class
+api_instance = petstore_api.PetApi(petstore_api.ApiClient(configuration))
+pet_id = 56 # int | ID of pet to update
+required_file = '/path/to/file' # file | file to upload
+additional_metadata = 'additional_metadata_example' # str | Additional data to pass to server (optional)
+
+try:
+ # uploads an image (required)
+ api_response = api_instance.upload_file_with_required_file(pet_id, required_file, additional_metadata=additional_metadata)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling PetApi->upload_file_with_required_file: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pet_id** | **int**| ID of pet to update |
+ **required_file** | **file**| file to upload |
+ **additional_metadata** | **str**| Additional data to pass to server | [optional]
+
+### Return type
+
+[**ApiResponse**](ApiResponse.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/python-experimental/docs/ReadOnlyFirst.md b/samples/client/petstore/python-experimental/docs/ReadOnlyFirst.md
new file mode 100644
index 00000000000..93fed253d01
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/ReadOnlyFirst.md
@@ -0,0 +1,11 @@
+# ReadOnlyFirst
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **str** | | [optional]
+**baz** | **str** | | [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/client/petstore/python-experimental/docs/SpecialModelName.md b/samples/client/petstore/python-experimental/docs/SpecialModelName.md
new file mode 100644
index 00000000000..022ee19169c
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/SpecialModelName.md
@@ -0,0 +1,10 @@
+# SpecialModelName
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**special_property_name** | **int** | | [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/client/petstore/python-experimental/docs/StoreApi.md b/samples/client/petstore/python-experimental/docs/StoreApi.md
new file mode 100644
index 00000000000..76b94f73dcf
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/StoreApi.md
@@ -0,0 +1,231 @@
+# petstore_api.StoreApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**delete_order**](StoreApi.md#delete_order) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
+[**get_inventory**](StoreApi.md#get_inventory) | **GET** /store/inventory | Returns pet inventories by status
+[**get_order_by_id**](StoreApi.md#get_order_by_id) | **GET** /store/order/{order_id} | Find purchase order by ID
+[**place_order**](StoreApi.md#place_order) | **POST** /store/order | Place an order for a pet
+
+
+# **delete_order**
+> delete_order(order_id)
+
+Delete purchase order by ID
+
+For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.StoreApi()
+order_id = 'order_id_example' # str | ID of the order that needs to be deleted
+
+try:
+ # Delete purchase order by ID
+ api_instance.delete_order(order_id)
+except ApiException as e:
+ print("Exception when calling StoreApi->delete_order: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **order_id** | **str**| ID of the order that needs to be deleted |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**400** | Invalid ID supplied | - |
+**404** | Order not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_inventory**
+> dict(str, int) get_inventory()
+
+Returns pet inventories by status
+
+Returns a map of status codes to quantities
+
+### Example
+
+* Api Key Authentication (api_key):
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+configuration = petstore_api.Configuration()
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = 'YOUR_API_KEY'
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# create an instance of the API class
+api_instance = petstore_api.StoreApi(petstore_api.ApiClient(configuration))
+
+try:
+ # Returns pet inventories by status
+ api_response = api_instance.get_inventory()
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling StoreApi->get_inventory: %s\n" % e)
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+**dict(str, int)**
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_order_by_id**
+> Order get_order_by_id(order_id)
+
+Find purchase order by ID
+
+For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.StoreApi()
+order_id = 56 # int | ID of pet that needs to be fetched
+
+try:
+ # Find purchase order by ID
+ api_response = api_instance.get_order_by_id(order_id)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling StoreApi->get_order_by_id: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **order_id** | **int**| ID of pet that needs to be fetched |
+
+### Return type
+
+[**Order**](Order.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**400** | Invalid ID supplied | - |
+**404** | Order not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **place_order**
+> Order place_order(body)
+
+Place an order for a pet
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.StoreApi()
+body = petstore_api.Order() # Order | order placed for purchasing the pet
+
+try:
+ # Place an order for a pet
+ api_response = api_instance.place_order(body)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling StoreApi->place_order: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**Order**](Order.md)| order placed for purchasing the pet |
+
+### Return type
+
+[**Order**](Order.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**400** | Invalid Order | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/python-experimental/docs/Tag.md b/samples/client/petstore/python-experimental/docs/Tag.md
new file mode 100644
index 00000000000..243cd98eda6
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/Tag.md
@@ -0,0 +1,11 @@
+# Tag
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**name** | **str** | | [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/client/petstore/python-experimental/docs/TypeHolderDefault.md b/samples/client/petstore/python-experimental/docs/TypeHolderDefault.md
new file mode 100644
index 00000000000..861da021826
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/TypeHolderDefault.md
@@ -0,0 +1,14 @@
+# TypeHolderDefault
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**string_item** | **str** | | [default to 'what']
+**number_item** | **float** | |
+**integer_item** | **int** | |
+**bool_item** | **bool** | | [default to True]
+**array_item** | **list[int]** | |
+
+[[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/client/petstore/python-experimental/docs/TypeHolderExample.md b/samples/client/petstore/python-experimental/docs/TypeHolderExample.md
new file mode 100644
index 00000000000..d59718cdcb1
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/TypeHolderExample.md
@@ -0,0 +1,14 @@
+# TypeHolderExample
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**string_item** | **str** | |
+**number_item** | **float** | |
+**integer_item** | **int** | |
+**bool_item** | **bool** | |
+**array_item** | **list[int]** | |
+
+[[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/client/petstore/python-experimental/docs/User.md b/samples/client/petstore/python-experimental/docs/User.md
new file mode 100644
index 00000000000..443ac123fdc
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/User.md
@@ -0,0 +1,17 @@
+# User
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**username** | **str** | | [optional]
+**first_name** | **str** | | [optional]
+**last_name** | **str** | | [optional]
+**email** | **str** | | [optional]
+**password** | **str** | | [optional]
+**phone** | **str** | | [optional]
+**user_status** | **int** | User Status | [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/client/petstore/python-experimental/docs/UserApi.md b/samples/client/petstore/python-experimental/docs/UserApi.md
new file mode 100644
index 00000000000..783bb991ce1
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/UserApi.md
@@ -0,0 +1,437 @@
+# petstore_api.UserApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_user**](UserApi.md#create_user) | **POST** /user | Create user
+[**create_users_with_array_input**](UserApi.md#create_users_with_array_input) | **POST** /user/createWithArray | Creates list of users with given input array
+[**create_users_with_list_input**](UserApi.md#create_users_with_list_input) | **POST** /user/createWithList | Creates list of users with given input array
+[**delete_user**](UserApi.md#delete_user) | **DELETE** /user/{username} | Delete user
+[**get_user_by_name**](UserApi.md#get_user_by_name) | **GET** /user/{username} | Get user by user name
+[**login_user**](UserApi.md#login_user) | **GET** /user/login | Logs user into the system
+[**logout_user**](UserApi.md#logout_user) | **GET** /user/logout | Logs out current logged in user session
+[**update_user**](UserApi.md#update_user) | **PUT** /user/{username} | Updated user
+
+
+# **create_user**
+> create_user(body)
+
+Create user
+
+This can only be done by the logged in user.
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.UserApi()
+body = petstore_api.User() # User | Created user object
+
+try:
+ # Create user
+ api_instance.create_user(body)
+except ApiException as e:
+ print("Exception when calling UserApi->create_user: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**User**](User.md)| Created user object |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**0** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_users_with_array_input**
+> create_users_with_array_input(body)
+
+Creates list of users with given input array
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.UserApi()
+body = [petstore_api.User()] # list[User] | List of user object
+
+try:
+ # Creates list of users with given input array
+ api_instance.create_users_with_array_input(body)
+except ApiException as e:
+ print("Exception when calling UserApi->create_users_with_array_input: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**list[User]**](User.md)| List of user object |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**0** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_users_with_list_input**
+> create_users_with_list_input(body)
+
+Creates list of users with given input array
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.UserApi()
+body = [petstore_api.User()] # list[User] | List of user object
+
+try:
+ # Creates list of users with given input array
+ api_instance.create_users_with_list_input(body)
+except ApiException as e:
+ print("Exception when calling UserApi->create_users_with_list_input: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**list[User]**](User.md)| List of user object |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**0** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_user**
+> delete_user(username)
+
+Delete user
+
+This can only be done by the logged in user.
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.UserApi()
+username = 'username_example' # str | The name that needs to be deleted
+
+try:
+ # Delete user
+ api_instance.delete_user(username)
+except ApiException as e:
+ print("Exception when calling UserApi->delete_user: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **str**| The name that needs to be deleted |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**400** | Invalid username supplied | - |
+**404** | User not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_user_by_name**
+> User get_user_by_name(username)
+
+Get user by user name
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.UserApi()
+username = 'username_example' # str | The name that needs to be fetched. Use user1 for testing.
+
+try:
+ # Get user by user name
+ api_response = api_instance.get_user_by_name(username)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling UserApi->get_user_by_name: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **str**| The name that needs to be fetched. Use user1 for testing. |
+
+### Return type
+
+[**User**](User.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | - |
+**400** | Invalid username supplied | - |
+**404** | User not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **login_user**
+> str login_user(username, password)
+
+Logs user into the system
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.UserApi()
+username = 'username_example' # str | The user name for login
+password = 'password_example' # str | The password for login in clear text
+
+try:
+ # Logs user into the system
+ api_response = api_instance.login_user(username, password)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling UserApi->login_user: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **str**| The user name for login |
+ **password** | **str**| The password for login in clear text |
+
+### Return type
+
+**str**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | successful operation | * X-Rate-Limit - calls per hour allowed by the user
* X-Expires-After - date in UTC when token expires
|
+**400** | Invalid username/password supplied | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **logout_user**
+> logout_user()
+
+Logs out current logged in user session
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.UserApi()
+
+try:
+ # Logs out current logged in user session
+ api_instance.logout_user()
+except ApiException as e:
+ print("Exception when calling UserApi->logout_user: %s\n" % e)
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**0** | successful operation | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_user**
+> update_user(username, body)
+
+Updated user
+
+This can only be done by the logged in user.
+
+### Example
+
+```python
+from __future__ import print_function
+import time
+import petstore_api
+from petstore_api.rest import ApiException
+from pprint import pprint
+
+# create an instance of the API class
+api_instance = petstore_api.UserApi()
+username = 'username_example' # str | name that need to be deleted
+body = petstore_api.User() # User | Updated user object
+
+try:
+ # Updated user
+ api_instance.update_user(username, body)
+except ApiException as e:
+ print("Exception when calling UserApi->update_user: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **str**| name that need to be deleted |
+ **body** | [**User**](User.md)| Updated user object |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**400** | Invalid user supplied | - |
+**404** | User not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/client/petstore/python-experimental/docs/XmlItem.md b/samples/client/petstore/python-experimental/docs/XmlItem.md
new file mode 100644
index 00000000000..3dd09833fe5
--- /dev/null
+++ b/samples/client/petstore/python-experimental/docs/XmlItem.md
@@ -0,0 +1,38 @@
+# XmlItem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_string** | **str** | | [optional]
+**attribute_number** | **float** | | [optional]
+**attribute_integer** | **int** | | [optional]
+**attribute_boolean** | **bool** | | [optional]
+**wrapped_array** | **list[int]** | | [optional]
+**name_string** | **str** | | [optional]
+**name_number** | **float** | | [optional]
+**name_integer** | **int** | | [optional]
+**name_boolean** | **bool** | | [optional]
+**name_array** | **list[int]** | | [optional]
+**name_wrapped_array** | **list[int]** | | [optional]
+**prefix_string** | **str** | | [optional]
+**prefix_number** | **float** | | [optional]
+**prefix_integer** | **int** | | [optional]
+**prefix_boolean** | **bool** | | [optional]
+**prefix_array** | **list[int]** | | [optional]
+**prefix_wrapped_array** | **list[int]** | | [optional]
+**namespace_string** | **str** | | [optional]
+**namespace_number** | **float** | | [optional]
+**namespace_integer** | **int** | | [optional]
+**namespace_boolean** | **bool** | | [optional]
+**namespace_array** | **list[int]** | | [optional]
+**namespace_wrapped_array** | **list[int]** | | [optional]
+**prefix_ns_string** | **str** | | [optional]
+**prefix_ns_number** | **float** | | [optional]
+**prefix_ns_integer** | **int** | | [optional]
+**prefix_ns_boolean** | **bool** | | [optional]
+**prefix_ns_array** | **list[int]** | | [optional]
+**prefix_ns_wrapped_array** | **list[int]** | | [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/client/petstore/python-experimental/git_push.sh b/samples/client/petstore/python-experimental/git_push.sh
new file mode 100644
index 00000000000..8442b80bb44
--- /dev/null
+++ b/samples/client/petstore/python-experimental/git_push.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
+#
+# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update"
+
+git_user_id=$1
+git_repo_id=$2
+release_note=$3
+
+if [ "$git_user_id" = "" ]; then
+ git_user_id="GIT_USER_ID"
+ echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
+fi
+
+if [ "$git_repo_id" = "" ]; then
+ git_repo_id="GIT_REPO_ID"
+ echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
+fi
+
+if [ "$release_note" = "" ]; then
+ release_note="Minor update"
+ echo "[INFO] No command line input provided. Set \$release_note to $release_note"
+fi
+
+# Initialize the local directory as a Git repository
+git init
+
+# Adds the files in the local repository and stages them for commit.
+git add .
+
+# Commits the tracked changes and prepares them to be pushed to a remote repository.
+git commit -m "$release_note"
+
+# Sets the new remote
+git_remote=`git remote`
+if [ "$git_remote" = "" ]; then # git remote not defined
+
+ if [ "$GIT_TOKEN" = "" ]; then
+ echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
+ git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git
+ else
+ git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git
+ fi
+
+fi
+
+git pull origin master
+
+# Pushes (Forces) the changes in the local repository up to the remote repository
+echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git"
+git push origin master 2>&1 | grep -v 'To https'
+
diff --git a/samples/client/petstore/python-experimental/petstore_api/__init__.py b/samples/client/petstore/python-experimental/petstore_api/__init__.py
new file mode 100644
index 00000000000..45d51fe90b8
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/__init__.py
@@ -0,0 +1,82 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+ 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
+"""
+
+
+from __future__ import absolute_import
+
+__version__ = "1.0.0"
+
+# import apis into sdk package
+from petstore_api.api.another_fake_api import AnotherFakeApi
+from petstore_api.api.fake_api import FakeApi
+from petstore_api.api.fake_classname_tags_123_api import FakeClassnameTags123Api
+from petstore_api.api.pet_api import PetApi
+from petstore_api.api.store_api import StoreApi
+from petstore_api.api.user_api import UserApi
+
+# import ApiClient
+from petstore_api.api_client import ApiClient
+from petstore_api.configuration import Configuration
+from petstore_api.exceptions import OpenApiException
+from petstore_api.exceptions import ApiTypeError
+from petstore_api.exceptions import ApiValueError
+from petstore_api.exceptions import ApiKeyError
+from petstore_api.exceptions import ApiException
+# import models into sdk package
+from petstore_api.models.additional_properties_any_type import AdditionalPropertiesAnyType
+from petstore_api.models.additional_properties_array import AdditionalPropertiesArray
+from petstore_api.models.additional_properties_boolean import AdditionalPropertiesBoolean
+from petstore_api.models.additional_properties_class import AdditionalPropertiesClass
+from petstore_api.models.additional_properties_integer import AdditionalPropertiesInteger
+from petstore_api.models.additional_properties_number import AdditionalPropertiesNumber
+from petstore_api.models.additional_properties_object import AdditionalPropertiesObject
+from petstore_api.models.additional_properties_string import AdditionalPropertiesString
+from petstore_api.models.animal import Animal
+from petstore_api.models.api_response import ApiResponse
+from petstore_api.models.array_of_array_of_number_only import ArrayOfArrayOfNumberOnly
+from petstore_api.models.array_of_number_only import ArrayOfNumberOnly
+from petstore_api.models.array_test import ArrayTest
+from petstore_api.models.capitalization import Capitalization
+from petstore_api.models.cat import Cat
+from petstore_api.models.cat_all_of import CatAllOf
+from petstore_api.models.category import Category
+from petstore_api.models.class_model import ClassModel
+from petstore_api.models.client import Client
+from petstore_api.models.dog import Dog
+from petstore_api.models.dog_all_of import DogAllOf
+from petstore_api.models.enum_arrays import EnumArrays
+from petstore_api.models.enum_class import EnumClass
+from petstore_api.models.enum_test import EnumTest
+from petstore_api.models.file import File
+from petstore_api.models.file_schema_test_class import FileSchemaTestClass
+from petstore_api.models.format_test import FormatTest
+from petstore_api.models.has_only_read_only import HasOnlyReadOnly
+from petstore_api.models.list import List
+from petstore_api.models.map_test import MapTest
+from petstore_api.models.mixed_properties_and_additional_properties_class import MixedPropertiesAndAdditionalPropertiesClass
+from petstore_api.models.model200_response import Model200Response
+from petstore_api.models.model_return import ModelReturn
+from petstore_api.models.name import Name
+from petstore_api.models.number_only import NumberOnly
+from petstore_api.models.order import Order
+from petstore_api.models.outer_composite import OuterComposite
+from petstore_api.models.outer_enum import OuterEnum
+from petstore_api.models.pet import Pet
+from petstore_api.models.read_only_first import ReadOnlyFirst
+from petstore_api.models.special_model_name import SpecialModelName
+from petstore_api.models.tag import Tag
+from petstore_api.models.type_holder_default import TypeHolderDefault
+from petstore_api.models.type_holder_example import TypeHolderExample
+from petstore_api.models.user import User
+from petstore_api.models.xml_item import XmlItem
+
diff --git a/samples/client/petstore/python-experimental/petstore_api/api/__init__.py b/samples/client/petstore/python-experimental/petstore_api/api/__init__.py
new file mode 100644
index 00000000000..74496adb5a2
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/api/__init__.py
@@ -0,0 +1,11 @@
+from __future__ import absolute_import
+
+# flake8: noqa
+
+# import apis into api package
+from petstore_api.api.another_fake_api import AnotherFakeApi
+from petstore_api.api.fake_api import FakeApi
+from petstore_api.api.fake_classname_tags_123_api import FakeClassnameTags123Api
+from petstore_api.api.pet_api import PetApi
+from petstore_api.api.store_api import StoreApi
+from petstore_api.api.user_api import UserApi
diff --git a/samples/client/petstore/python-experimental/petstore_api/api/another_fake_api.py b/samples/client/petstore/python-experimental/petstore_api/api/another_fake_api.py
new file mode 100644
index 00000000000..a47a8e3ea18
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/api/another_fake_api.py
@@ -0,0 +1,149 @@
+# 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
+"""
+
+
+from __future__ import absolute_import
+
+import re # noqa: F401
+
+# python 2 and python 3 compatibility library
+import six
+
+from petstore_api.api_client import ApiClient
+from petstore_api.exceptions import (
+ ApiTypeError,
+ ApiValueError
+)
+
+
+class AnotherFakeApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def call_123_test_special_tags(self, body, **kwargs): # noqa: E501
+ """To test special tags # noqa: E501
+
+ To test special tags and operation ID starting with number # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.call_123_test_special_tags(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Client body: client model (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: Client
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.call_123_test_special_tags_with_http_info(body, **kwargs) # noqa: E501
+
+ def call_123_test_special_tags_with_http_info(self, body, **kwargs): # noqa: E501
+ """To test special tags # noqa: E501
+
+ To test special tags and operation ID starting with number # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.call_123_test_special_tags_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Client body: client model (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(Client, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method call_123_test_special_tags" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `call_123_test_special_tags`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/json']) # noqa: E501
+
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/another-fake/dummy', 'PATCH',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='Client', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
diff --git a/samples/client/petstore/python-experimental/petstore_api/api/fake_api.py b/samples/client/petstore/python-experimental/petstore_api/api/fake_api.py
new file mode 100644
index 00000000000..1847804c552
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/api/fake_api.py
@@ -0,0 +1,1582 @@
+# 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
+"""
+
+
+from __future__ import absolute_import
+
+import re # noqa: F401
+
+# python 2 and python 3 compatibility library
+import six
+
+from petstore_api.api_client import ApiClient
+from petstore_api.exceptions import (
+ ApiTypeError,
+ ApiValueError
+)
+
+
+class FakeApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def create_xml_item(self, xml_item, **kwargs): # noqa: E501
+ """creates an XmlItem # noqa: E501
+
+ this route creates an XmlItem # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.create_xml_item(xml_item, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param XmlItem xml_item: XmlItem Body (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.create_xml_item_with_http_info(xml_item, **kwargs) # noqa: E501
+
+ def create_xml_item_with_http_info(self, xml_item, **kwargs): # noqa: E501
+ """creates an XmlItem # noqa: E501
+
+ this route creates an XmlItem # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.create_xml_item_with_http_info(xml_item, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param XmlItem xml_item: XmlItem Body (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['xml_item'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method create_xml_item" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'xml_item' is set
+ if ('xml_item' not in local_var_params or
+ local_var_params['xml_item'] is None):
+ raise ApiValueError("Missing the required parameter `xml_item` when calling `create_xml_item`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'xml_item' in local_var_params:
+ body_params = local_var_params['xml_item']
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/xml', 'application/xml; charset=utf-8', 'application/xml; charset=utf-16', 'text/xml', 'text/xml; charset=utf-8', 'text/xml; charset=utf-16']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/create_xml_item', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def fake_outer_boolean_serialize(self, **kwargs): # noqa: E501
+ """fake_outer_boolean_serialize # noqa: E501
+
+ Test serialization of outer boolean types # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.fake_outer_boolean_serialize(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param bool body: Input boolean as post body
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: bool
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.fake_outer_boolean_serialize_with_http_info(**kwargs) # noqa: E501
+
+ def fake_outer_boolean_serialize_with_http_info(self, **kwargs): # noqa: E501
+ """fake_outer_boolean_serialize # noqa: E501
+
+ Test serialization of outer boolean types # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.fake_outer_boolean_serialize_with_http_info(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param bool body: Input boolean as post body
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(bool, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method fake_outer_boolean_serialize" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['*/*']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/outer/boolean', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='bool', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def fake_outer_composite_serialize(self, **kwargs): # noqa: E501
+ """fake_outer_composite_serialize # noqa: E501
+
+ Test serialization of object with outer number type # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.fake_outer_composite_serialize(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param OuterComposite body: Input composite as post body
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: OuterComposite
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.fake_outer_composite_serialize_with_http_info(**kwargs) # noqa: E501
+
+ def fake_outer_composite_serialize_with_http_info(self, **kwargs): # noqa: E501
+ """fake_outer_composite_serialize # noqa: E501
+
+ Test serialization of object with outer number type # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.fake_outer_composite_serialize_with_http_info(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param OuterComposite body: Input composite as post body
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(OuterComposite, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method fake_outer_composite_serialize" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['*/*']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/outer/composite', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='OuterComposite', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def fake_outer_number_serialize(self, **kwargs): # noqa: E501
+ """fake_outer_number_serialize # noqa: E501
+
+ Test serialization of outer number types # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.fake_outer_number_serialize(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param float body: Input number as post body
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: float
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.fake_outer_number_serialize_with_http_info(**kwargs) # noqa: E501
+
+ def fake_outer_number_serialize_with_http_info(self, **kwargs): # noqa: E501
+ """fake_outer_number_serialize # noqa: E501
+
+ Test serialization of outer number types # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.fake_outer_number_serialize_with_http_info(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param float body: Input number as post body
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(float, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method fake_outer_number_serialize" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['*/*']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/outer/number', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='float', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def fake_outer_string_serialize(self, **kwargs): # noqa: E501
+ """fake_outer_string_serialize # noqa: E501
+
+ Test serialization of outer string types # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.fake_outer_string_serialize(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str body: Input string as post body
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: str
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.fake_outer_string_serialize_with_http_info(**kwargs) # noqa: E501
+
+ def fake_outer_string_serialize_with_http_info(self, **kwargs): # noqa: E501
+ """fake_outer_string_serialize # noqa: E501
+
+ Test serialization of outer string types # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.fake_outer_string_serialize_with_http_info(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str body: Input string as post body
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(str, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method fake_outer_string_serialize" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['*/*']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/outer/string', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='str', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def test_body_with_file_schema(self, body, **kwargs): # noqa: E501
+ """test_body_with_file_schema # noqa: E501
+
+ For this test, the body for this request much reference a schema named `File`. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_body_with_file_schema(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param FileSchemaTestClass body: (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_body_with_file_schema_with_http_info(body, **kwargs) # noqa: E501
+
+ def test_body_with_file_schema_with_http_info(self, body, **kwargs): # noqa: E501
+ """test_body_with_file_schema # noqa: E501
+
+ For this test, the body for this request much reference a schema named `File`. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_body_with_file_schema_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param FileSchemaTestClass body: (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_body_with_file_schema" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `test_body_with_file_schema`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/body-with-file-schema', 'PUT',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def test_body_with_query_params(self, query, body, **kwargs): # noqa: E501
+ """test_body_with_query_params # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_body_with_query_params(query, body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str query: (required)
+ :param User body: (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_body_with_query_params_with_http_info(query, body, **kwargs) # noqa: E501
+
+ def test_body_with_query_params_with_http_info(self, query, body, **kwargs): # noqa: E501
+ """test_body_with_query_params # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_body_with_query_params_with_http_info(query, body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str query: (required)
+ :param User body: (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['query', 'body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_body_with_query_params" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'query' is set
+ if ('query' not in local_var_params or
+ local_var_params['query'] is None):
+ raise ApiValueError("Missing the required parameter `query` when calling `test_body_with_query_params`") # noqa: E501
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `test_body_with_query_params`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+ if 'query' in local_var_params:
+ query_params.append(('query', local_var_params['query'])) # noqa: E501
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/body-with-query-params', 'PUT',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def test_client_model(self, body, **kwargs): # noqa: E501
+ """To test \"client\" model # noqa: E501
+
+ To test \"client\" model # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_client_model(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Client body: client model (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: Client
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_client_model_with_http_info(body, **kwargs) # noqa: E501
+
+ def test_client_model_with_http_info(self, body, **kwargs): # noqa: E501
+ """To test \"client\" model # noqa: E501
+
+ To test \"client\" model # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_client_model_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Client body: client model (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(Client, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_client_model" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `test_client_model`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/json']) # noqa: E501
+
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake', 'PATCH',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='Client', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def test_endpoint_parameters(self, number, double, pattern_without_delimiter, byte, **kwargs): # noqa: E501
+ """Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501
+
+ Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_endpoint_parameters(number, double, pattern_without_delimiter, byte, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param float number: None (required)
+ :param float double: None (required)
+ :param str pattern_without_delimiter: None (required)
+ :param str byte: None (required)
+ :param int integer: None
+ :param int int32: None
+ :param int int64: None
+ :param float float: None
+ :param str string: None
+ :param file binary: None
+ :param date date: None
+ :param datetime date_time: None
+ :param str password: None
+ :param str param_callback: None
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, **kwargs) # noqa: E501
+
+ def test_endpoint_parameters_with_http_info(self, number, double, pattern_without_delimiter, byte, **kwargs): # noqa: E501
+ """Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501
+
+ Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_endpoint_parameters_with_http_info(number, double, pattern_without_delimiter, byte, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param float number: None (required)
+ :param float double: None (required)
+ :param str pattern_without_delimiter: None (required)
+ :param str byte: None (required)
+ :param int integer: None
+ :param int int32: None
+ :param int int64: None
+ :param float float: None
+ :param str string: None
+ :param file binary: None
+ :param date date: None
+ :param datetime date_time: None
+ :param str password: None
+ :param str param_callback: None
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['number', 'double', 'pattern_without_delimiter', 'byte', 'integer', 'int32', 'int64', 'float', 'string', 'binary', 'date', 'date_time', 'password', 'param_callback'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_endpoint_parameters" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'number' is set
+ if ('number' not in local_var_params or
+ local_var_params['number'] is None):
+ raise ApiValueError("Missing the required parameter `number` when calling `test_endpoint_parameters`") # noqa: E501
+ # verify the required parameter 'double' is set
+ if ('double' not in local_var_params or
+ local_var_params['double'] is None):
+ raise ApiValueError("Missing the required parameter `double` when calling `test_endpoint_parameters`") # noqa: E501
+ # verify the required parameter 'pattern_without_delimiter' is set
+ if ('pattern_without_delimiter' not in local_var_params or
+ local_var_params['pattern_without_delimiter'] is None):
+ raise ApiValueError("Missing the required parameter `pattern_without_delimiter` when calling `test_endpoint_parameters`") # noqa: E501
+ # verify the required parameter 'byte' is set
+ if ('byte' not in local_var_params or
+ local_var_params['byte'] is None):
+ raise ApiValueError("Missing the required parameter `byte` when calling `test_endpoint_parameters`") # noqa: E501
+
+ if 'number' in local_var_params and local_var_params['number'] > 543.2: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `number` when calling `test_endpoint_parameters`, must be a value less than or equal to `543.2`") # noqa: E501
+ if 'number' in local_var_params and local_var_params['number'] < 32.1: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `number` when calling `test_endpoint_parameters`, must be a value greater than or equal to `32.1`") # noqa: E501
+ if 'double' in local_var_params and local_var_params['double'] > 123.4: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `double` when calling `test_endpoint_parameters`, must be a value less than or equal to `123.4`") # noqa: E501
+ if 'double' in local_var_params and local_var_params['double'] < 67.8: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `double` when calling `test_endpoint_parameters`, must be a value greater than or equal to `67.8`") # noqa: E501
+ if 'pattern_without_delimiter' in local_var_params and not re.search(r'^[A-Z].*', local_var_params['pattern_without_delimiter']): # noqa: E501
+ raise ApiValueError("Invalid value for parameter `pattern_without_delimiter` when calling `test_endpoint_parameters`, must conform to the pattern `/^[A-Z].*/`") # noqa: E501
+ if 'integer' in local_var_params and local_var_params['integer'] > 100: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `integer` when calling `test_endpoint_parameters`, must be a value less than or equal to `100`") # noqa: E501
+ if 'integer' in local_var_params and local_var_params['integer'] < 10: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `integer` when calling `test_endpoint_parameters`, must be a value greater than or equal to `10`") # noqa: E501
+ if 'int32' in local_var_params and local_var_params['int32'] > 200: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `int32` when calling `test_endpoint_parameters`, must be a value less than or equal to `200`") # noqa: E501
+ if 'int32' in local_var_params and local_var_params['int32'] < 20: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `int32` when calling `test_endpoint_parameters`, must be a value greater than or equal to `20`") # noqa: E501
+ if 'float' in local_var_params and local_var_params['float'] > 987.6: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `float` when calling `test_endpoint_parameters`, must be a value less than or equal to `987.6`") # noqa: E501
+ if 'string' in local_var_params and not re.search(r'[a-z]', local_var_params['string'], flags=re.IGNORECASE): # noqa: E501
+ raise ApiValueError("Invalid value for parameter `string` when calling `test_endpoint_parameters`, must conform to the pattern `/[a-z]/i`") # noqa: E501
+ if ('password' in local_var_params and
+ len(local_var_params['password']) > 64):
+ raise ApiValueError("Invalid value for parameter `password` when calling `test_endpoint_parameters`, length must be less than or equal to `64`") # noqa: E501
+ if ('password' in local_var_params and
+ len(local_var_params['password']) < 10):
+ raise ApiValueError("Invalid value for parameter `password` when calling `test_endpoint_parameters`, length must be greater than or equal to `10`") # noqa: E501
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+ if 'integer' in local_var_params:
+ form_params.append(('integer', local_var_params['integer'])) # noqa: E501
+ if 'int32' in local_var_params:
+ form_params.append(('int32', local_var_params['int32'])) # noqa: E501
+ if 'int64' in local_var_params:
+ form_params.append(('int64', local_var_params['int64'])) # noqa: E501
+ if 'number' in local_var_params:
+ form_params.append(('number', local_var_params['number'])) # noqa: E501
+ if 'float' in local_var_params:
+ form_params.append(('float', local_var_params['float'])) # noqa: E501
+ if 'double' in local_var_params:
+ form_params.append(('double', local_var_params['double'])) # noqa: E501
+ if 'string' in local_var_params:
+ form_params.append(('string', local_var_params['string'])) # noqa: E501
+ if 'pattern_without_delimiter' in local_var_params:
+ form_params.append(('pattern_without_delimiter', local_var_params['pattern_without_delimiter'])) # noqa: E501
+ if 'byte' in local_var_params:
+ form_params.append(('byte', local_var_params['byte'])) # noqa: E501
+ if 'binary' in local_var_params:
+ local_var_files['binary'] = local_var_params['binary'] # noqa: E501
+ if 'date' in local_var_params:
+ form_params.append(('date', local_var_params['date'])) # noqa: E501
+ if 'date_time' in local_var_params:
+ form_params.append(('dateTime', local_var_params['date_time'])) # noqa: E501
+ if 'password' in local_var_params:
+ form_params.append(('password', local_var_params['password'])) # noqa: E501
+ if 'param_callback' in local_var_params:
+ form_params.append(('callback', local_var_params['param_callback'])) # noqa: E501
+
+ body_params = None
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/x-www-form-urlencoded']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['http_basic_test'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def test_enum_parameters(self, **kwargs): # noqa: E501
+ """To test enum parameters # noqa: E501
+
+ To test enum parameters # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_enum_parameters(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[str] enum_header_string_array: Header parameter enum test (string array)
+ :param str enum_header_string: Header parameter enum test (string)
+ :param list[str] enum_query_string_array: Query parameter enum test (string array)
+ :param str enum_query_string: Query parameter enum test (string)
+ :param int enum_query_integer: Query parameter enum test (double)
+ :param float enum_query_double: Query parameter enum test (double)
+ :param list[str] enum_form_string_array: Form parameter enum test (string array)
+ :param str enum_form_string: Form parameter enum test (string)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_enum_parameters_with_http_info(**kwargs) # noqa: E501
+
+ def test_enum_parameters_with_http_info(self, **kwargs): # noqa: E501
+ """To test enum parameters # noqa: E501
+
+ To test enum parameters # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_enum_parameters_with_http_info(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[str] enum_header_string_array: Header parameter enum test (string array)
+ :param str enum_header_string: Header parameter enum test (string)
+ :param list[str] enum_query_string_array: Query parameter enum test (string array)
+ :param str enum_query_string: Query parameter enum test (string)
+ :param int enum_query_integer: Query parameter enum test (double)
+ :param float enum_query_double: Query parameter enum test (double)
+ :param list[str] enum_form_string_array: Form parameter enum test (string array)
+ :param str enum_form_string: Form parameter enum test (string)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['enum_header_string_array', 'enum_header_string', 'enum_query_string_array', 'enum_query_string', 'enum_query_integer', 'enum_query_double', 'enum_form_string_array', 'enum_form_string'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_enum_parameters" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+ if 'enum_query_string_array' in local_var_params:
+ query_params.append(('enum_query_string_array', local_var_params['enum_query_string_array'])) # noqa: E501
+ collection_formats['enum_query_string_array'] = 'csv' # noqa: E501
+ if 'enum_query_string' in local_var_params:
+ query_params.append(('enum_query_string', local_var_params['enum_query_string'])) # noqa: E501
+ if 'enum_query_integer' in local_var_params:
+ query_params.append(('enum_query_integer', local_var_params['enum_query_integer'])) # noqa: E501
+ if 'enum_query_double' in local_var_params:
+ query_params.append(('enum_query_double', local_var_params['enum_query_double'])) # noqa: E501
+
+ header_params = {}
+ if 'enum_header_string_array' in local_var_params:
+ header_params['enum_header_string_array'] = local_var_params['enum_header_string_array'] # noqa: E501
+ collection_formats['enum_header_string_array'] = 'csv' # noqa: E501
+ if 'enum_header_string' in local_var_params:
+ header_params['enum_header_string'] = local_var_params['enum_header_string'] # noqa: E501
+
+ form_params = []
+ local_var_files = {}
+ if 'enum_form_string_array' in local_var_params:
+ form_params.append(('enum_form_string_array', local_var_params['enum_form_string_array'])) # noqa: E501
+ collection_formats['enum_form_string_array'] = 'csv' # noqa: E501
+ if 'enum_form_string' in local_var_params:
+ form_params.append(('enum_form_string', local_var_params['enum_form_string'])) # noqa: E501
+
+ body_params = None
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/x-www-form-urlencoded']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def test_group_parameters(self, required_string_group, required_boolean_group, required_int64_group, **kwargs): # noqa: E501
+ """Fake endpoint to test group parameters (optional) # noqa: E501
+
+ Fake endpoint to test group parameters (optional) # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_group_parameters(required_string_group, required_boolean_group, required_int64_group, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int required_string_group: Required String in group parameters (required)
+ :param bool required_boolean_group: Required Boolean in group parameters (required)
+ :param int required_int64_group: Required Integer in group parameters (required)
+ :param int string_group: String in group parameters
+ :param bool boolean_group: Boolean in group parameters
+ :param int int64_group: Integer in group parameters
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_group_parameters_with_http_info(required_string_group, required_boolean_group, required_int64_group, **kwargs) # noqa: E501
+
+ def test_group_parameters_with_http_info(self, required_string_group, required_boolean_group, required_int64_group, **kwargs): # noqa: E501
+ """Fake endpoint to test group parameters (optional) # noqa: E501
+
+ Fake endpoint to test group parameters (optional) # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_group_parameters_with_http_info(required_string_group, required_boolean_group, required_int64_group, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int required_string_group: Required String in group parameters (required)
+ :param bool required_boolean_group: Required Boolean in group parameters (required)
+ :param int required_int64_group: Required Integer in group parameters (required)
+ :param int string_group: String in group parameters
+ :param bool boolean_group: Boolean in group parameters
+ :param int int64_group: Integer in group parameters
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['required_string_group', 'required_boolean_group', 'required_int64_group', 'string_group', 'boolean_group', 'int64_group'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_group_parameters" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'required_string_group' is set
+ if ('required_string_group' not in local_var_params or
+ local_var_params['required_string_group'] is None):
+ raise ApiValueError("Missing the required parameter `required_string_group` when calling `test_group_parameters`") # noqa: E501
+ # verify the required parameter 'required_boolean_group' is set
+ if ('required_boolean_group' not in local_var_params or
+ local_var_params['required_boolean_group'] is None):
+ raise ApiValueError("Missing the required parameter `required_boolean_group` when calling `test_group_parameters`") # noqa: E501
+ # verify the required parameter 'required_int64_group' is set
+ if ('required_int64_group' not in local_var_params or
+ local_var_params['required_int64_group'] is None):
+ raise ApiValueError("Missing the required parameter `required_int64_group` when calling `test_group_parameters`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+ if 'required_string_group' in local_var_params:
+ query_params.append(('required_string_group', local_var_params['required_string_group'])) # noqa: E501
+ if 'required_int64_group' in local_var_params:
+ query_params.append(('required_int64_group', local_var_params['required_int64_group'])) # noqa: E501
+ if 'string_group' in local_var_params:
+ query_params.append(('string_group', local_var_params['string_group'])) # noqa: E501
+ if 'int64_group' in local_var_params:
+ query_params.append(('int64_group', local_var_params['int64_group'])) # noqa: E501
+
+ header_params = {}
+ if 'required_boolean_group' in local_var_params:
+ header_params['required_boolean_group'] = local_var_params['required_boolean_group'] # noqa: E501
+ if 'boolean_group' in local_var_params:
+ header_params['boolean_group'] = local_var_params['boolean_group'] # noqa: E501
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake', 'DELETE',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def test_inline_additional_properties(self, param, **kwargs): # noqa: E501
+ """test inline additionalProperties # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_inline_additional_properties(param, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param dict(str, str) param: request body (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_inline_additional_properties_with_http_info(param, **kwargs) # noqa: E501
+
+ def test_inline_additional_properties_with_http_info(self, param, **kwargs): # noqa: E501
+ """test inline additionalProperties # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_inline_additional_properties_with_http_info(param, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param dict(str, str) param: request body (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['param'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_inline_additional_properties" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'param' is set
+ if ('param' not in local_var_params or
+ local_var_params['param'] is None):
+ raise ApiValueError("Missing the required parameter `param` when calling `test_inline_additional_properties`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'param' in local_var_params:
+ body_params = local_var_params['param']
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/inline-additionalProperties', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def test_json_form_data(self, param, param2, **kwargs): # noqa: E501
+ """test json serialization of form data # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_json_form_data(param, param2, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str param: field1 (required)
+ :param str param2: field2 (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_json_form_data_with_http_info(param, param2, **kwargs) # noqa: E501
+
+ def test_json_form_data_with_http_info(self, param, param2, **kwargs): # noqa: E501
+ """test json serialization of form data # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_json_form_data_with_http_info(param, param2, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str param: field1 (required)
+ :param str param2: field2 (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['param', 'param2'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_json_form_data" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'param' is set
+ if ('param' not in local_var_params or
+ local_var_params['param'] is None):
+ raise ApiValueError("Missing the required parameter `param` when calling `test_json_form_data`") # noqa: E501
+ # verify the required parameter 'param2' is set
+ if ('param2' not in local_var_params or
+ local_var_params['param2'] is None):
+ raise ApiValueError("Missing the required parameter `param2` when calling `test_json_form_data`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+ if 'param' in local_var_params:
+ form_params.append(('param', local_var_params['param'])) # noqa: E501
+ if 'param2' in local_var_params:
+ form_params.append(('param2', local_var_params['param2'])) # noqa: E501
+
+ body_params = None
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/x-www-form-urlencoded']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/jsonFormData', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
diff --git a/samples/client/petstore/python-experimental/petstore_api/api/fake_classname_tags_123_api.py b/samples/client/petstore/python-experimental/petstore_api/api/fake_classname_tags_123_api.py
new file mode 100644
index 00000000000..3e778e92268
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/api/fake_classname_tags_123_api.py
@@ -0,0 +1,149 @@
+# 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
+"""
+
+
+from __future__ import absolute_import
+
+import re # noqa: F401
+
+# python 2 and python 3 compatibility library
+import six
+
+from petstore_api.api_client import ApiClient
+from petstore_api.exceptions import (
+ ApiTypeError,
+ ApiValueError
+)
+
+
+class FakeClassnameTags123Api(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def test_classname(self, body, **kwargs): # noqa: E501
+ """To test class name in snake case # noqa: E501
+
+ To test class name in snake case # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_classname(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Client body: client model (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: Client
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.test_classname_with_http_info(body, **kwargs) # noqa: E501
+
+ def test_classname_with_http_info(self, body, **kwargs): # noqa: E501
+ """To test class name in snake case # noqa: E501
+
+ To test class name in snake case # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.test_classname_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Client body: client model (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(Client, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method test_classname" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `test_classname`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/json']) # noqa: E501
+
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['api_key_query'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake_classname_test', 'PATCH',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='Client', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
diff --git a/samples/client/petstore/python-experimental/petstore_api/api/pet_api.py b/samples/client/petstore/python-experimental/petstore_api/api/pet_api.py
new file mode 100644
index 00000000000..1deb664c43e
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/api/pet_api.py
@@ -0,0 +1,1035 @@
+# 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
+"""
+
+
+from __future__ import absolute_import
+
+import re # noqa: F401
+
+# python 2 and python 3 compatibility library
+import six
+
+from petstore_api.api_client import ApiClient
+from petstore_api.exceptions import (
+ ApiTypeError,
+ ApiValueError
+)
+
+
+class PetApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def add_pet(self, body, **kwargs): # noqa: E501
+ """Add a new pet to the store # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.add_pet(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Pet body: Pet object that needs to be added to the store (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.add_pet_with_http_info(body, **kwargs) # noqa: E501
+
+ def add_pet_with_http_info(self, body, **kwargs): # noqa: E501
+ """Add a new pet to the store # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.add_pet_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Pet body: Pet object that needs to be added to the store (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method add_pet" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `add_pet`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/json', 'application/xml']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['petstore_auth'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/pet', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def delete_pet(self, pet_id, **kwargs): # noqa: E501
+ """Deletes a pet # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.delete_pet(pet_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: Pet id to delete (required)
+ :param str api_key:
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.delete_pet_with_http_info(pet_id, **kwargs) # noqa: E501
+
+ def delete_pet_with_http_info(self, pet_id, **kwargs): # noqa: E501
+ """Deletes a pet # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.delete_pet_with_http_info(pet_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: Pet id to delete (required)
+ :param str api_key:
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['pet_id', 'api_key'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method delete_pet" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'pet_id' is set
+ if ('pet_id' not in local_var_params or
+ local_var_params['pet_id'] is None):
+ raise ApiValueError("Missing the required parameter `pet_id` when calling `delete_pet`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'pet_id' in local_var_params:
+ path_params['petId'] = local_var_params['pet_id'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+ if 'api_key' in local_var_params:
+ header_params['api_key'] = local_var_params['api_key'] # noqa: E501
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # Authentication setting
+ auth_settings = ['petstore_auth'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/pet/{petId}', 'DELETE',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def find_pets_by_status(self, status, **kwargs): # noqa: E501
+ """Finds Pets by status # noqa: E501
+
+ Multiple status values can be provided with comma separated strings # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.find_pets_by_status(status, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[str] status: Status values that need to be considered for filter (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: list[Pet]
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.find_pets_by_status_with_http_info(status, **kwargs) # noqa: E501
+
+ def find_pets_by_status_with_http_info(self, status, **kwargs): # noqa: E501
+ """Finds Pets by status # noqa: E501
+
+ Multiple status values can be provided with comma separated strings # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.find_pets_by_status_with_http_info(status, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[str] status: Status values that need to be considered for filter (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(list[Pet], status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['status'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method find_pets_by_status" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'status' is set
+ if ('status' not in local_var_params or
+ local_var_params['status'] is None):
+ raise ApiValueError("Missing the required parameter `status` when calling `find_pets_by_status`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+ if 'status' in local_var_params:
+ query_params.append(('status', local_var_params['status'])) # noqa: E501
+ collection_formats['status'] = 'csv' # noqa: E501
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/xml', 'application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['petstore_auth'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/pet/findByStatus', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='list[Pet]', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def find_pets_by_tags(self, tags, **kwargs): # noqa: E501
+ """Finds Pets by tags # noqa: E501
+
+ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.find_pets_by_tags(tags, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[str] tags: Tags to filter by (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: list[Pet]
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.find_pets_by_tags_with_http_info(tags, **kwargs) # noqa: E501
+
+ def find_pets_by_tags_with_http_info(self, tags, **kwargs): # noqa: E501
+ """Finds Pets by tags # noqa: E501
+
+ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.find_pets_by_tags_with_http_info(tags, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[str] tags: Tags to filter by (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(list[Pet], status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['tags'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method find_pets_by_tags" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'tags' is set
+ if ('tags' not in local_var_params or
+ local_var_params['tags'] is None):
+ raise ApiValueError("Missing the required parameter `tags` when calling `find_pets_by_tags`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+ if 'tags' in local_var_params:
+ query_params.append(('tags', local_var_params['tags'])) # noqa: E501
+ collection_formats['tags'] = 'csv' # noqa: E501
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/xml', 'application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['petstore_auth'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/pet/findByTags', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='list[Pet]', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def get_pet_by_id(self, pet_id, **kwargs): # noqa: E501
+ """Find pet by ID # noqa: E501
+
+ Returns a single pet # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.get_pet_by_id(pet_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: ID of pet to return (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: Pet
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.get_pet_by_id_with_http_info(pet_id, **kwargs) # noqa: E501
+
+ def get_pet_by_id_with_http_info(self, pet_id, **kwargs): # noqa: E501
+ """Find pet by ID # noqa: E501
+
+ Returns a single pet # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.get_pet_by_id_with_http_info(pet_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: ID of pet to return (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(Pet, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['pet_id'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method get_pet_by_id" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'pet_id' is set
+ if ('pet_id' not in local_var_params or
+ local_var_params['pet_id'] is None):
+ raise ApiValueError("Missing the required parameter `pet_id` when calling `get_pet_by_id`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'pet_id' in local_var_params:
+ path_params['petId'] = local_var_params['pet_id'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/xml', 'application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['api_key'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/pet/{petId}', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='Pet', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def update_pet(self, body, **kwargs): # noqa: E501
+ """Update an existing pet # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.update_pet(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Pet body: Pet object that needs to be added to the store (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.update_pet_with_http_info(body, **kwargs) # noqa: E501
+
+ def update_pet_with_http_info(self, body, **kwargs): # noqa: E501
+ """Update an existing pet # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.update_pet_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Pet body: Pet object that needs to be added to the store (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method update_pet" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `update_pet`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/json', 'application/xml']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['petstore_auth'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/pet', 'PUT',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def update_pet_with_form(self, pet_id, **kwargs): # noqa: E501
+ """Updates a pet in the store with form data # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.update_pet_with_form(pet_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: ID of pet that needs to be updated (required)
+ :param str name: Updated name of the pet
+ :param str status: Updated status of the pet
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.update_pet_with_form_with_http_info(pet_id, **kwargs) # noqa: E501
+
+ def update_pet_with_form_with_http_info(self, pet_id, **kwargs): # noqa: E501
+ """Updates a pet in the store with form data # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.update_pet_with_form_with_http_info(pet_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: ID of pet that needs to be updated (required)
+ :param str name: Updated name of the pet
+ :param str status: Updated status of the pet
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['pet_id', 'name', 'status'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method update_pet_with_form" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'pet_id' is set
+ if ('pet_id' not in local_var_params or
+ local_var_params['pet_id'] is None):
+ raise ApiValueError("Missing the required parameter `pet_id` when calling `update_pet_with_form`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'pet_id' in local_var_params:
+ path_params['petId'] = local_var_params['pet_id'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+ if 'name' in local_var_params:
+ form_params.append(('name', local_var_params['name'])) # noqa: E501
+ if 'status' in local_var_params:
+ form_params.append(('status', local_var_params['status'])) # noqa: E501
+
+ body_params = None
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['application/x-www-form-urlencoded']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['petstore_auth'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/pet/{petId}', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def upload_file(self, pet_id, **kwargs): # noqa: E501
+ """uploads an image # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.upload_file(pet_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: ID of pet to update (required)
+ :param str additional_metadata: Additional data to pass to server
+ :param file file: file to upload
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: ApiResponse
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.upload_file_with_http_info(pet_id, **kwargs) # noqa: E501
+
+ def upload_file_with_http_info(self, pet_id, **kwargs): # noqa: E501
+ """uploads an image # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.upload_file_with_http_info(pet_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: ID of pet to update (required)
+ :param str additional_metadata: Additional data to pass to server
+ :param file file: file to upload
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(ApiResponse, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['pet_id', 'additional_metadata', 'file'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method upload_file" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'pet_id' is set
+ if ('pet_id' not in local_var_params or
+ local_var_params['pet_id'] is None):
+ raise ApiValueError("Missing the required parameter `pet_id` when calling `upload_file`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'pet_id' in local_var_params:
+ path_params['petId'] = local_var_params['pet_id'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+ if 'additional_metadata' in local_var_params:
+ form_params.append(('additionalMetadata', local_var_params['additional_metadata'])) # noqa: E501
+ if 'file' in local_var_params:
+ local_var_files['file'] = local_var_params['file'] # noqa: E501
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/json']) # noqa: E501
+
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['multipart/form-data']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['petstore_auth'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/pet/{petId}/uploadImage', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='ApiResponse', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def upload_file_with_required_file(self, pet_id, required_file, **kwargs): # noqa: E501
+ """uploads an image (required) # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.upload_file_with_required_file(pet_id, required_file, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: ID of pet to update (required)
+ :param file required_file: file to upload (required)
+ :param str additional_metadata: Additional data to pass to server
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: ApiResponse
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.upload_file_with_required_file_with_http_info(pet_id, required_file, **kwargs) # noqa: E501
+
+ def upload_file_with_required_file_with_http_info(self, pet_id, required_file, **kwargs): # noqa: E501
+ """uploads an image (required) # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.upload_file_with_required_file_with_http_info(pet_id, required_file, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int pet_id: ID of pet to update (required)
+ :param file required_file: file to upload (required)
+ :param str additional_metadata: Additional data to pass to server
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(ApiResponse, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['pet_id', 'required_file', 'additional_metadata'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method upload_file_with_required_file" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'pet_id' is set
+ if ('pet_id' not in local_var_params or
+ local_var_params['pet_id'] is None):
+ raise ApiValueError("Missing the required parameter `pet_id` when calling `upload_file_with_required_file`") # noqa: E501
+ # verify the required parameter 'required_file' is set
+ if ('required_file' not in local_var_params or
+ local_var_params['required_file'] is None):
+ raise ApiValueError("Missing the required parameter `required_file` when calling `upload_file_with_required_file`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'pet_id' in local_var_params:
+ path_params['petId'] = local_var_params['pet_id'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+ if 'additional_metadata' in local_var_params:
+ form_params.append(('additionalMetadata', local_var_params['additional_metadata'])) # noqa: E501
+ if 'required_file' in local_var_params:
+ local_var_files['requiredFile'] = local_var_params['required_file'] # noqa: E501
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/json']) # noqa: E501
+
+ # HTTP header `Content-Type`
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
+ ['multipart/form-data']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['petstore_auth'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/fake/{petId}/uploadImageWithRequiredFile', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='ApiResponse', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
diff --git a/samples/client/petstore/python-experimental/petstore_api/api/store_api.py b/samples/client/petstore/python-experimental/petstore_api/api/store_api.py
new file mode 100644
index 00000000000..c3aa1c4a3d5
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/api/store_api.py
@@ -0,0 +1,459 @@
+# 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
+"""
+
+
+from __future__ import absolute_import
+
+import re # noqa: F401
+
+# python 2 and python 3 compatibility library
+import six
+
+from petstore_api.api_client import ApiClient
+from petstore_api.exceptions import (
+ ApiTypeError,
+ ApiValueError
+)
+
+
+class StoreApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def delete_order(self, order_id, **kwargs): # noqa: E501
+ """Delete purchase order by ID # noqa: E501
+
+ For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.delete_order(order_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str order_id: ID of the order that needs to be deleted (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.delete_order_with_http_info(order_id, **kwargs) # noqa: E501
+
+ def delete_order_with_http_info(self, order_id, **kwargs): # noqa: E501
+ """Delete purchase order by ID # noqa: E501
+
+ For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.delete_order_with_http_info(order_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str order_id: ID of the order that needs to be deleted (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['order_id'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method delete_order" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'order_id' is set
+ if ('order_id' not in local_var_params or
+ local_var_params['order_id'] is None):
+ raise ApiValueError("Missing the required parameter `order_id` when calling `delete_order`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'order_id' in local_var_params:
+ path_params['order_id'] = local_var_params['order_id'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/store/order/{order_id}', 'DELETE',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def get_inventory(self, **kwargs): # noqa: E501
+ """Returns pet inventories by status # noqa: E501
+
+ Returns a map of status codes to quantities # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.get_inventory(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: dict(str, int)
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.get_inventory_with_http_info(**kwargs) # noqa: E501
+
+ def get_inventory_with_http_info(self, **kwargs): # noqa: E501
+ """Returns pet inventories by status # noqa: E501
+
+ Returns a map of status codes to quantities # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.get_inventory_with_http_info(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(dict(str, int), status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = [] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method get_inventory" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = ['api_key'] # noqa: E501
+
+ return self.api_client.call_api(
+ '/store/inventory', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='dict(str, int)', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def get_order_by_id(self, order_id, **kwargs): # noqa: E501
+ """Find purchase order by ID # noqa: E501
+
+ For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.get_order_by_id(order_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int order_id: ID of pet that needs to be fetched (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: Order
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.get_order_by_id_with_http_info(order_id, **kwargs) # noqa: E501
+
+ def get_order_by_id_with_http_info(self, order_id, **kwargs): # noqa: E501
+ """Find purchase order by ID # noqa: E501
+
+ For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.get_order_by_id_with_http_info(order_id, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param int order_id: ID of pet that needs to be fetched (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(Order, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['order_id'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method get_order_by_id" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'order_id' is set
+ if ('order_id' not in local_var_params or
+ local_var_params['order_id'] is None):
+ raise ApiValueError("Missing the required parameter `order_id` when calling `get_order_by_id`") # noqa: E501
+
+ if 'order_id' in local_var_params and local_var_params['order_id'] > 5: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `order_id` when calling `get_order_by_id`, must be a value less than or equal to `5`") # noqa: E501
+ if 'order_id' in local_var_params and local_var_params['order_id'] < 1: # noqa: E501
+ raise ApiValueError("Invalid value for parameter `order_id` when calling `get_order_by_id`, must be a value greater than or equal to `1`") # noqa: E501
+ collection_formats = {}
+
+ path_params = {}
+ if 'order_id' in local_var_params:
+ path_params['order_id'] = local_var_params['order_id'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/xml', 'application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/store/order/{order_id}', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='Order', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def place_order(self, body, **kwargs): # noqa: E501
+ """Place an order for a pet # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.place_order(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Order body: order placed for purchasing the pet (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: Order
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.place_order_with_http_info(body, **kwargs) # noqa: E501
+
+ def place_order_with_http_info(self, body, **kwargs): # noqa: E501
+ """Place an order for a pet # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.place_order_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param Order body: order placed for purchasing the pet (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(Order, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method place_order" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `place_order`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/xml', 'application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/store/order', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='Order', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
diff --git a/samples/client/petstore/python-experimental/petstore_api/api/user_api.py b/samples/client/petstore/python-experimental/petstore_api/api/user_api.py
new file mode 100644
index 00000000000..d3674f5ba5c
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/api/user_api.py
@@ -0,0 +1,875 @@
+# 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
+"""
+
+
+from __future__ import absolute_import
+
+import re # noqa: F401
+
+# python 2 and python 3 compatibility library
+import six
+
+from petstore_api.api_client import ApiClient
+from petstore_api.exceptions import (
+ ApiTypeError,
+ ApiValueError
+)
+
+
+class UserApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ def create_user(self, body, **kwargs): # noqa: E501
+ """Create user # noqa: E501
+
+ This can only be done by the logged in user. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.create_user(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param User body: Created user object (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.create_user_with_http_info(body, **kwargs) # noqa: E501
+
+ def create_user_with_http_info(self, body, **kwargs): # noqa: E501
+ """Create user # noqa: E501
+
+ This can only be done by the logged in user. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.create_user_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param User body: Created user object (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method create_user" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `create_user`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/user', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def create_users_with_array_input(self, body, **kwargs): # noqa: E501
+ """Creates list of users with given input array # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.create_users_with_array_input(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[User] body: List of user object (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.create_users_with_array_input_with_http_info(body, **kwargs) # noqa: E501
+
+ def create_users_with_array_input_with_http_info(self, body, **kwargs): # noqa: E501
+ """Creates list of users with given input array # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.create_users_with_array_input_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[User] body: List of user object (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method create_users_with_array_input" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `create_users_with_array_input`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/user/createWithArray', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def create_users_with_list_input(self, body, **kwargs): # noqa: E501
+ """Creates list of users with given input array # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.create_users_with_list_input(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[User] body: List of user object (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.create_users_with_list_input_with_http_info(body, **kwargs) # noqa: E501
+
+ def create_users_with_list_input_with_http_info(self, body, **kwargs): # noqa: E501
+ """Creates list of users with given input array # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.create_users_with_list_input_with_http_info(body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param list[User] body: List of user object (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method create_users_with_list_input" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `create_users_with_list_input`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/user/createWithList', 'POST',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def delete_user(self, username, **kwargs): # noqa: E501
+ """Delete user # noqa: E501
+
+ This can only be done by the logged in user. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.delete_user(username, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str username: The name that needs to be deleted (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.delete_user_with_http_info(username, **kwargs) # noqa: E501
+
+ def delete_user_with_http_info(self, username, **kwargs): # noqa: E501
+ """Delete user # noqa: E501
+
+ This can only be done by the logged in user. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.delete_user_with_http_info(username, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str username: The name that needs to be deleted (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['username'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method delete_user" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'username' is set
+ if ('username' not in local_var_params or
+ local_var_params['username'] is None):
+ raise ApiValueError("Missing the required parameter `username` when calling `delete_user`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'username' in local_var_params:
+ path_params['username'] = local_var_params['username'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/user/{username}', 'DELETE',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def get_user_by_name(self, username, **kwargs): # noqa: E501
+ """Get user by user name # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.get_user_by_name(username, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str username: The name that needs to be fetched. Use user1 for testing. (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: User
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.get_user_by_name_with_http_info(username, **kwargs) # noqa: E501
+
+ def get_user_by_name_with_http_info(self, username, **kwargs): # noqa: E501
+ """Get user by user name # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.get_user_by_name_with_http_info(username, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str username: The name that needs to be fetched. Use user1 for testing. (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(User, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['username'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method get_user_by_name" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'username' is set
+ if ('username' not in local_var_params or
+ local_var_params['username'] is None):
+ raise ApiValueError("Missing the required parameter `username` when calling `get_user_by_name`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'username' in local_var_params:
+ path_params['username'] = local_var_params['username'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/xml', 'application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/user/{username}', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='User', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def login_user(self, username, password, **kwargs): # noqa: E501
+ """Logs user into the system # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.login_user(username, password, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str username: The user name for login (required)
+ :param str password: The password for login in clear text (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: str
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.login_user_with_http_info(username, password, **kwargs) # noqa: E501
+
+ def login_user_with_http_info(self, username, password, **kwargs): # noqa: E501
+ """Logs user into the system # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.login_user_with_http_info(username, password, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str username: The user name for login (required)
+ :param str password: The password for login in clear text (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: tuple(str, status_code(int), headers(HTTPHeaderDict))
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['username', 'password'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method login_user" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'username' is set
+ if ('username' not in local_var_params or
+ local_var_params['username'] is None):
+ raise ApiValueError("Missing the required parameter `username` when calling `login_user`") # noqa: E501
+ # verify the required parameter 'password' is set
+ if ('password' not in local_var_params or
+ local_var_params['password'] is None):
+ raise ApiValueError("Missing the required parameter `password` when calling `login_user`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+ if 'username' in local_var_params:
+ query_params.append(('username', local_var_params['username'])) # noqa: E501
+ if 'password' in local_var_params:
+ query_params.append(('password', local_var_params['password'])) # noqa: E501
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params['Accept'] = self.api_client.select_header_accept(
+ ['application/xml', 'application/json']) # noqa: E501
+
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/user/login', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type='str', # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def logout_user(self, **kwargs): # noqa: E501
+ """Logs out current logged in user session # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.logout_user(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.logout_user_with_http_info(**kwargs) # noqa: E501
+
+ def logout_user_with_http_info(self, **kwargs): # noqa: E501
+ """Logs out current logged in user session # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.logout_user_with_http_info(async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = [] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method logout_user" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+
+ collection_formats = {}
+
+ path_params = {}
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/user/logout', 'GET',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
+
+ def update_user(self, username, body, **kwargs): # noqa: E501
+ """Updated user # noqa: E501
+
+ This can only be done by the logged in user. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.update_user(username, body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str username: name that need to be deleted (required)
+ :param User body: Updated user object (required)
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+ kwargs['_return_http_data_only'] = True
+ return self.update_user_with_http_info(username, body, **kwargs) # noqa: E501
+
+ def update_user_with_http_info(self, username, body, **kwargs): # noqa: E501
+ """Updated user # noqa: E501
+
+ This can only be done by the logged in user. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+ >>> thread = api.update_user_with_http_info(username, body, async_req=True)
+ >>> result = thread.get()
+
+ :param async_req bool: execute request asynchronously
+ :param str username: name that need to be deleted (required)
+ :param User body: Updated user object (required)
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return: None
+ If the method is called asynchronously,
+ returns the request thread.
+ """
+
+ local_var_params = locals()
+
+ all_params = ['username', 'body'] # noqa: E501
+ all_params.append('async_req')
+ all_params.append('_return_http_data_only')
+ all_params.append('_preload_content')
+ all_params.append('_request_timeout')
+
+ for key, val in six.iteritems(local_var_params['kwargs']):
+ if key not in all_params:
+ raise ApiTypeError(
+ "Got an unexpected keyword argument '%s'"
+ " to method update_user" % key
+ )
+ local_var_params[key] = val
+ del local_var_params['kwargs']
+ # verify the required parameter 'username' is set
+ if ('username' not in local_var_params or
+ local_var_params['username'] is None):
+ raise ApiValueError("Missing the required parameter `username` when calling `update_user`") # noqa: E501
+ # verify the required parameter 'body' is set
+ if ('body' not in local_var_params or
+ local_var_params['body'] is None):
+ raise ApiValueError("Missing the required parameter `body` when calling `update_user`") # noqa: E501
+
+ collection_formats = {}
+
+ path_params = {}
+ if 'username' in local_var_params:
+ path_params['username'] = local_var_params['username'] # noqa: E501
+
+ query_params = []
+
+ header_params = {}
+
+ form_params = []
+ local_var_files = {}
+
+ body_params = None
+ if 'body' in local_var_params:
+ body_params = local_var_params['body']
+ # Authentication setting
+ auth_settings = [] # noqa: E501
+
+ return self.api_client.call_api(
+ '/user/{username}', 'PUT',
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type=None, # noqa: E501
+ auth_settings=auth_settings,
+ async_req=local_var_params.get('async_req'),
+ _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
+ _preload_content=local_var_params.get('_preload_content', True),
+ _request_timeout=local_var_params.get('_request_timeout'),
+ collection_formats=collection_formats)
diff --git a/samples/client/petstore/python-experimental/petstore_api/api_client.py b/samples/client/petstore/python-experimental/petstore_api/api_client.py
new file mode 100644
index 00000000000..df3a9815aa0
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/api_client.py
@@ -0,0 +1,640 @@
+# 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
+"""
+
+from __future__ import absolute_import
+
+import datetime
+import json
+import mimetypes
+from multiprocessing.pool import ThreadPool
+import os
+import re
+import tempfile
+
+# python 2 and python 3 compatibility library
+import six
+from six.moves.urllib.parse import quote
+
+from petstore_api.configuration import Configuration
+import petstore_api.models
+from petstore_api import rest
+from petstore_api.exceptions import ApiValueError
+
+
+class ApiClient(object):
+ """Generic API client for OpenAPI client library builds.
+
+ OpenAPI generic API client. This client handles the client-
+ server communication, and is invariant across implementations. Specifics of
+ the methods and models for each application are generated from the OpenAPI
+ templates.
+
+ NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+ Do not edit the class manually.
+
+ :param configuration: .Configuration object for this client
+ :param header_name: a header to pass when making calls to the API.
+ :param header_value: a header value to pass when making calls to
+ the API.
+ :param cookie: a cookie to include in the header when making calls
+ to the API
+ :param pool_threads: The number of threads to use for async requests
+ to the API. More threads means more concurrent API requests.
+ """
+
+ PRIMITIVE_TYPES = (float, bool, bytes, six.text_type) + six.integer_types
+ NATIVE_TYPES_MAPPING = {
+ 'int': int,
+ 'long': int if six.PY3 else long, # noqa: F821
+ 'float': float,
+ 'str': str,
+ 'bool': bool,
+ 'date': datetime.date,
+ 'datetime': datetime.datetime,
+ 'object': object,
+ }
+ _pool = None
+
+ def __init__(self, configuration=None, header_name=None, header_value=None,
+ cookie=None, pool_threads=1):
+ if configuration is None:
+ configuration = Configuration()
+ self.configuration = configuration
+ self.pool_threads = pool_threads
+
+ self.rest_client = rest.RESTClientObject(configuration)
+ self.default_headers = {}
+ if header_name is not None:
+ self.default_headers[header_name] = header_value
+ self.cookie = cookie
+ # Set default User-Agent.
+ self.user_agent = 'OpenAPI-Generator/1.0.0/python'
+
+ def __del__(self):
+ if self._pool:
+ self._pool.close()
+ self._pool.join()
+ self._pool = None
+
+ @property
+ def pool(self):
+ """Create thread pool on first request
+ avoids instantiating unused threadpool for blocking clients.
+ """
+ if self._pool is None:
+ self._pool = ThreadPool(self.pool_threads)
+ return self._pool
+
+ @property
+ def user_agent(self):
+ """User agent for this API client"""
+ return self.default_headers['User-Agent']
+
+ @user_agent.setter
+ def user_agent(self, value):
+ self.default_headers['User-Agent'] = value
+
+ def set_default_header(self, header_name, header_value):
+ self.default_headers[header_name] = header_value
+
+ def __call_api(
+ self, resource_path, method, path_params=None,
+ query_params=None, header_params=None, body=None, post_params=None,
+ files=None, response_type=None, auth_settings=None,
+ _return_http_data_only=None, collection_formats=None,
+ _preload_content=True, _request_timeout=None, _host=None):
+
+ config = self.configuration
+
+ # header parameters
+ header_params = header_params or {}
+ header_params.update(self.default_headers)
+ if self.cookie:
+ header_params['Cookie'] = self.cookie
+ if header_params:
+ header_params = self.sanitize_for_serialization(header_params)
+ header_params = dict(self.parameters_to_tuples(header_params,
+ collection_formats))
+
+ # path parameters
+ if path_params:
+ path_params = self.sanitize_for_serialization(path_params)
+ path_params = self.parameters_to_tuples(path_params,
+ collection_formats)
+ for k, v in path_params:
+ # specified safe chars, encode everything
+ resource_path = resource_path.replace(
+ '{%s}' % k,
+ quote(str(v), safe=config.safe_chars_for_path_param)
+ )
+
+ # query parameters
+ if query_params:
+ query_params = self.sanitize_for_serialization(query_params)
+ query_params = self.parameters_to_tuples(query_params,
+ collection_formats)
+
+ # post parameters
+ if post_params or files:
+ post_params = post_params if post_params else []
+ post_params = self.sanitize_for_serialization(post_params)
+ post_params = self.parameters_to_tuples(post_params,
+ collection_formats)
+ post_params.extend(self.files_parameters(files))
+
+ # auth setting
+ self.update_params_for_auth(header_params, query_params, auth_settings)
+
+ # body
+ if body:
+ body = self.sanitize_for_serialization(body)
+
+ # request url
+ if _host is None:
+ url = self.configuration.host + resource_path
+ else:
+ # use server/host defined in path or operation instead
+ url = _host + resource_path
+
+ # perform request and return response
+ response_data = self.request(
+ method, url, query_params=query_params, headers=header_params,
+ post_params=post_params, body=body,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout)
+
+ self.last_response = response_data
+
+ return_data = response_data
+ if _preload_content:
+ # deserialize response data
+ if response_type:
+ return_data = self.deserialize(response_data, response_type)
+ else:
+ return_data = None
+
+ if _return_http_data_only:
+ return (return_data)
+ else:
+ return (return_data, response_data.status,
+ response_data.getheaders())
+
+ def sanitize_for_serialization(self, obj):
+ """Builds a JSON POST object.
+
+ If obj is None, return None.
+ If obj is str, int, long, float, bool, return directly.
+ If obj is datetime.datetime, datetime.date
+ convert to string in iso8601 format.
+ If obj is list, sanitize each element in the list.
+ If obj is dict, return the dict.
+ If obj is OpenAPI model, return the properties dict.
+
+ :param obj: The data to serialize.
+ :return: The serialized form of data.
+ """
+ if obj is None:
+ return None
+ elif isinstance(obj, self.PRIMITIVE_TYPES):
+ return obj
+ elif isinstance(obj, list):
+ return [self.sanitize_for_serialization(sub_obj)
+ for sub_obj in obj]
+ elif isinstance(obj, tuple):
+ return tuple(self.sanitize_for_serialization(sub_obj)
+ for sub_obj in obj)
+ elif isinstance(obj, (datetime.datetime, datetime.date)):
+ return obj.isoformat()
+
+ if isinstance(obj, dict):
+ obj_dict = obj
+ else:
+ # Convert model obj to dict except
+ # attributes `openapi_types`, `attribute_map`
+ # and attributes which value is not None.
+ # Convert attribute name to json key in
+ # model definition for request.
+ obj_dict = {obj.attribute_map[attr]: getattr(obj, attr)
+ for attr, _ in six.iteritems(obj.openapi_types)
+ if getattr(obj, attr) is not None}
+
+ return {key: self.sanitize_for_serialization(val)
+ for key, val in six.iteritems(obj_dict)}
+
+ def deserialize(self, response, response_type):
+ """Deserializes response into an object.
+
+ :param response: RESTResponse object to be deserialized.
+ :param response_type: class literal for
+ deserialized object, or string of class name.
+
+ :return: deserialized object.
+ """
+ # handle file downloading
+ # save response body into a tmp file and return the instance
+ if response_type == "file":
+ return self.__deserialize_file(response)
+
+ # fetch data from response object
+ try:
+ data = json.loads(response.data)
+ except ValueError:
+ data = response.data
+
+ return self.__deserialize(data, response_type)
+
+ def __deserialize(self, data, klass):
+ """Deserializes dict, list, str into an object.
+
+ :param data: dict, list or str.
+ :param klass: class literal, or string of class name.
+
+ :return: object.
+ """
+ if data is None:
+ return None
+
+ if type(klass) == str:
+ if klass.startswith('list['):
+ sub_kls = re.match(r'list\[(.*)\]', klass).group(1)
+ return [self.__deserialize(sub_data, sub_kls)
+ for sub_data in data]
+
+ if klass.startswith('dict('):
+ sub_kls = re.match(r'dict\(([^,]*), (.*)\)', klass).group(2)
+ return {k: self.__deserialize(v, sub_kls)
+ for k, v in six.iteritems(data)}
+
+ # convert str to class
+ if klass in self.NATIVE_TYPES_MAPPING:
+ klass = self.NATIVE_TYPES_MAPPING[klass]
+ else:
+ klass = getattr(petstore_api.models, klass)
+
+ if klass in self.PRIMITIVE_TYPES:
+ return self.__deserialize_primitive(data, klass)
+ elif klass == object:
+ return self.__deserialize_object(data)
+ elif klass == datetime.date:
+ return self.__deserialize_date(data)
+ elif klass == datetime.datetime:
+ return self.__deserialize_datatime(data)
+ else:
+ return self.__deserialize_model(data, klass)
+
+ def call_api(self, resource_path, method,
+ path_params=None, query_params=None, header_params=None,
+ body=None, post_params=None, files=None,
+ response_type=None, auth_settings=None, async_req=None,
+ _return_http_data_only=None, collection_formats=None,
+ _preload_content=True, _request_timeout=None, _host=None):
+ """Makes the HTTP request (synchronous) and returns deserialized data.
+
+ To make an async_req request, set the async_req parameter.
+
+ :param resource_path: Path to method endpoint.
+ :param method: Method to call.
+ :param path_params: Path parameters in the url.
+ :param query_params: Query parameters in the url.
+ :param header_params: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param post_params dict: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param auth_settings list: Auth Settings names for the request.
+ :param response: Response data type.
+ :param files dict: key -> filename, value -> filepath,
+ for `multipart/form-data`.
+ :param async_req bool: execute request asynchronously
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :param collection_formats: dict of collection formats for path, query,
+ header, and post parameters.
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :return:
+ If async_req parameter is True,
+ the request will be called asynchronously.
+ The method will return the request thread.
+ If parameter async_req is False or missing,
+ then the method will return the response directly.
+ """
+ if not async_req:
+ return self.__call_api(resource_path, method,
+ path_params, query_params, header_params,
+ body, post_params, files,
+ response_type, auth_settings,
+ _return_http_data_only, collection_formats,
+ _preload_content, _request_timeout, _host)
+ else:
+ thread = self.pool.apply_async(self.__call_api, (resource_path,
+ method, path_params, query_params,
+ header_params, body,
+ post_params, files,
+ response_type, auth_settings,
+ _return_http_data_only,
+ collection_formats,
+ _preload_content,
+ _request_timeout,
+ _host))
+ return thread
+
+ def request(self, method, url, query_params=None, headers=None,
+ post_params=None, body=None, _preload_content=True,
+ _request_timeout=None):
+ """Makes the HTTP request using RESTClient."""
+ if method == "GET":
+ return self.rest_client.GET(url,
+ query_params=query_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ headers=headers)
+ elif method == "HEAD":
+ return self.rest_client.HEAD(url,
+ query_params=query_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ headers=headers)
+ elif method == "OPTIONS":
+ return self.rest_client.OPTIONS(url,
+ query_params=query_params,
+ headers=headers,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ elif method == "POST":
+ return self.rest_client.POST(url,
+ query_params=query_params,
+ headers=headers,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ elif method == "PUT":
+ return self.rest_client.PUT(url,
+ query_params=query_params,
+ headers=headers,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ elif method == "PATCH":
+ return self.rest_client.PATCH(url,
+ query_params=query_params,
+ headers=headers,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ elif method == "DELETE":
+ return self.rest_client.DELETE(url,
+ query_params=query_params,
+ headers=headers,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ else:
+ raise ApiValueError(
+ "http method must be `GET`, `HEAD`, `OPTIONS`,"
+ " `POST`, `PATCH`, `PUT` or `DELETE`."
+ )
+
+ def parameters_to_tuples(self, params, collection_formats):
+ """Get parameters as list of tuples, formatting collections.
+
+ :param params: Parameters as dict or list of two-tuples
+ :param dict collection_formats: Parameter collection formats
+ :return: Parameters as list of tuples, collections formatted
+ """
+ new_params = []
+ if collection_formats is None:
+ collection_formats = {}
+ for k, v in six.iteritems(params) if isinstance(params, dict) else params: # noqa: E501
+ if k in collection_formats:
+ collection_format = collection_formats[k]
+ if collection_format == 'multi':
+ new_params.extend((k, value) for value in v)
+ else:
+ if collection_format == 'ssv':
+ delimiter = ' '
+ elif collection_format == 'tsv':
+ delimiter = '\t'
+ elif collection_format == 'pipes':
+ delimiter = '|'
+ else: # csv is the default
+ delimiter = ','
+ new_params.append(
+ (k, delimiter.join(str(value) for value in v)))
+ else:
+ new_params.append((k, v))
+ return new_params
+
+ def files_parameters(self, files=None):
+ """Builds form parameters.
+
+ :param files: File parameters.
+ :return: Form parameters with files.
+ """
+ params = []
+
+ if files:
+ for k, v in six.iteritems(files):
+ if not v:
+ continue
+ file_names = v if type(v) is list else [v]
+ for n in file_names:
+ with open(n, 'rb') as f:
+ filename = os.path.basename(f.name)
+ filedata = f.read()
+ mimetype = (mimetypes.guess_type(filename)[0] or
+ 'application/octet-stream')
+ params.append(
+ tuple([k, tuple([filename, filedata, mimetype])]))
+
+ return params
+
+ def select_header_accept(self, accepts):
+ """Returns `Accept` based on an array of accepts provided.
+
+ :param accepts: List of headers.
+ :return: Accept (e.g. application/json).
+ """
+ if not accepts:
+ return
+
+ accepts = [x.lower() for x in accepts]
+
+ if 'application/json' in accepts:
+ return 'application/json'
+ else:
+ return ', '.join(accepts)
+
+ def select_header_content_type(self, content_types):
+ """Returns `Content-Type` based on an array of content_types provided.
+
+ :param content_types: List of content-types.
+ :return: Content-Type (e.g. application/json).
+ """
+ if not content_types:
+ return 'application/json'
+
+ content_types = [x.lower() for x in content_types]
+
+ if 'application/json' in content_types or '*/*' in content_types:
+ return 'application/json'
+ else:
+ return content_types[0]
+
+ def update_params_for_auth(self, headers, querys, auth_settings):
+ """Updates header and query params based on authentication setting.
+
+ :param headers: Header parameters dict to be updated.
+ :param querys: Query parameters tuple list to be updated.
+ :param auth_settings: Authentication setting identifiers list.
+ """
+ if not auth_settings:
+ return
+
+ for auth in auth_settings:
+ auth_setting = self.configuration.auth_settings().get(auth)
+ if auth_setting:
+ if not auth_setting['value']:
+ continue
+ elif auth_setting['in'] == 'cookie':
+ headers['Cookie'] = auth_setting['value']
+ elif auth_setting['in'] == 'header':
+ headers[auth_setting['key']] = auth_setting['value']
+ elif auth_setting['in'] == 'query':
+ querys.append((auth_setting['key'], auth_setting['value']))
+ else:
+ raise ApiValueError(
+ 'Authentication token must be in `query` or `header`'
+ )
+
+ def __deserialize_file(self, response):
+ """Deserializes body to file
+
+ Saves response body into a file in a temporary folder,
+ using the filename from the `Content-Disposition` header if provided.
+
+ :param response: RESTResponse.
+ :return: file path.
+ """
+ fd, path = tempfile.mkstemp(dir=self.configuration.temp_folder_path)
+ os.close(fd)
+ os.remove(path)
+
+ content_disposition = response.getheader("Content-Disposition")
+ if content_disposition:
+ filename = re.search(r'filename=[\'"]?([^\'"\s]+)[\'"]?',
+ content_disposition).group(1)
+ path = os.path.join(os.path.dirname(path), filename)
+
+ with open(path, "wb") as f:
+ f.write(response.data)
+
+ return path
+
+ def __deserialize_primitive(self, data, klass):
+ """Deserializes string to primitive type.
+
+ :param data: str.
+ :param klass: class literal.
+
+ :return: int, long, float, str, bool.
+ """
+ try:
+ return klass(data)
+ except UnicodeEncodeError:
+ return six.text_type(data)
+ except TypeError:
+ return data
+
+ def __deserialize_object(self, value):
+ """Return an original value.
+
+ :return: object.
+ """
+ return value
+
+ def __deserialize_date(self, string):
+ """Deserializes string to date.
+
+ :param string: str.
+ :return: date.
+ """
+ try:
+ from dateutil.parser import parse
+ return parse(string).date()
+ except ImportError:
+ return string
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason="Failed to parse `{0}` as date object".format(string)
+ )
+
+ def __deserialize_datatime(self, string):
+ """Deserializes string to datetime.
+
+ The string should be in iso8601 datetime format.
+
+ :param string: str.
+ :return: datetime.
+ """
+ try:
+ from dateutil.parser import parse
+ return parse(string)
+ except ImportError:
+ return string
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason=(
+ "Failed to parse `{0}` as datetime object"
+ .format(string)
+ )
+ )
+
+ def __deserialize_model(self, data, klass):
+ """Deserializes list or dict to model.
+
+ :param data: dict, list.
+ :param klass: class literal.
+ :return: model object.
+ """
+
+ if not klass.openapi_types and not hasattr(klass,
+ 'get_real_child_model'):
+ return data
+
+ kwargs = {}
+ if klass.openapi_types is not None:
+ for attr, attr_type in six.iteritems(klass.openapi_types):
+ if (data is not None and
+ klass.attribute_map[attr] in data and
+ isinstance(data, (list, dict))):
+ value = data[klass.attribute_map[attr]]
+ kwargs[attr] = self.__deserialize(value, attr_type)
+
+ instance = klass(**kwargs)
+
+ if hasattr(instance, 'get_real_child_model'):
+ klass_name = instance.get_real_child_model(data)
+ if klass_name:
+ instance = self.__deserialize(data, klass_name)
+ return instance
diff --git a/samples/client/petstore/python-experimental/petstore_api/configuration.py b/samples/client/petstore/python-experimental/petstore_api/configuration.py
new file mode 100644
index 00000000000..fa0c3f4d320
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/configuration.py
@@ -0,0 +1,342 @@
+# 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
+"""
+
+
+from __future__ import absolute_import
+
+import copy
+import logging
+import multiprocessing
+import sys
+import urllib3
+
+import six
+from six.moves import http_client as httplib
+
+
+class TypeWithDefault(type):
+ def __init__(cls, name, bases, dct):
+ super(TypeWithDefault, cls).__init__(name, bases, dct)
+ cls._default = None
+
+ def __call__(cls, **kwargs):
+ if cls._default is None:
+ cls._default = type.__call__(cls, **kwargs)
+ return copy.copy(cls._default)
+
+ def set_default(cls, default):
+ cls._default = copy.copy(default)
+
+
+class Configuration(six.with_metaclass(TypeWithDefault, object)):
+ """NOTE: This class is auto generated by OpenAPI Generator
+
+ Ref: https://openapi-generator.tech
+ Do not edit the class manually.
+
+ :param host: Base url
+ :param api_key: Dict to store API key(s)
+ :param api_key_prefix: Dict to store API prefix (e.g. Bearer)
+ :param username: Username for HTTP basic authentication
+ :param password: Password for HTTP basic authentication
+ """
+
+ def __init__(self, host="http://petstore.swagger.io:80/v2",
+ api_key={}, api_key_prefix={},
+ username="", password=""):
+ """Constructor
+ """
+ self.host = host
+ """Default Base url
+ """
+ self.temp_folder_path = None
+ """Temp file folder for downloading files
+ """
+ # Authentication Settings
+ self.api_key = api_key
+ """dict to store API key(s)
+ """
+ self.api_key_prefix = api_key_prefix
+ """dict to store API prefix (e.g. Bearer)
+ """
+ self.username = username
+ """Username for HTTP basic authentication
+ """
+ self.password = password
+ """Password for HTTP basic authentication
+ """
+ self.access_token = ""
+ """access token for OAuth/Bearer
+ """
+ self.logger = {}
+ """Logging Settings
+ """
+ self.logger["package_logger"] = logging.getLogger("petstore_api")
+ self.logger["urllib3_logger"] = logging.getLogger("urllib3")
+ self.logger_format = '%(asctime)s %(levelname)s %(message)s'
+ """Log format
+ """
+ self.logger_stream_handler = None
+ """Log stream handler
+ """
+ self.logger_file_handler = None
+ """Log file handler
+ """
+ self.logger_file = None
+ """Debug file location
+ """
+ self.debug = False
+ """Debug switch
+ """
+
+ self.verify_ssl = True
+ """SSL/TLS verification
+ Set this to false to skip verifying SSL certificate when calling API
+ from https server.
+ """
+ self.ssl_ca_cert = None
+ """Set this to customize the certificate file to verify the peer.
+ """
+ self.cert_file = None
+ """client certificate file
+ """
+ self.key_file = None
+ """client key file
+ """
+ self.assert_hostname = None
+ """Set this to True/False to enable/disable SSL hostname verification.
+ """
+
+ self.connection_pool_maxsize = multiprocessing.cpu_count() * 5
+ """urllib3 connection pool's maximum number of connections saved
+ per pool. urllib3 uses 1 connection as default value, but this is
+ not the best value when you are making a lot of possibly parallel
+ requests to the same host, which is often the case here.
+ cpu_count * 5 is used as default value to increase performance.
+ """
+
+ self.proxy = None
+ """Proxy URL
+ """
+ self.proxy_headers = None
+ """Proxy headers
+ """
+ self.safe_chars_for_path_param = ''
+ """Safe chars for path_param
+ """
+ self.retries = None
+ """Adding retries to override urllib3 default value 3
+ """
+
+ @property
+ def logger_file(self):
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ return self.__logger_file
+
+ @logger_file.setter
+ def logger_file(self, value):
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ self.__logger_file = value
+ if self.__logger_file:
+ # If set logging file,
+ # then add file handler and remove stream handler.
+ self.logger_file_handler = logging.FileHandler(self.__logger_file)
+ self.logger_file_handler.setFormatter(self.logger_formatter)
+ for _, logger in six.iteritems(self.logger):
+ logger.addHandler(self.logger_file_handler)
+
+ @property
+ def debug(self):
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ return self.__debug
+
+ @debug.setter
+ def debug(self, value):
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ self.__debug = value
+ if self.__debug:
+ # if debug status is True, turn on debug logging
+ for _, logger in six.iteritems(self.logger):
+ logger.setLevel(logging.DEBUG)
+ # turn on httplib debug
+ httplib.HTTPConnection.debuglevel = 1
+ else:
+ # if debug status is False, turn off debug logging,
+ # setting log level to default `logging.WARNING`
+ for _, logger in six.iteritems(self.logger):
+ logger.setLevel(logging.WARNING)
+ # turn off httplib debug
+ httplib.HTTPConnection.debuglevel = 0
+
+ @property
+ def logger_format(self):
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ return self.__logger_format
+
+ @logger_format.setter
+ def logger_format(self, value):
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ self.__logger_format = value
+ self.logger_formatter = logging.Formatter(self.__logger_format)
+
+ def get_api_key_with_prefix(self, identifier):
+ """Gets API key (with prefix if set).
+
+ :param identifier: The identifier of apiKey.
+ :return: The token for api key authentication.
+ """
+ if (self.api_key.get(identifier) and
+ self.api_key_prefix.get(identifier)):
+ return self.api_key_prefix[identifier] + ' ' + self.api_key[identifier] # noqa: E501
+ elif self.api_key.get(identifier):
+ return self.api_key[identifier]
+
+ def get_basic_auth_token(self):
+ """Gets HTTP basic authentication header (string).
+
+ :return: The token for basic HTTP authentication.
+ """
+ return urllib3.util.make_headers(
+ basic_auth=self.username + ':' + self.password
+ ).get('authorization')
+
+ def auth_settings(self):
+ """Gets Auth Settings dict for api client.
+
+ :return: The Auth Settings information dict.
+ """
+ return {
+ 'api_key':
+ {
+ 'type': 'api_key',
+ 'in': 'header',
+ 'key': 'api_key',
+ 'value': self.get_api_key_with_prefix('api_key')
+ },
+ 'api_key_query':
+ {
+ 'type': 'api_key',
+ 'in': 'query',
+ 'key': 'api_key_query',
+ 'value': self.get_api_key_with_prefix('api_key_query')
+ },
+ 'http_basic_test':
+ {
+ 'type': 'basic',
+ 'in': 'header',
+ 'key': 'Authorization',
+ 'value': self.get_basic_auth_token()
+ },
+ 'petstore_auth':
+ {
+ 'type': 'oauth2',
+ 'in': 'header',
+ 'key': 'Authorization',
+ 'value': 'Bearer ' + self.access_token
+ },
+ }
+
+ def to_debug_report(self):
+ """Gets the essential information for debugging.
+
+ :return: The report for debugging.
+ """
+ return "Python SDK Debug Report:\n"\
+ "OS: {env}\n"\
+ "Python Version: {pyversion}\n"\
+ "Version of the API: 1.0.0\n"\
+ "SDK Package Version: 1.0.0".\
+ format(env=sys.platform, pyversion=sys.version)
+
+ def get_host_settings(self):
+ """Gets an array of host settings
+
+ :return: An array of host settings
+ """
+ return [
+ {
+ 'url': "http://petstore.swagger.io:80/v2",
+ 'description': "No description provided",
+ }
+ ]
+
+ def get_host_from_settings(self, index, variables={}):
+ """Gets host URL based on the index and variables
+ :param index: array index of the host settings
+ :param variables: hash of variable and the corresponding value
+ :return: URL based on host settings
+ """
+
+ servers = self.get_host_settings()
+
+ # check array index out of bound
+ if index < 0 or index >= len(servers):
+ raise ValueError(
+ "Invalid index {} when selecting the host settings. Must be less than {}" # noqa: E501
+ .format(index, len(servers)))
+
+ server = servers[index]
+ url = server['url']
+
+ # go through variable and assign a value
+ for variable_name in server['variables']:
+ if variable_name in variables:
+ if variables[variable_name] in server['variables'][
+ variable_name]['enum_values']:
+ url = url.replace("{" + variable_name + "}",
+ variables[variable_name])
+ else:
+ raise ValueError(
+ "The variable `{}` in the host URL has invalid value {}. Must be {}." # noqa: E501
+ .format(
+ variable_name, variables[variable_name],
+ server['variables'][variable_name]['enum_values']))
+ else:
+ # use default value
+ url = url.replace(
+ "{" + variable_name + "}",
+ server['variables'][variable_name]['default_value'])
+
+ return url
diff --git a/samples/client/petstore/python-experimental/petstore_api/exceptions.py b/samples/client/petstore/python-experimental/petstore_api/exceptions.py
new file mode 100644
index 00000000000..100be3e0540
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/exceptions.py
@@ -0,0 +1,120 @@
+# 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 six
+
+
+class OpenApiException(Exception):
+ """The base exception class for all OpenAPIExceptions"""
+
+
+class ApiTypeError(OpenApiException, TypeError):
+ def __init__(self, msg, path_to_item=None, valid_classes=None,
+ key_type=None):
+ """ Raises an exception for TypeErrors
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list): a list of keys an indices to get to the
+ current_item
+ None if unset
+ valid_classes (tuple): the primitive classes that current item
+ should be an instance of
+ None if unset
+ key_type (bool): False if our value is a value in a dict
+ True if it is a key in a dict
+ False if our item is an item in a list
+ None if unset
+ """
+ self.path_to_item = path_to_item
+ self.valid_classes = valid_classes
+ self.key_type = key_type
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiTypeError, self).__init__(full_msg)
+
+
+class ApiValueError(OpenApiException, ValueError):
+ def __init__(self, msg, path_to_item=None):
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list) the path to the exception in the
+ received_data dict. None if unset
+ """
+
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiValueError, self).__init__(full_msg)
+
+
+class ApiKeyError(OpenApiException, KeyError):
+ def __init__(self, msg, path_to_item=None):
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiKeyError, self).__init__(full_msg)
+
+
+class ApiException(OpenApiException):
+
+ def __init__(self, status=None, reason=None, http_resp=None):
+ if http_resp:
+ self.status = http_resp.status
+ self.reason = http_resp.reason
+ self.body = http_resp.data
+ self.headers = http_resp.getheaders()
+ else:
+ self.status = status
+ self.reason = reason
+ self.body = None
+ self.headers = None
+
+ def __str__(self):
+ """Custom error messages for exception"""
+ error_message = "({0})\n"\
+ "Reason: {1}\n".format(self.status, self.reason)
+ if self.headers:
+ error_message += "HTTP response headers: {0}\n".format(
+ self.headers)
+
+ if self.body:
+ error_message += "HTTP response body: {0}\n".format(self.body)
+
+ return error_message
+
+
+def render_path(path_to_item):
+ """Returns a string representation of a path"""
+ result = ""
+ for pth in path_to_item:
+ if isinstance(pth, six.integer_types):
+ result += "[{0}]".format(pth)
+ else:
+ result += "['{0}']".format(pth)
+ return result
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/__init__.py b/samples/client/petstore/python-experimental/petstore_api/models/__init__.py
new file mode 100644
index 00000000000..96fd17471f1
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/__init__.py
@@ -0,0 +1,62 @@
+# coding: utf-8
+
+# flake8: noqa
+"""
+ 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
+"""
+
+
+from __future__ import absolute_import
+
+# import models into model package
+from petstore_api.models.additional_properties_any_type import AdditionalPropertiesAnyType
+from petstore_api.models.additional_properties_array import AdditionalPropertiesArray
+from petstore_api.models.additional_properties_boolean import AdditionalPropertiesBoolean
+from petstore_api.models.additional_properties_class import AdditionalPropertiesClass
+from petstore_api.models.additional_properties_integer import AdditionalPropertiesInteger
+from petstore_api.models.additional_properties_number import AdditionalPropertiesNumber
+from petstore_api.models.additional_properties_object import AdditionalPropertiesObject
+from petstore_api.models.additional_properties_string import AdditionalPropertiesString
+from petstore_api.models.animal import Animal
+from petstore_api.models.api_response import ApiResponse
+from petstore_api.models.array_of_array_of_number_only import ArrayOfArrayOfNumberOnly
+from petstore_api.models.array_of_number_only import ArrayOfNumberOnly
+from petstore_api.models.array_test import ArrayTest
+from petstore_api.models.capitalization import Capitalization
+from petstore_api.models.cat import Cat
+from petstore_api.models.cat_all_of import CatAllOf
+from petstore_api.models.category import Category
+from petstore_api.models.class_model import ClassModel
+from petstore_api.models.client import Client
+from petstore_api.models.dog import Dog
+from petstore_api.models.dog_all_of import DogAllOf
+from petstore_api.models.enum_arrays import EnumArrays
+from petstore_api.models.enum_class import EnumClass
+from petstore_api.models.enum_test import EnumTest
+from petstore_api.models.file import File
+from petstore_api.models.file_schema_test_class import FileSchemaTestClass
+from petstore_api.models.format_test import FormatTest
+from petstore_api.models.has_only_read_only import HasOnlyReadOnly
+from petstore_api.models.list import List
+from petstore_api.models.map_test import MapTest
+from petstore_api.models.mixed_properties_and_additional_properties_class import MixedPropertiesAndAdditionalPropertiesClass
+from petstore_api.models.model200_response import Model200Response
+from petstore_api.models.model_return import ModelReturn
+from petstore_api.models.name import Name
+from petstore_api.models.number_only import NumberOnly
+from petstore_api.models.order import Order
+from petstore_api.models.outer_composite import OuterComposite
+from petstore_api.models.outer_enum import OuterEnum
+from petstore_api.models.pet import Pet
+from petstore_api.models.read_only_first import ReadOnlyFirst
+from petstore_api.models.special_model_name import SpecialModelName
+from petstore_api.models.tag import Tag
+from petstore_api.models.type_holder_default import TypeHolderDefault
+from petstore_api.models.type_holder_example import TypeHolderExample
+from petstore_api.models.user import User
+from petstore_api.models.xml_item import XmlItem
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_any_type.py b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_any_type.py
new file mode 100644
index 00000000000..ed4f40068bf
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_any_type.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class AdditionalPropertiesAnyType(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'name': 'name'
+ }
+
+ def __init__(self, name=None): # noqa: E501
+ """AdditionalPropertiesAnyType - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+
+ @property
+ def name(self):
+ """Gets the name of this AdditionalPropertiesAnyType. # noqa: E501
+
+
+ :return: The name of this AdditionalPropertiesAnyType. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this AdditionalPropertiesAnyType.
+
+
+ :param name: The name of this AdditionalPropertiesAnyType. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, AdditionalPropertiesAnyType):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_array.py b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_array.py
new file mode 100644
index 00000000000..22b4133f367
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_array.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class AdditionalPropertiesArray(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'name': 'name'
+ }
+
+ def __init__(self, name=None): # noqa: E501
+ """AdditionalPropertiesArray - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+
+ @property
+ def name(self):
+ """Gets the name of this AdditionalPropertiesArray. # noqa: E501
+
+
+ :return: The name of this AdditionalPropertiesArray. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this AdditionalPropertiesArray.
+
+
+ :param name: The name of this AdditionalPropertiesArray. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, AdditionalPropertiesArray):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_boolean.py b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_boolean.py
new file mode 100644
index 00000000000..24e2fc178ab
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_boolean.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class AdditionalPropertiesBoolean(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'name': 'name'
+ }
+
+ def __init__(self, name=None): # noqa: E501
+ """AdditionalPropertiesBoolean - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+
+ @property
+ def name(self):
+ """Gets the name of this AdditionalPropertiesBoolean. # noqa: E501
+
+
+ :return: The name of this AdditionalPropertiesBoolean. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this AdditionalPropertiesBoolean.
+
+
+ :param name: The name of this AdditionalPropertiesBoolean. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, AdditionalPropertiesBoolean):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_class.py b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_class.py
new file mode 100644
index 00000000000..e9e9307d1b7
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_class.py
@@ -0,0 +1,372 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class AdditionalPropertiesClass(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'map_string': 'dict(str, str)',
+ 'map_number': 'dict(str, float)',
+ 'map_integer': 'dict(str, int)',
+ 'map_boolean': 'dict(str, bool)',
+ 'map_array_integer': 'dict(str, list[int])',
+ 'map_array_anytype': 'dict(str, list[object])',
+ 'map_map_string': 'dict(str, dict(str, str))',
+ 'map_map_anytype': 'dict(str, dict(str, object))',
+ 'anytype_1': 'object',
+ 'anytype_2': 'object',
+ 'anytype_3': 'object'
+ }
+
+ attribute_map = {
+ 'map_string': 'map_string',
+ 'map_number': 'map_number',
+ 'map_integer': 'map_integer',
+ 'map_boolean': 'map_boolean',
+ 'map_array_integer': 'map_array_integer',
+ 'map_array_anytype': 'map_array_anytype',
+ 'map_map_string': 'map_map_string',
+ 'map_map_anytype': 'map_map_anytype',
+ 'anytype_1': 'anytype_1',
+ 'anytype_2': 'anytype_2',
+ 'anytype_3': 'anytype_3'
+ }
+
+ def __init__(self, map_string=None, map_number=None, map_integer=None, map_boolean=None, map_array_integer=None, map_array_anytype=None, map_map_string=None, map_map_anytype=None, anytype_1=None, anytype_2=None, anytype_3=None): # noqa: E501
+ """AdditionalPropertiesClass - a model defined in OpenAPI""" # noqa: E501
+
+ self._map_string = None
+ self._map_number = None
+ self._map_integer = None
+ self._map_boolean = None
+ self._map_array_integer = None
+ self._map_array_anytype = None
+ self._map_map_string = None
+ self._map_map_anytype = None
+ self._anytype_1 = None
+ self._anytype_2 = None
+ self._anytype_3 = None
+ self.discriminator = None
+
+ if map_string is not None:
+ self.map_string = map_string
+ if map_number is not None:
+ self.map_number = map_number
+ if map_integer is not None:
+ self.map_integer = map_integer
+ if map_boolean is not None:
+ self.map_boolean = map_boolean
+ if map_array_integer is not None:
+ self.map_array_integer = map_array_integer
+ if map_array_anytype is not None:
+ self.map_array_anytype = map_array_anytype
+ if map_map_string is not None:
+ self.map_map_string = map_map_string
+ if map_map_anytype is not None:
+ self.map_map_anytype = map_map_anytype
+ if anytype_1 is not None:
+ self.anytype_1 = anytype_1
+ if anytype_2 is not None:
+ self.anytype_2 = anytype_2
+ if anytype_3 is not None:
+ self.anytype_3 = anytype_3
+
+ @property
+ def map_string(self):
+ """Gets the map_string of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map_string of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, str)
+ """
+ return self._map_string
+
+ @map_string.setter
+ def map_string(self, map_string):
+ """Sets the map_string of this AdditionalPropertiesClass.
+
+
+ :param map_string: The map_string of this AdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, str)
+ """
+
+ self._map_string = map_string
+
+ @property
+ def map_number(self):
+ """Gets the map_number of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map_number of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, float)
+ """
+ return self._map_number
+
+ @map_number.setter
+ def map_number(self, map_number):
+ """Sets the map_number of this AdditionalPropertiesClass.
+
+
+ :param map_number: The map_number of this AdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, float)
+ """
+
+ self._map_number = map_number
+
+ @property
+ def map_integer(self):
+ """Gets the map_integer of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map_integer of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, int)
+ """
+ return self._map_integer
+
+ @map_integer.setter
+ def map_integer(self, map_integer):
+ """Sets the map_integer of this AdditionalPropertiesClass.
+
+
+ :param map_integer: The map_integer of this AdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, int)
+ """
+
+ self._map_integer = map_integer
+
+ @property
+ def map_boolean(self):
+ """Gets the map_boolean of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map_boolean of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, bool)
+ """
+ return self._map_boolean
+
+ @map_boolean.setter
+ def map_boolean(self, map_boolean):
+ """Sets the map_boolean of this AdditionalPropertiesClass.
+
+
+ :param map_boolean: The map_boolean of this AdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, bool)
+ """
+
+ self._map_boolean = map_boolean
+
+ @property
+ def map_array_integer(self):
+ """Gets the map_array_integer of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map_array_integer of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, list[int])
+ """
+ return self._map_array_integer
+
+ @map_array_integer.setter
+ def map_array_integer(self, map_array_integer):
+ """Sets the map_array_integer of this AdditionalPropertiesClass.
+
+
+ :param map_array_integer: The map_array_integer of this AdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, list[int])
+ """
+
+ self._map_array_integer = map_array_integer
+
+ @property
+ def map_array_anytype(self):
+ """Gets the map_array_anytype of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map_array_anytype of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, list[object])
+ """
+ return self._map_array_anytype
+
+ @map_array_anytype.setter
+ def map_array_anytype(self, map_array_anytype):
+ """Sets the map_array_anytype of this AdditionalPropertiesClass.
+
+
+ :param map_array_anytype: The map_array_anytype of this AdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, list[object])
+ """
+
+ self._map_array_anytype = map_array_anytype
+
+ @property
+ def map_map_string(self):
+ """Gets the map_map_string of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map_map_string of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, dict(str, str))
+ """
+ return self._map_map_string
+
+ @map_map_string.setter
+ def map_map_string(self, map_map_string):
+ """Sets the map_map_string of this AdditionalPropertiesClass.
+
+
+ :param map_map_string: The map_map_string of this AdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, dict(str, str))
+ """
+
+ self._map_map_string = map_map_string
+
+ @property
+ def map_map_anytype(self):
+ """Gets the map_map_anytype of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map_map_anytype of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._map_map_anytype
+
+ @map_map_anytype.setter
+ def map_map_anytype(self, map_map_anytype):
+ """Sets the map_map_anytype of this AdditionalPropertiesClass.
+
+
+ :param map_map_anytype: The map_map_anytype of this AdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, dict(str, object))
+ """
+
+ self._map_map_anytype = map_map_anytype
+
+ @property
+ def anytype_1(self):
+ """Gets the anytype_1 of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The anytype_1 of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: object
+ """
+ return self._anytype_1
+
+ @anytype_1.setter
+ def anytype_1(self, anytype_1):
+ """Sets the anytype_1 of this AdditionalPropertiesClass.
+
+
+ :param anytype_1: The anytype_1 of this AdditionalPropertiesClass. # noqa: E501
+ :type: object
+ """
+
+ self._anytype_1 = anytype_1
+
+ @property
+ def anytype_2(self):
+ """Gets the anytype_2 of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The anytype_2 of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: object
+ """
+ return self._anytype_2
+
+ @anytype_2.setter
+ def anytype_2(self, anytype_2):
+ """Sets the anytype_2 of this AdditionalPropertiesClass.
+
+
+ :param anytype_2: The anytype_2 of this AdditionalPropertiesClass. # noqa: E501
+ :type: object
+ """
+
+ self._anytype_2 = anytype_2
+
+ @property
+ def anytype_3(self):
+ """Gets the anytype_3 of this AdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The anytype_3 of this AdditionalPropertiesClass. # noqa: E501
+ :rtype: object
+ """
+ return self._anytype_3
+
+ @anytype_3.setter
+ def anytype_3(self, anytype_3):
+ """Sets the anytype_3 of this AdditionalPropertiesClass.
+
+
+ :param anytype_3: The anytype_3 of this AdditionalPropertiesClass. # noqa: E501
+ :type: object
+ """
+
+ self._anytype_3 = anytype_3
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, AdditionalPropertiesClass):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_integer.py b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_integer.py
new file mode 100644
index 00000000000..43bcf425a7b
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_integer.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class AdditionalPropertiesInteger(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'name': 'name'
+ }
+
+ def __init__(self, name=None): # noqa: E501
+ """AdditionalPropertiesInteger - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+
+ @property
+ def name(self):
+ """Gets the name of this AdditionalPropertiesInteger. # noqa: E501
+
+
+ :return: The name of this AdditionalPropertiesInteger. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this AdditionalPropertiesInteger.
+
+
+ :param name: The name of this AdditionalPropertiesInteger. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, AdditionalPropertiesInteger):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_number.py b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_number.py
new file mode 100644
index 00000000000..b3e034035a8
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_number.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class AdditionalPropertiesNumber(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'name': 'name'
+ }
+
+ def __init__(self, name=None): # noqa: E501
+ """AdditionalPropertiesNumber - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+
+ @property
+ def name(self):
+ """Gets the name of this AdditionalPropertiesNumber. # noqa: E501
+
+
+ :return: The name of this AdditionalPropertiesNumber. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this AdditionalPropertiesNumber.
+
+
+ :param name: The name of this AdditionalPropertiesNumber. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, AdditionalPropertiesNumber):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_object.py b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_object.py
new file mode 100644
index 00000000000..9ab56a4e553
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_object.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class AdditionalPropertiesObject(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'name': 'name'
+ }
+
+ def __init__(self, name=None): # noqa: E501
+ """AdditionalPropertiesObject - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+
+ @property
+ def name(self):
+ """Gets the name of this AdditionalPropertiesObject. # noqa: E501
+
+
+ :return: The name of this AdditionalPropertiesObject. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this AdditionalPropertiesObject.
+
+
+ :param name: The name of this AdditionalPropertiesObject. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, AdditionalPropertiesObject):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_string.py b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_string.py
new file mode 100644
index 00000000000..4667186bdc4
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/additional_properties_string.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class AdditionalPropertiesString(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'name': 'name'
+ }
+
+ def __init__(self, name=None): # noqa: E501
+ """AdditionalPropertiesString - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+
+ @property
+ def name(self):
+ """Gets the name of this AdditionalPropertiesString. # noqa: E501
+
+
+ :return: The name of this AdditionalPropertiesString. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this AdditionalPropertiesString.
+
+
+ :param name: The name of this AdditionalPropertiesString. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, AdditionalPropertiesString):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/animal.py b/samples/client/petstore/python-experimental/petstore_api/models/animal.py
new file mode 100644
index 00000000000..552ef0e8326
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/animal.py
@@ -0,0 +1,150 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Animal(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'class_name': 'str',
+ 'color': 'str'
+ }
+
+ attribute_map = {
+ 'class_name': 'className',
+ 'color': 'color'
+ }
+
+ discriminator_value_class_map = {
+ 'Dog': 'Dog',
+ 'Cat': 'Cat'
+ }
+
+ def __init__(self, class_name=None, color='red'): # noqa: E501
+ """Animal - a model defined in OpenAPI""" # noqa: E501
+
+ self._class_name = None
+ self._color = None
+ self.discriminator = 'class_name'
+
+ self.class_name = class_name
+ if color is not None:
+ self.color = color
+
+ @property
+ def class_name(self):
+ """Gets the class_name of this Animal. # noqa: E501
+
+
+ :return: The class_name of this Animal. # noqa: E501
+ :rtype: str
+ """
+ return self._class_name
+
+ @class_name.setter
+ def class_name(self, class_name):
+ """Sets the class_name of this Animal.
+
+
+ :param class_name: The class_name of this Animal. # noqa: E501
+ :type: str
+ """
+ if class_name is None:
+ raise ValueError("Invalid value for `class_name`, must not be `None`") # noqa: E501
+
+ self._class_name = class_name
+
+ @property
+ def color(self):
+ """Gets the color of this Animal. # noqa: E501
+
+
+ :return: The color of this Animal. # noqa: E501
+ :rtype: str
+ """
+ return self._color
+
+ @color.setter
+ def color(self, color):
+ """Sets the color of this Animal.
+
+
+ :param color: The color of this Animal. # noqa: E501
+ :type: str
+ """
+
+ self._color = color
+
+ def get_real_child_model(self, data):
+ """Returns the real base class specified by the discriminator"""
+ discriminator_key = self.attribute_map[self.discriminator]
+ discriminator_value = data[discriminator_key]
+ return self.discriminator_value_class_map.get(discriminator_value)
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Animal):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/api_response.py b/samples/client/petstore/python-experimental/petstore_api/models/api_response.py
new file mode 100644
index 00000000000..190c3df3452
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/api_response.py
@@ -0,0 +1,164 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class ApiResponse(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'code': 'int',
+ 'type': 'str',
+ 'message': 'str'
+ }
+
+ attribute_map = {
+ 'code': 'code',
+ 'type': 'type',
+ 'message': 'message'
+ }
+
+ def __init__(self, code=None, type=None, message=None): # noqa: E501
+ """ApiResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._code = None
+ self._type = None
+ self._message = None
+ self.discriminator = None
+
+ if code is not None:
+ self.code = code
+ if type is not None:
+ self.type = type
+ if message is not None:
+ self.message = message
+
+ @property
+ def code(self):
+ """Gets the code of this ApiResponse. # noqa: E501
+
+
+ :return: The code of this ApiResponse. # noqa: E501
+ :rtype: int
+ """
+ return self._code
+
+ @code.setter
+ def code(self, code):
+ """Sets the code of this ApiResponse.
+
+
+ :param code: The code of this ApiResponse. # noqa: E501
+ :type: int
+ """
+
+ self._code = code
+
+ @property
+ def type(self):
+ """Gets the type of this ApiResponse. # noqa: E501
+
+
+ :return: The type of this ApiResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._type
+
+ @type.setter
+ def type(self, type):
+ """Sets the type of this ApiResponse.
+
+
+ :param type: The type of this ApiResponse. # noqa: E501
+ :type: str
+ """
+
+ self._type = type
+
+ @property
+ def message(self):
+ """Gets the message of this ApiResponse. # noqa: E501
+
+
+ :return: The message of this ApiResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._message
+
+ @message.setter
+ def message(self, message):
+ """Sets the message of this ApiResponse.
+
+
+ :param message: The message of this ApiResponse. # noqa: E501
+ :type: str
+ """
+
+ self._message = message
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, ApiResponse):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/array_of_array_of_number_only.py b/samples/client/petstore/python-experimental/petstore_api/models/array_of_array_of_number_only.py
new file mode 100644
index 00000000000..ebf96429801
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/array_of_array_of_number_only.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class ArrayOfArrayOfNumberOnly(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'array_array_number': 'list[list[float]]'
+ }
+
+ attribute_map = {
+ 'array_array_number': 'ArrayArrayNumber'
+ }
+
+ def __init__(self, array_array_number=None): # noqa: E501
+ """ArrayOfArrayOfNumberOnly - a model defined in OpenAPI""" # noqa: E501
+
+ self._array_array_number = None
+ self.discriminator = None
+
+ if array_array_number is not None:
+ self.array_array_number = array_array_number
+
+ @property
+ def array_array_number(self):
+ """Gets the array_array_number of this ArrayOfArrayOfNumberOnly. # noqa: E501
+
+
+ :return: The array_array_number of this ArrayOfArrayOfNumberOnly. # noqa: E501
+ :rtype: list[list[float]]
+ """
+ return self._array_array_number
+
+ @array_array_number.setter
+ def array_array_number(self, array_array_number):
+ """Sets the array_array_number of this ArrayOfArrayOfNumberOnly.
+
+
+ :param array_array_number: The array_array_number of this ArrayOfArrayOfNumberOnly. # noqa: E501
+ :type: list[list[float]]
+ """
+
+ self._array_array_number = array_array_number
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, ArrayOfArrayOfNumberOnly):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/array_of_number_only.py b/samples/client/petstore/python-experimental/petstore_api/models/array_of_number_only.py
new file mode 100644
index 00000000000..8e1837c46bd
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/array_of_number_only.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class ArrayOfNumberOnly(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'array_number': 'list[float]'
+ }
+
+ attribute_map = {
+ 'array_number': 'ArrayNumber'
+ }
+
+ def __init__(self, array_number=None): # noqa: E501
+ """ArrayOfNumberOnly - a model defined in OpenAPI""" # noqa: E501
+
+ self._array_number = None
+ self.discriminator = None
+
+ if array_number is not None:
+ self.array_number = array_number
+
+ @property
+ def array_number(self):
+ """Gets the array_number of this ArrayOfNumberOnly. # noqa: E501
+
+
+ :return: The array_number of this ArrayOfNumberOnly. # noqa: E501
+ :rtype: list[float]
+ """
+ return self._array_number
+
+ @array_number.setter
+ def array_number(self, array_number):
+ """Sets the array_number of this ArrayOfNumberOnly.
+
+
+ :param array_number: The array_number of this ArrayOfNumberOnly. # noqa: E501
+ :type: list[float]
+ """
+
+ self._array_number = array_number
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, ArrayOfNumberOnly):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/array_test.py b/samples/client/petstore/python-experimental/petstore_api/models/array_test.py
new file mode 100644
index 00000000000..f548fef3ee8
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/array_test.py
@@ -0,0 +1,164 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class ArrayTest(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'array_of_string': 'list[str]',
+ 'array_array_of_integer': 'list[list[int]]',
+ 'array_array_of_model': 'list[list[ReadOnlyFirst]]'
+ }
+
+ attribute_map = {
+ 'array_of_string': 'array_of_string',
+ 'array_array_of_integer': 'array_array_of_integer',
+ 'array_array_of_model': 'array_array_of_model'
+ }
+
+ def __init__(self, array_of_string=None, array_array_of_integer=None, array_array_of_model=None): # noqa: E501
+ """ArrayTest - a model defined in OpenAPI""" # noqa: E501
+
+ self._array_of_string = None
+ self._array_array_of_integer = None
+ self._array_array_of_model = None
+ self.discriminator = None
+
+ if array_of_string is not None:
+ self.array_of_string = array_of_string
+ if array_array_of_integer is not None:
+ self.array_array_of_integer = array_array_of_integer
+ if array_array_of_model is not None:
+ self.array_array_of_model = array_array_of_model
+
+ @property
+ def array_of_string(self):
+ """Gets the array_of_string of this ArrayTest. # noqa: E501
+
+
+ :return: The array_of_string of this ArrayTest. # noqa: E501
+ :rtype: list[str]
+ """
+ return self._array_of_string
+
+ @array_of_string.setter
+ def array_of_string(self, array_of_string):
+ """Sets the array_of_string of this ArrayTest.
+
+
+ :param array_of_string: The array_of_string of this ArrayTest. # noqa: E501
+ :type: list[str]
+ """
+
+ self._array_of_string = array_of_string
+
+ @property
+ def array_array_of_integer(self):
+ """Gets the array_array_of_integer of this ArrayTest. # noqa: E501
+
+
+ :return: The array_array_of_integer of this ArrayTest. # noqa: E501
+ :rtype: list[list[int]]
+ """
+ return self._array_array_of_integer
+
+ @array_array_of_integer.setter
+ def array_array_of_integer(self, array_array_of_integer):
+ """Sets the array_array_of_integer of this ArrayTest.
+
+
+ :param array_array_of_integer: The array_array_of_integer of this ArrayTest. # noqa: E501
+ :type: list[list[int]]
+ """
+
+ self._array_array_of_integer = array_array_of_integer
+
+ @property
+ def array_array_of_model(self):
+ """Gets the array_array_of_model of this ArrayTest. # noqa: E501
+
+
+ :return: The array_array_of_model of this ArrayTest. # noqa: E501
+ :rtype: list[list[ReadOnlyFirst]]
+ """
+ return self._array_array_of_model
+
+ @array_array_of_model.setter
+ def array_array_of_model(self, array_array_of_model):
+ """Sets the array_array_of_model of this ArrayTest.
+
+
+ :param array_array_of_model: The array_array_of_model of this ArrayTest. # noqa: E501
+ :type: list[list[ReadOnlyFirst]]
+ """
+
+ self._array_array_of_model = array_array_of_model
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, ArrayTest):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/capitalization.py b/samples/client/petstore/python-experimental/petstore_api/models/capitalization.py
new file mode 100644
index 00000000000..0da6b77e84d
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/capitalization.py
@@ -0,0 +1,244 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Capitalization(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'small_camel': 'str',
+ 'capital_camel': 'str',
+ 'small_snake': 'str',
+ 'capital_snake': 'str',
+ 'sca_eth_flow_points': 'str',
+ 'att_name': 'str'
+ }
+
+ attribute_map = {
+ 'small_camel': 'smallCamel',
+ 'capital_camel': 'CapitalCamel',
+ 'small_snake': 'small_Snake',
+ 'capital_snake': 'Capital_Snake',
+ 'sca_eth_flow_points': 'SCA_ETH_Flow_Points',
+ 'att_name': 'ATT_NAME'
+ }
+
+ def __init__(self, small_camel=None, capital_camel=None, small_snake=None, capital_snake=None, sca_eth_flow_points=None, att_name=None): # noqa: E501
+ """Capitalization - a model defined in OpenAPI""" # noqa: E501
+
+ self._small_camel = None
+ self._capital_camel = None
+ self._small_snake = None
+ self._capital_snake = None
+ self._sca_eth_flow_points = None
+ self._att_name = None
+ self.discriminator = None
+
+ if small_camel is not None:
+ self.small_camel = small_camel
+ if capital_camel is not None:
+ self.capital_camel = capital_camel
+ if small_snake is not None:
+ self.small_snake = small_snake
+ if capital_snake is not None:
+ self.capital_snake = capital_snake
+ if sca_eth_flow_points is not None:
+ self.sca_eth_flow_points = sca_eth_flow_points
+ if att_name is not None:
+ self.att_name = att_name
+
+ @property
+ def small_camel(self):
+ """Gets the small_camel of this Capitalization. # noqa: E501
+
+
+ :return: The small_camel of this Capitalization. # noqa: E501
+ :rtype: str
+ """
+ return self._small_camel
+
+ @small_camel.setter
+ def small_camel(self, small_camel):
+ """Sets the small_camel of this Capitalization.
+
+
+ :param small_camel: The small_camel of this Capitalization. # noqa: E501
+ :type: str
+ """
+
+ self._small_camel = small_camel
+
+ @property
+ def capital_camel(self):
+ """Gets the capital_camel of this Capitalization. # noqa: E501
+
+
+ :return: The capital_camel of this Capitalization. # noqa: E501
+ :rtype: str
+ """
+ return self._capital_camel
+
+ @capital_camel.setter
+ def capital_camel(self, capital_camel):
+ """Sets the capital_camel of this Capitalization.
+
+
+ :param capital_camel: The capital_camel of this Capitalization. # noqa: E501
+ :type: str
+ """
+
+ self._capital_camel = capital_camel
+
+ @property
+ def small_snake(self):
+ """Gets the small_snake of this Capitalization. # noqa: E501
+
+
+ :return: The small_snake of this Capitalization. # noqa: E501
+ :rtype: str
+ """
+ return self._small_snake
+
+ @small_snake.setter
+ def small_snake(self, small_snake):
+ """Sets the small_snake of this Capitalization.
+
+
+ :param small_snake: The small_snake of this Capitalization. # noqa: E501
+ :type: str
+ """
+
+ self._small_snake = small_snake
+
+ @property
+ def capital_snake(self):
+ """Gets the capital_snake of this Capitalization. # noqa: E501
+
+
+ :return: The capital_snake of this Capitalization. # noqa: E501
+ :rtype: str
+ """
+ return self._capital_snake
+
+ @capital_snake.setter
+ def capital_snake(self, capital_snake):
+ """Sets the capital_snake of this Capitalization.
+
+
+ :param capital_snake: The capital_snake of this Capitalization. # noqa: E501
+ :type: str
+ """
+
+ self._capital_snake = capital_snake
+
+ @property
+ def sca_eth_flow_points(self):
+ """Gets the sca_eth_flow_points of this Capitalization. # noqa: E501
+
+
+ :return: The sca_eth_flow_points of this Capitalization. # noqa: E501
+ :rtype: str
+ """
+ return self._sca_eth_flow_points
+
+ @sca_eth_flow_points.setter
+ def sca_eth_flow_points(self, sca_eth_flow_points):
+ """Sets the sca_eth_flow_points of this Capitalization.
+
+
+ :param sca_eth_flow_points: The sca_eth_flow_points of this Capitalization. # noqa: E501
+ :type: str
+ """
+
+ self._sca_eth_flow_points = sca_eth_flow_points
+
+ @property
+ def att_name(self):
+ """Gets the att_name of this Capitalization. # noqa: E501
+
+ Name of the pet # noqa: E501
+
+ :return: The att_name of this Capitalization. # noqa: E501
+ :rtype: str
+ """
+ return self._att_name
+
+ @att_name.setter
+ def att_name(self, att_name):
+ """Sets the att_name of this Capitalization.
+
+ Name of the pet # noqa: E501
+
+ :param att_name: The att_name of this Capitalization. # noqa: E501
+ :type: str
+ """
+
+ self._att_name = att_name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Capitalization):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/cat.py b/samples/client/petstore/python-experimental/petstore_api/models/cat.py
new file mode 100644
index 00000000000..216e5123538
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/cat.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Cat(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'declawed': 'bool'
+ }
+
+ attribute_map = {
+ 'declawed': 'declawed'
+ }
+
+ def __init__(self, declawed=None): # noqa: E501
+ """Cat - a model defined in OpenAPI""" # noqa: E501
+
+ self._declawed = None
+ self.discriminator = None
+
+ if declawed is not None:
+ self.declawed = declawed
+
+ @property
+ def declawed(self):
+ """Gets the declawed of this Cat. # noqa: E501
+
+
+ :return: The declawed of this Cat. # noqa: E501
+ :rtype: bool
+ """
+ return self._declawed
+
+ @declawed.setter
+ def declawed(self, declawed):
+ """Sets the declawed of this Cat.
+
+
+ :param declawed: The declawed of this Cat. # noqa: E501
+ :type: bool
+ """
+
+ self._declawed = declawed
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Cat):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/cat_all_of.py b/samples/client/petstore/python-experimental/petstore_api/models/cat_all_of.py
new file mode 100644
index 00000000000..3c90df84ec3
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/cat_all_of.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class CatAllOf(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'declawed': 'bool'
+ }
+
+ attribute_map = {
+ 'declawed': 'declawed'
+ }
+
+ def __init__(self, declawed=None): # noqa: E501
+ """CatAllOf - a model defined in OpenAPI""" # noqa: E501
+
+ self._declawed = None
+ self.discriminator = None
+
+ if declawed is not None:
+ self.declawed = declawed
+
+ @property
+ def declawed(self):
+ """Gets the declawed of this CatAllOf. # noqa: E501
+
+
+ :return: The declawed of this CatAllOf. # noqa: E501
+ :rtype: bool
+ """
+ return self._declawed
+
+ @declawed.setter
+ def declawed(self, declawed):
+ """Sets the declawed of this CatAllOf.
+
+
+ :param declawed: The declawed of this CatAllOf. # noqa: E501
+ :type: bool
+ """
+
+ self._declawed = declawed
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, CatAllOf):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/category.py b/samples/client/petstore/python-experimental/petstore_api/models/category.py
new file mode 100644
index 00000000000..0e23c409e50
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/category.py
@@ -0,0 +1,139 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Category(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'id': 'int',
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'id': 'id',
+ 'name': 'name'
+ }
+
+ def __init__(self, id=None, name='default-name'): # noqa: E501
+ """Category - a model defined in OpenAPI""" # noqa: E501
+
+ self._id = None
+ self._name = None
+ self.discriminator = None
+
+ if id is not None:
+ self.id = id
+ self.name = name
+
+ @property
+ def id(self):
+ """Gets the id of this Category. # noqa: E501
+
+
+ :return: The id of this Category. # noqa: E501
+ :rtype: int
+ """
+ return self._id
+
+ @id.setter
+ def id(self, id):
+ """Sets the id of this Category.
+
+
+ :param id: The id of this Category. # noqa: E501
+ :type: int
+ """
+
+ self._id = id
+
+ @property
+ def name(self):
+ """Gets the name of this Category. # noqa: E501
+
+
+ :return: The name of this Category. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this Category.
+
+
+ :param name: The name of this Category. # noqa: E501
+ :type: str
+ """
+ if name is None:
+ raise ValueError("Invalid value for `name`, must not be `None`") # noqa: E501
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Category):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/class_model.py b/samples/client/petstore/python-experimental/petstore_api/models/class_model.py
new file mode 100644
index 00000000000..88562beff8b
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/class_model.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class ClassModel(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ '_class': 'str'
+ }
+
+ attribute_map = {
+ '_class': '_class'
+ }
+
+ def __init__(self, _class=None): # noqa: E501
+ """ClassModel - a model defined in OpenAPI""" # noqa: E501
+
+ self.__class = None
+ self.discriminator = None
+
+ if _class is not None:
+ self._class = _class
+
+ @property
+ def _class(self):
+ """Gets the _class of this ClassModel. # noqa: E501
+
+
+ :return: The _class of this ClassModel. # noqa: E501
+ :rtype: str
+ """
+ return self.__class
+
+ @_class.setter
+ def _class(self, _class):
+ """Sets the _class of this ClassModel.
+
+
+ :param _class: The _class of this ClassModel. # noqa: E501
+ :type: str
+ """
+
+ self.__class = _class
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, ClassModel):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/client.py b/samples/client/petstore/python-experimental/petstore_api/models/client.py
new file mode 100644
index 00000000000..b7083fd9bd7
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/client.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Client(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'client': 'str'
+ }
+
+ attribute_map = {
+ 'client': 'client'
+ }
+
+ def __init__(self, client=None): # noqa: E501
+ """Client - a model defined in OpenAPI""" # noqa: E501
+
+ self._client = None
+ self.discriminator = None
+
+ if client is not None:
+ self.client = client
+
+ @property
+ def client(self):
+ """Gets the client of this Client. # noqa: E501
+
+
+ :return: The client of this Client. # noqa: E501
+ :rtype: str
+ """
+ return self._client
+
+ @client.setter
+ def client(self, client):
+ """Sets the client of this Client.
+
+
+ :param client: The client of this Client. # noqa: E501
+ :type: str
+ """
+
+ self._client = client
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Client):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/dog.py b/samples/client/petstore/python-experimental/petstore_api/models/dog.py
new file mode 100644
index 00000000000..c325cb252c3
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/dog.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Dog(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'breed': 'str'
+ }
+
+ attribute_map = {
+ 'breed': 'breed'
+ }
+
+ def __init__(self, breed=None): # noqa: E501
+ """Dog - a model defined in OpenAPI""" # noqa: E501
+
+ self._breed = None
+ self.discriminator = None
+
+ if breed is not None:
+ self.breed = breed
+
+ @property
+ def breed(self):
+ """Gets the breed of this Dog. # noqa: E501
+
+
+ :return: The breed of this Dog. # noqa: E501
+ :rtype: str
+ """
+ return self._breed
+
+ @breed.setter
+ def breed(self, breed):
+ """Sets the breed of this Dog.
+
+
+ :param breed: The breed of this Dog. # noqa: E501
+ :type: str
+ """
+
+ self._breed = breed
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Dog):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/dog_all_of.py b/samples/client/petstore/python-experimental/petstore_api/models/dog_all_of.py
new file mode 100644
index 00000000000..b6328b05589
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/dog_all_of.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class DogAllOf(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'breed': 'str'
+ }
+
+ attribute_map = {
+ 'breed': 'breed'
+ }
+
+ def __init__(self, breed=None): # noqa: E501
+ """DogAllOf - a model defined in OpenAPI""" # noqa: E501
+
+ self._breed = None
+ self.discriminator = None
+
+ if breed is not None:
+ self.breed = breed
+
+ @property
+ def breed(self):
+ """Gets the breed of this DogAllOf. # noqa: E501
+
+
+ :return: The breed of this DogAllOf. # noqa: E501
+ :rtype: str
+ """
+ return self._breed
+
+ @breed.setter
+ def breed(self, breed):
+ """Sets the breed of this DogAllOf.
+
+
+ :param breed: The breed of this DogAllOf. # noqa: E501
+ :type: str
+ """
+
+ self._breed = breed
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, DogAllOf):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/enum_arrays.py b/samples/client/petstore/python-experimental/petstore_api/models/enum_arrays.py
new file mode 100644
index 00000000000..00aa21d04da
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/enum_arrays.py
@@ -0,0 +1,151 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class EnumArrays(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'just_symbol': 'str',
+ 'array_enum': 'list[str]'
+ }
+
+ attribute_map = {
+ 'just_symbol': 'just_symbol',
+ 'array_enum': 'array_enum'
+ }
+
+ def __init__(self, just_symbol=None, array_enum=None): # noqa: E501
+ """EnumArrays - a model defined in OpenAPI""" # noqa: E501
+
+ self._just_symbol = None
+ self._array_enum = None
+ self.discriminator = None
+
+ if just_symbol is not None:
+ self.just_symbol = just_symbol
+ if array_enum is not None:
+ self.array_enum = array_enum
+
+ @property
+ def just_symbol(self):
+ """Gets the just_symbol of this EnumArrays. # noqa: E501
+
+
+ :return: The just_symbol of this EnumArrays. # noqa: E501
+ :rtype: str
+ """
+ return self._just_symbol
+
+ @just_symbol.setter
+ def just_symbol(self, just_symbol):
+ """Sets the just_symbol of this EnumArrays.
+
+
+ :param just_symbol: The just_symbol of this EnumArrays. # noqa: E501
+ :type: str
+ """
+ allowed_values = [">=", "$"] # noqa: E501
+ if just_symbol not in allowed_values:
+ raise ValueError(
+ "Invalid value for `just_symbol` ({0}), must be one of {1}" # noqa: E501
+ .format(just_symbol, allowed_values)
+ )
+
+ self._just_symbol = just_symbol
+
+ @property
+ def array_enum(self):
+ """Gets the array_enum of this EnumArrays. # noqa: E501
+
+
+ :return: The array_enum of this EnumArrays. # noqa: E501
+ :rtype: list[str]
+ """
+ return self._array_enum
+
+ @array_enum.setter
+ def array_enum(self, array_enum):
+ """Sets the array_enum of this EnumArrays.
+
+
+ :param array_enum: The array_enum of this EnumArrays. # noqa: E501
+ :type: list[str]
+ """
+ allowed_values = ["fish", "crab"] # noqa: E501
+ if not set(array_enum).issubset(set(allowed_values)):
+ raise ValueError(
+ "Invalid values for `array_enum` [{0}], must be a subset of [{1}]" # noqa: E501
+ .format(", ".join(map(str, set(array_enum) - set(allowed_values))), # noqa: E501
+ ", ".join(map(str, allowed_values)))
+ )
+
+ self._array_enum = array_enum
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, EnumArrays):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/enum_class.py b/samples/client/petstore/python-experimental/petstore_api/models/enum_class.py
new file mode 100644
index 00000000000..3c1aa279755
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/enum_class.py
@@ -0,0 +1,91 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class EnumClass(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ allowed enum values
+ """
+ _ABC = "_abc"
+ _EFG = "-efg"
+ _XYZ_ = "(xyz)"
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ }
+
+ attribute_map = {
+ }
+
+ def __init__(self): # noqa: E501
+ """EnumClass - a model defined in OpenAPI""" # noqa: E501
+ self.discriminator = None
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, EnumClass):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/enum_test.py b/samples/client/petstore/python-experimental/petstore_api/models/enum_test.py
new file mode 100644
index 00000000000..11e5020363e
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/enum_test.py
@@ -0,0 +1,241 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class EnumTest(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'enum_string': 'str',
+ 'enum_string_required': 'str',
+ 'enum_integer': 'int',
+ 'enum_number': 'float',
+ 'outer_enum': 'OuterEnum'
+ }
+
+ attribute_map = {
+ 'enum_string': 'enum_string',
+ 'enum_string_required': 'enum_string_required',
+ 'enum_integer': 'enum_integer',
+ 'enum_number': 'enum_number',
+ 'outer_enum': 'outerEnum'
+ }
+
+ def __init__(self, enum_string=None, enum_string_required=None, enum_integer=None, enum_number=None, outer_enum=None): # noqa: E501
+ """EnumTest - a model defined in OpenAPI""" # noqa: E501
+
+ self._enum_string = None
+ self._enum_string_required = None
+ self._enum_integer = None
+ self._enum_number = None
+ self._outer_enum = None
+ self.discriminator = None
+
+ if enum_string is not None:
+ self.enum_string = enum_string
+ self.enum_string_required = enum_string_required
+ if enum_integer is not None:
+ self.enum_integer = enum_integer
+ if enum_number is not None:
+ self.enum_number = enum_number
+ if outer_enum is not None:
+ self.outer_enum = outer_enum
+
+ @property
+ def enum_string(self):
+ """Gets the enum_string of this EnumTest. # noqa: E501
+
+
+ :return: The enum_string of this EnumTest. # noqa: E501
+ :rtype: str
+ """
+ return self._enum_string
+
+ @enum_string.setter
+ def enum_string(self, enum_string):
+ """Sets the enum_string of this EnumTest.
+
+
+ :param enum_string: The enum_string of this EnumTest. # noqa: E501
+ :type: str
+ """
+ allowed_values = ["UPPER", "lower", ""] # noqa: E501
+ if enum_string not in allowed_values:
+ raise ValueError(
+ "Invalid value for `enum_string` ({0}), must be one of {1}" # noqa: E501
+ .format(enum_string, allowed_values)
+ )
+
+ self._enum_string = enum_string
+
+ @property
+ def enum_string_required(self):
+ """Gets the enum_string_required of this EnumTest. # noqa: E501
+
+
+ :return: The enum_string_required of this EnumTest. # noqa: E501
+ :rtype: str
+ """
+ return self._enum_string_required
+
+ @enum_string_required.setter
+ def enum_string_required(self, enum_string_required):
+ """Sets the enum_string_required of this EnumTest.
+
+
+ :param enum_string_required: The enum_string_required of this EnumTest. # noqa: E501
+ :type: str
+ """
+ if enum_string_required is None:
+ raise ValueError("Invalid value for `enum_string_required`, must not be `None`") # noqa: E501
+ allowed_values = ["UPPER", "lower", ""] # noqa: E501
+ if enum_string_required not in allowed_values:
+ raise ValueError(
+ "Invalid value for `enum_string_required` ({0}), must be one of {1}" # noqa: E501
+ .format(enum_string_required, allowed_values)
+ )
+
+ self._enum_string_required = enum_string_required
+
+ @property
+ def enum_integer(self):
+ """Gets the enum_integer of this EnumTest. # noqa: E501
+
+
+ :return: The enum_integer of this EnumTest. # noqa: E501
+ :rtype: int
+ """
+ return self._enum_integer
+
+ @enum_integer.setter
+ def enum_integer(self, enum_integer):
+ """Sets the enum_integer of this EnumTest.
+
+
+ :param enum_integer: The enum_integer of this EnumTest. # noqa: E501
+ :type: int
+ """
+ allowed_values = [1, -1] # noqa: E501
+ if enum_integer not in allowed_values:
+ raise ValueError(
+ "Invalid value for `enum_integer` ({0}), must be one of {1}" # noqa: E501
+ .format(enum_integer, allowed_values)
+ )
+
+ self._enum_integer = enum_integer
+
+ @property
+ def enum_number(self):
+ """Gets the enum_number of this EnumTest. # noqa: E501
+
+
+ :return: The enum_number of this EnumTest. # noqa: E501
+ :rtype: float
+ """
+ return self._enum_number
+
+ @enum_number.setter
+ def enum_number(self, enum_number):
+ """Sets the enum_number of this EnumTest.
+
+
+ :param enum_number: The enum_number of this EnumTest. # noqa: E501
+ :type: float
+ """
+ allowed_values = [1.1, -1.2] # noqa: E501
+ if enum_number not in allowed_values:
+ raise ValueError(
+ "Invalid value for `enum_number` ({0}), must be one of {1}" # noqa: E501
+ .format(enum_number, allowed_values)
+ )
+
+ self._enum_number = enum_number
+
+ @property
+ def outer_enum(self):
+ """Gets the outer_enum of this EnumTest. # noqa: E501
+
+
+ :return: The outer_enum of this EnumTest. # noqa: E501
+ :rtype: OuterEnum
+ """
+ return self._outer_enum
+
+ @outer_enum.setter
+ def outer_enum(self, outer_enum):
+ """Sets the outer_enum of this EnumTest.
+
+
+ :param outer_enum: The outer_enum of this EnumTest. # noqa: E501
+ :type: OuterEnum
+ """
+
+ self._outer_enum = outer_enum
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, EnumTest):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/file.py b/samples/client/petstore/python-experimental/petstore_api/models/file.py
new file mode 100644
index 00000000000..475f86b799f
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/file.py
@@ -0,0 +1,114 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class File(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'source_uri': 'str'
+ }
+
+ attribute_map = {
+ 'source_uri': 'sourceURI'
+ }
+
+ def __init__(self, source_uri=None): # noqa: E501
+ """File - a model defined in OpenAPI""" # noqa: E501
+
+ self._source_uri = None
+ self.discriminator = None
+
+ if source_uri is not None:
+ self.source_uri = source_uri
+
+ @property
+ def source_uri(self):
+ """Gets the source_uri of this File. # noqa: E501
+
+ Test capitalization # noqa: E501
+
+ :return: The source_uri of this File. # noqa: E501
+ :rtype: str
+ """
+ return self._source_uri
+
+ @source_uri.setter
+ def source_uri(self, source_uri):
+ """Sets the source_uri of this File.
+
+ Test capitalization # noqa: E501
+
+ :param source_uri: The source_uri of this File. # noqa: E501
+ :type: str
+ """
+
+ self._source_uri = source_uri
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, File):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/file_schema_test_class.py b/samples/client/petstore/python-experimental/petstore_api/models/file_schema_test_class.py
new file mode 100644
index 00000000000..9f3b5bdc179
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/file_schema_test_class.py
@@ -0,0 +1,138 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class FileSchemaTestClass(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'file': 'File',
+ 'files': 'list[File]'
+ }
+
+ attribute_map = {
+ 'file': 'file',
+ 'files': 'files'
+ }
+
+ def __init__(self, file=None, files=None): # noqa: E501
+ """FileSchemaTestClass - a model defined in OpenAPI""" # noqa: E501
+
+ self._file = None
+ self._files = None
+ self.discriminator = None
+
+ if file is not None:
+ self.file = file
+ if files is not None:
+ self.files = files
+
+ @property
+ def file(self):
+ """Gets the file of this FileSchemaTestClass. # noqa: E501
+
+
+ :return: The file of this FileSchemaTestClass. # noqa: E501
+ :rtype: File
+ """
+ return self._file
+
+ @file.setter
+ def file(self, file):
+ """Sets the file of this FileSchemaTestClass.
+
+
+ :param file: The file of this FileSchemaTestClass. # noqa: E501
+ :type: File
+ """
+
+ self._file = file
+
+ @property
+ def files(self):
+ """Gets the files of this FileSchemaTestClass. # noqa: E501
+
+
+ :return: The files of this FileSchemaTestClass. # noqa: E501
+ :rtype: list[File]
+ """
+ return self._files
+
+ @files.setter
+ def files(self, files):
+ """Sets the files of this FileSchemaTestClass.
+
+
+ :param files: The files of this FileSchemaTestClass. # noqa: E501
+ :type: list[File]
+ """
+
+ self._files = files
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, FileSchemaTestClass):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/format_test.py b/samples/client/petstore/python-experimental/petstore_api/models/format_test.py
new file mode 100644
index 00000000000..c27d6394dbe
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/format_test.py
@@ -0,0 +1,456 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class FormatTest(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'integer': 'int',
+ 'int32': 'int',
+ 'int64': 'int',
+ 'number': 'float',
+ 'float': 'float',
+ 'double': 'float',
+ 'string': 'str',
+ 'byte': 'str',
+ 'binary': 'file',
+ 'date': 'date',
+ 'date_time': 'datetime',
+ 'uuid': 'str',
+ 'password': 'str'
+ }
+
+ attribute_map = {
+ 'integer': 'integer',
+ 'int32': 'int32',
+ 'int64': 'int64',
+ 'number': 'number',
+ 'float': 'float',
+ 'double': 'double',
+ 'string': 'string',
+ 'byte': 'byte',
+ 'binary': 'binary',
+ 'date': 'date',
+ 'date_time': 'dateTime',
+ 'uuid': 'uuid',
+ 'password': 'password'
+ }
+
+ def __init__(self, integer=None, int32=None, int64=None, number=None, float=None, double=None, string=None, byte=None, binary=None, date=None, date_time=None, uuid=None, password=None): # noqa: E501
+ """FormatTest - a model defined in OpenAPI""" # noqa: E501
+
+ self._integer = None
+ self._int32 = None
+ self._int64 = None
+ self._number = None
+ self._float = None
+ self._double = None
+ self._string = None
+ self._byte = None
+ self._binary = None
+ self._date = None
+ self._date_time = None
+ self._uuid = None
+ self._password = None
+ self.discriminator = None
+
+ if integer is not None:
+ self.integer = integer
+ if int32 is not None:
+ self.int32 = int32
+ if int64 is not None:
+ self.int64 = int64
+ self.number = number
+ if float is not None:
+ self.float = float
+ if double is not None:
+ self.double = double
+ if string is not None:
+ self.string = string
+ self.byte = byte
+ if binary is not None:
+ self.binary = binary
+ self.date = date
+ if date_time is not None:
+ self.date_time = date_time
+ if uuid is not None:
+ self.uuid = uuid
+ self.password = password
+
+ @property
+ def integer(self):
+ """Gets the integer of this FormatTest. # noqa: E501
+
+
+ :return: The integer of this FormatTest. # noqa: E501
+ :rtype: int
+ """
+ return self._integer
+
+ @integer.setter
+ def integer(self, integer):
+ """Sets the integer of this FormatTest.
+
+
+ :param integer: The integer of this FormatTest. # noqa: E501
+ :type: int
+ """
+ if integer is not None and integer > 100: # noqa: E501
+ raise ValueError("Invalid value for `integer`, must be a value less than or equal to `100`") # noqa: E501
+ if integer is not None and integer < 10: # noqa: E501
+ raise ValueError("Invalid value for `integer`, must be a value greater than or equal to `10`") # noqa: E501
+
+ self._integer = integer
+
+ @property
+ def int32(self):
+ """Gets the int32 of this FormatTest. # noqa: E501
+
+
+ :return: The int32 of this FormatTest. # noqa: E501
+ :rtype: int
+ """
+ return self._int32
+
+ @int32.setter
+ def int32(self, int32):
+ """Sets the int32 of this FormatTest.
+
+
+ :param int32: The int32 of this FormatTest. # noqa: E501
+ :type: int
+ """
+ if int32 is not None and int32 > 200: # noqa: E501
+ raise ValueError("Invalid value for `int32`, must be a value less than or equal to `200`") # noqa: E501
+ if int32 is not None and int32 < 20: # noqa: E501
+ raise ValueError("Invalid value for `int32`, must be a value greater than or equal to `20`") # noqa: E501
+
+ self._int32 = int32
+
+ @property
+ def int64(self):
+ """Gets the int64 of this FormatTest. # noqa: E501
+
+
+ :return: The int64 of this FormatTest. # noqa: E501
+ :rtype: int
+ """
+ return self._int64
+
+ @int64.setter
+ def int64(self, int64):
+ """Sets the int64 of this FormatTest.
+
+
+ :param int64: The int64 of this FormatTest. # noqa: E501
+ :type: int
+ """
+
+ self._int64 = int64
+
+ @property
+ def number(self):
+ """Gets the number of this FormatTest. # noqa: E501
+
+
+ :return: The number of this FormatTest. # noqa: E501
+ :rtype: float
+ """
+ return self._number
+
+ @number.setter
+ def number(self, number):
+ """Sets the number of this FormatTest.
+
+
+ :param number: The number of this FormatTest. # noqa: E501
+ :type: float
+ """
+ if number is None:
+ raise ValueError("Invalid value for `number`, must not be `None`") # noqa: E501
+ if number is not None and number > 543.2: # noqa: E501
+ raise ValueError("Invalid value for `number`, must be a value less than or equal to `543.2`") # noqa: E501
+ if number is not None and number < 32.1: # noqa: E501
+ raise ValueError("Invalid value for `number`, must be a value greater than or equal to `32.1`") # noqa: E501
+
+ self._number = number
+
+ @property
+ def float(self):
+ """Gets the float of this FormatTest. # noqa: E501
+
+
+ :return: The float of this FormatTest. # noqa: E501
+ :rtype: float
+ """
+ return self._float
+
+ @float.setter
+ def float(self, float):
+ """Sets the float of this FormatTest.
+
+
+ :param float: The float of this FormatTest. # noqa: E501
+ :type: float
+ """
+ if float is not None and float > 987.6: # noqa: E501
+ raise ValueError("Invalid value for `float`, must be a value less than or equal to `987.6`") # noqa: E501
+ if float is not None and float < 54.3: # noqa: E501
+ raise ValueError("Invalid value for `float`, must be a value greater than or equal to `54.3`") # noqa: E501
+
+ self._float = float
+
+ @property
+ def double(self):
+ """Gets the double of this FormatTest. # noqa: E501
+
+
+ :return: The double of this FormatTest. # noqa: E501
+ :rtype: float
+ """
+ return self._double
+
+ @double.setter
+ def double(self, double):
+ """Sets the double of this FormatTest.
+
+
+ :param double: The double of this FormatTest. # noqa: E501
+ :type: float
+ """
+ if double is not None and double > 123.4: # noqa: E501
+ raise ValueError("Invalid value for `double`, must be a value less than or equal to `123.4`") # noqa: E501
+ if double is not None and double < 67.8: # noqa: E501
+ raise ValueError("Invalid value for `double`, must be a value greater than or equal to `67.8`") # noqa: E501
+
+ self._double = double
+
+ @property
+ def string(self):
+ """Gets the string of this FormatTest. # noqa: E501
+
+
+ :return: The string of this FormatTest. # noqa: E501
+ :rtype: str
+ """
+ return self._string
+
+ @string.setter
+ def string(self, string):
+ """Sets the string of this FormatTest.
+
+
+ :param string: The string of this FormatTest. # noqa: E501
+ :type: str
+ """
+ if string is not None and not re.search(r'[a-z]', string, flags=re.IGNORECASE): # noqa: E501
+ raise ValueError(r"Invalid value for `string`, must be a follow pattern or equal to `/[a-z]/i`") # noqa: E501
+
+ self._string = string
+
+ @property
+ def byte(self):
+ """Gets the byte of this FormatTest. # noqa: E501
+
+
+ :return: The byte of this FormatTest. # noqa: E501
+ :rtype: str
+ """
+ return self._byte
+
+ @byte.setter
+ def byte(self, byte):
+ """Sets the byte of this FormatTest.
+
+
+ :param byte: The byte of this FormatTest. # noqa: E501
+ :type: str
+ """
+ if byte is None:
+ raise ValueError("Invalid value for `byte`, must not be `None`") # noqa: E501
+ if byte is not None and not re.search(r'^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$', byte): # noqa: E501
+ raise ValueError(r"Invalid value for `byte`, must be a follow pattern or equal to `/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/`") # noqa: E501
+
+ self._byte = byte
+
+ @property
+ def binary(self):
+ """Gets the binary of this FormatTest. # noqa: E501
+
+
+ :return: The binary of this FormatTest. # noqa: E501
+ :rtype: file
+ """
+ return self._binary
+
+ @binary.setter
+ def binary(self, binary):
+ """Sets the binary of this FormatTest.
+
+
+ :param binary: The binary of this FormatTest. # noqa: E501
+ :type: file
+ """
+
+ self._binary = binary
+
+ @property
+ def date(self):
+ """Gets the date of this FormatTest. # noqa: E501
+
+
+ :return: The date of this FormatTest. # noqa: E501
+ :rtype: date
+ """
+ return self._date
+
+ @date.setter
+ def date(self, date):
+ """Sets the date of this FormatTest.
+
+
+ :param date: The date of this FormatTest. # noqa: E501
+ :type: date
+ """
+ if date is None:
+ raise ValueError("Invalid value for `date`, must not be `None`") # noqa: E501
+
+ self._date = date
+
+ @property
+ def date_time(self):
+ """Gets the date_time of this FormatTest. # noqa: E501
+
+
+ :return: The date_time of this FormatTest. # noqa: E501
+ :rtype: datetime
+ """
+ return self._date_time
+
+ @date_time.setter
+ def date_time(self, date_time):
+ """Sets the date_time of this FormatTest.
+
+
+ :param date_time: The date_time of this FormatTest. # noqa: E501
+ :type: datetime
+ """
+
+ self._date_time = date_time
+
+ @property
+ def uuid(self):
+ """Gets the uuid of this FormatTest. # noqa: E501
+
+
+ :return: The uuid of this FormatTest. # noqa: E501
+ :rtype: str
+ """
+ return self._uuid
+
+ @uuid.setter
+ def uuid(self, uuid):
+ """Sets the uuid of this FormatTest.
+
+
+ :param uuid: The uuid of this FormatTest. # noqa: E501
+ :type: str
+ """
+
+ self._uuid = uuid
+
+ @property
+ def password(self):
+ """Gets the password of this FormatTest. # noqa: E501
+
+
+ :return: The password of this FormatTest. # noqa: E501
+ :rtype: str
+ """
+ return self._password
+
+ @password.setter
+ def password(self, password):
+ """Sets the password of this FormatTest.
+
+
+ :param password: The password of this FormatTest. # noqa: E501
+ :type: str
+ """
+ if password is None:
+ raise ValueError("Invalid value for `password`, must not be `None`") # noqa: E501
+ if password is not None and len(password) > 64:
+ raise ValueError("Invalid value for `password`, length must be less than or equal to `64`") # noqa: E501
+ if password is not None and len(password) < 10:
+ raise ValueError("Invalid value for `password`, length must be greater than or equal to `10`") # noqa: E501
+
+ self._password = password
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, FormatTest):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/has_only_read_only.py b/samples/client/petstore/python-experimental/petstore_api/models/has_only_read_only.py
new file mode 100644
index 00000000000..7c8d921a2d8
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/has_only_read_only.py
@@ -0,0 +1,138 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class HasOnlyReadOnly(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'bar': 'str',
+ 'foo': 'str'
+ }
+
+ attribute_map = {
+ 'bar': 'bar',
+ 'foo': 'foo'
+ }
+
+ def __init__(self, bar=None, foo=None): # noqa: E501
+ """HasOnlyReadOnly - a model defined in OpenAPI""" # noqa: E501
+
+ self._bar = None
+ self._foo = None
+ self.discriminator = None
+
+ if bar is not None:
+ self.bar = bar
+ if foo is not None:
+ self.foo = foo
+
+ @property
+ def bar(self):
+ """Gets the bar of this HasOnlyReadOnly. # noqa: E501
+
+
+ :return: The bar of this HasOnlyReadOnly. # noqa: E501
+ :rtype: str
+ """
+ return self._bar
+
+ @bar.setter
+ def bar(self, bar):
+ """Sets the bar of this HasOnlyReadOnly.
+
+
+ :param bar: The bar of this HasOnlyReadOnly. # noqa: E501
+ :type: str
+ """
+
+ self._bar = bar
+
+ @property
+ def foo(self):
+ """Gets the foo of this HasOnlyReadOnly. # noqa: E501
+
+
+ :return: The foo of this HasOnlyReadOnly. # noqa: E501
+ :rtype: str
+ """
+ return self._foo
+
+ @foo.setter
+ def foo(self, foo):
+ """Sets the foo of this HasOnlyReadOnly.
+
+
+ :param foo: The foo of this HasOnlyReadOnly. # noqa: E501
+ :type: str
+ """
+
+ self._foo = foo
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, HasOnlyReadOnly):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/list.py b/samples/client/petstore/python-experimental/petstore_api/models/list.py
new file mode 100644
index 00000000000..74fc3719aa0
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/list.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class List(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ '_123_list': 'str'
+ }
+
+ attribute_map = {
+ '_123_list': '123-list'
+ }
+
+ def __init__(self, _123_list=None): # noqa: E501
+ """List - a model defined in OpenAPI""" # noqa: E501
+
+ self.__123_list = None
+ self.discriminator = None
+
+ if _123_list is not None:
+ self._123_list = _123_list
+
+ @property
+ def _123_list(self):
+ """Gets the _123_list of this List. # noqa: E501
+
+
+ :return: The _123_list of this List. # noqa: E501
+ :rtype: str
+ """
+ return self.__123_list
+
+ @_123_list.setter
+ def _123_list(self, _123_list):
+ """Sets the _123_list of this List.
+
+
+ :param _123_list: The _123_list of this List. # noqa: E501
+ :type: str
+ """
+
+ self.__123_list = _123_list
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, List):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/map_test.py b/samples/client/petstore/python-experimental/petstore_api/models/map_test.py
new file mode 100644
index 00000000000..cdfb9365297
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/map_test.py
@@ -0,0 +1,197 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class MapTest(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'map_map_of_string': 'dict(str, dict(str, str))',
+ 'map_of_enum_string': 'dict(str, str)',
+ 'direct_map': 'dict(str, bool)',
+ 'indirect_map': 'dict(str, bool)'
+ }
+
+ attribute_map = {
+ 'map_map_of_string': 'map_map_of_string',
+ 'map_of_enum_string': 'map_of_enum_string',
+ 'direct_map': 'direct_map',
+ 'indirect_map': 'indirect_map'
+ }
+
+ def __init__(self, map_map_of_string=None, map_of_enum_string=None, direct_map=None, indirect_map=None): # noqa: E501
+ """MapTest - a model defined in OpenAPI""" # noqa: E501
+
+ self._map_map_of_string = None
+ self._map_of_enum_string = None
+ self._direct_map = None
+ self._indirect_map = None
+ self.discriminator = None
+
+ if map_map_of_string is not None:
+ self.map_map_of_string = map_map_of_string
+ if map_of_enum_string is not None:
+ self.map_of_enum_string = map_of_enum_string
+ if direct_map is not None:
+ self.direct_map = direct_map
+ if indirect_map is not None:
+ self.indirect_map = indirect_map
+
+ @property
+ def map_map_of_string(self):
+ """Gets the map_map_of_string of this MapTest. # noqa: E501
+
+
+ :return: The map_map_of_string of this MapTest. # noqa: E501
+ :rtype: dict(str, dict(str, str))
+ """
+ return self._map_map_of_string
+
+ @map_map_of_string.setter
+ def map_map_of_string(self, map_map_of_string):
+ """Sets the map_map_of_string of this MapTest.
+
+
+ :param map_map_of_string: The map_map_of_string of this MapTest. # noqa: E501
+ :type: dict(str, dict(str, str))
+ """
+
+ self._map_map_of_string = map_map_of_string
+
+ @property
+ def map_of_enum_string(self):
+ """Gets the map_of_enum_string of this MapTest. # noqa: E501
+
+
+ :return: The map_of_enum_string of this MapTest. # noqa: E501
+ :rtype: dict(str, str)
+ """
+ return self._map_of_enum_string
+
+ @map_of_enum_string.setter
+ def map_of_enum_string(self, map_of_enum_string):
+ """Sets the map_of_enum_string of this MapTest.
+
+
+ :param map_of_enum_string: The map_of_enum_string of this MapTest. # noqa: E501
+ :type: dict(str, str)
+ """
+ allowed_values = ["UPPER", "lower"] # noqa: E501
+ if not set(map_of_enum_string.keys()).issubset(set(allowed_values)):
+ raise ValueError(
+ "Invalid keys in `map_of_enum_string` [{0}], must be a subset of [{1}]" # noqa: E501
+ .format(", ".join(map(str, set(map_of_enum_string.keys()) - set(allowed_values))), # noqa: E501
+ ", ".join(map(str, allowed_values)))
+ )
+
+ self._map_of_enum_string = map_of_enum_string
+
+ @property
+ def direct_map(self):
+ """Gets the direct_map of this MapTest. # noqa: E501
+
+
+ :return: The direct_map of this MapTest. # noqa: E501
+ :rtype: dict(str, bool)
+ """
+ return self._direct_map
+
+ @direct_map.setter
+ def direct_map(self, direct_map):
+ """Sets the direct_map of this MapTest.
+
+
+ :param direct_map: The direct_map of this MapTest. # noqa: E501
+ :type: dict(str, bool)
+ """
+
+ self._direct_map = direct_map
+
+ @property
+ def indirect_map(self):
+ """Gets the indirect_map of this MapTest. # noqa: E501
+
+
+ :return: The indirect_map of this MapTest. # noqa: E501
+ :rtype: dict(str, bool)
+ """
+ return self._indirect_map
+
+ @indirect_map.setter
+ def indirect_map(self, indirect_map):
+ """Sets the indirect_map of this MapTest.
+
+
+ :param indirect_map: The indirect_map of this MapTest. # noqa: E501
+ :type: dict(str, bool)
+ """
+
+ self._indirect_map = indirect_map
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, MapTest):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/mixed_properties_and_additional_properties_class.py b/samples/client/petstore/python-experimental/petstore_api/models/mixed_properties_and_additional_properties_class.py
new file mode 100644
index 00000000000..41a916eac10
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/mixed_properties_and_additional_properties_class.py
@@ -0,0 +1,164 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class MixedPropertiesAndAdditionalPropertiesClass(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'uuid': 'str',
+ 'date_time': 'datetime',
+ 'map': 'dict(str, Animal)'
+ }
+
+ attribute_map = {
+ 'uuid': 'uuid',
+ 'date_time': 'dateTime',
+ 'map': 'map'
+ }
+
+ def __init__(self, uuid=None, date_time=None, map=None): # noqa: E501
+ """MixedPropertiesAndAdditionalPropertiesClass - a model defined in OpenAPI""" # noqa: E501
+
+ self._uuid = None
+ self._date_time = None
+ self._map = None
+ self.discriminator = None
+
+ if uuid is not None:
+ self.uuid = uuid
+ if date_time is not None:
+ self.date_time = date_time
+ if map is not None:
+ self.map = map
+
+ @property
+ def uuid(self):
+ """Gets the uuid of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The uuid of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+ :rtype: str
+ """
+ return self._uuid
+
+ @uuid.setter
+ def uuid(self, uuid):
+ """Sets the uuid of this MixedPropertiesAndAdditionalPropertiesClass.
+
+
+ :param uuid: The uuid of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+ :type: str
+ """
+
+ self._uuid = uuid
+
+ @property
+ def date_time(self):
+ """Gets the date_time of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The date_time of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+ :rtype: datetime
+ """
+ return self._date_time
+
+ @date_time.setter
+ def date_time(self, date_time):
+ """Sets the date_time of this MixedPropertiesAndAdditionalPropertiesClass.
+
+
+ :param date_time: The date_time of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+ :type: datetime
+ """
+
+ self._date_time = date_time
+
+ @property
+ def map(self):
+ """Gets the map of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+
+
+ :return: The map of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+ :rtype: dict(str, Animal)
+ """
+ return self._map
+
+ @map.setter
+ def map(self, map):
+ """Sets the map of this MixedPropertiesAndAdditionalPropertiesClass.
+
+
+ :param map: The map of this MixedPropertiesAndAdditionalPropertiesClass. # noqa: E501
+ :type: dict(str, Animal)
+ """
+
+ self._map = map
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, MixedPropertiesAndAdditionalPropertiesClass):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/model200_response.py b/samples/client/petstore/python-experimental/petstore_api/models/model200_response.py
new file mode 100644
index 00000000000..563b82b5939
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/model200_response.py
@@ -0,0 +1,138 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Model200Response(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'int',
+ '_class': 'str'
+ }
+
+ attribute_map = {
+ 'name': 'name',
+ '_class': 'class'
+ }
+
+ def __init__(self, name=None, _class=None): # noqa: E501
+ """Model200Response - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self.__class = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+ if _class is not None:
+ self._class = _class
+
+ @property
+ def name(self):
+ """Gets the name of this Model200Response. # noqa: E501
+
+
+ :return: The name of this Model200Response. # noqa: E501
+ :rtype: int
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this Model200Response.
+
+
+ :param name: The name of this Model200Response. # noqa: E501
+ :type: int
+ """
+
+ self._name = name
+
+ @property
+ def _class(self):
+ """Gets the _class of this Model200Response. # noqa: E501
+
+
+ :return: The _class of this Model200Response. # noqa: E501
+ :rtype: str
+ """
+ return self.__class
+
+ @_class.setter
+ def _class(self, _class):
+ """Sets the _class of this Model200Response.
+
+
+ :param _class: The _class of this Model200Response. # noqa: E501
+ :type: str
+ """
+
+ self.__class = _class
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Model200Response):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/model_return.py b/samples/client/petstore/python-experimental/petstore_api/models/model_return.py
new file mode 100644
index 00000000000..09801201598
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/model_return.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class ModelReturn(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ '_return': 'int'
+ }
+
+ attribute_map = {
+ '_return': 'return'
+ }
+
+ def __init__(self, _return=None): # noqa: E501
+ """ModelReturn - a model defined in OpenAPI""" # noqa: E501
+
+ self.__return = None
+ self.discriminator = None
+
+ if _return is not None:
+ self._return = _return
+
+ @property
+ def _return(self):
+ """Gets the _return of this ModelReturn. # noqa: E501
+
+
+ :return: The _return of this ModelReturn. # noqa: E501
+ :rtype: int
+ """
+ return self.__return
+
+ @_return.setter
+ def _return(self, _return):
+ """Sets the _return of this ModelReturn.
+
+
+ :param _return: The _return of this ModelReturn. # noqa: E501
+ :type: int
+ """
+
+ self.__return = _return
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, ModelReturn):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/name.py b/samples/client/petstore/python-experimental/petstore_api/models/name.py
new file mode 100644
index 00000000000..43014d0fb64
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/name.py
@@ -0,0 +1,191 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Name(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'name': 'int',
+ 'snake_case': 'int',
+ '_property': 'str',
+ '_123_number': 'int'
+ }
+
+ attribute_map = {
+ 'name': 'name',
+ 'snake_case': 'snake_case',
+ '_property': 'property',
+ '_123_number': '123Number'
+ }
+
+ def __init__(self, name=None, snake_case=None, _property=None, _123_number=None): # noqa: E501
+ """Name - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self._snake_case = None
+ self.__property = None
+ self.__123_number = None
+ self.discriminator = None
+
+ self.name = name
+ if snake_case is not None:
+ self.snake_case = snake_case
+ if _property is not None:
+ self._property = _property
+ if _123_number is not None:
+ self._123_number = _123_number
+
+ @property
+ def name(self):
+ """Gets the name of this Name. # noqa: E501
+
+
+ :return: The name of this Name. # noqa: E501
+ :rtype: int
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this Name.
+
+
+ :param name: The name of this Name. # noqa: E501
+ :type: int
+ """
+ if name is None:
+ raise ValueError("Invalid value for `name`, must not be `None`") # noqa: E501
+
+ self._name = name
+
+ @property
+ def snake_case(self):
+ """Gets the snake_case of this Name. # noqa: E501
+
+
+ :return: The snake_case of this Name. # noqa: E501
+ :rtype: int
+ """
+ return self._snake_case
+
+ @snake_case.setter
+ def snake_case(self, snake_case):
+ """Sets the snake_case of this Name.
+
+
+ :param snake_case: The snake_case of this Name. # noqa: E501
+ :type: int
+ """
+
+ self._snake_case = snake_case
+
+ @property
+ def _property(self):
+ """Gets the _property of this Name. # noqa: E501
+
+
+ :return: The _property of this Name. # noqa: E501
+ :rtype: str
+ """
+ return self.__property
+
+ @_property.setter
+ def _property(self, _property):
+ """Sets the _property of this Name.
+
+
+ :param _property: The _property of this Name. # noqa: E501
+ :type: str
+ """
+
+ self.__property = _property
+
+ @property
+ def _123_number(self):
+ """Gets the _123_number of this Name. # noqa: E501
+
+
+ :return: The _123_number of this Name. # noqa: E501
+ :rtype: int
+ """
+ return self.__123_number
+
+ @_123_number.setter
+ def _123_number(self, _123_number):
+ """Sets the _123_number of this Name.
+
+
+ :param _123_number: The _123_number of this Name. # noqa: E501
+ :type: int
+ """
+
+ self.__123_number = _123_number
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Name):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/number_only.py b/samples/client/petstore/python-experimental/petstore_api/models/number_only.py
new file mode 100644
index 00000000000..b6f3d1c1b65
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/number_only.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class NumberOnly(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'just_number': 'float'
+ }
+
+ attribute_map = {
+ 'just_number': 'JustNumber'
+ }
+
+ def __init__(self, just_number=None): # noqa: E501
+ """NumberOnly - a model defined in OpenAPI""" # noqa: E501
+
+ self._just_number = None
+ self.discriminator = None
+
+ if just_number is not None:
+ self.just_number = just_number
+
+ @property
+ def just_number(self):
+ """Gets the just_number of this NumberOnly. # noqa: E501
+
+
+ :return: The just_number of this NumberOnly. # noqa: E501
+ :rtype: float
+ """
+ return self._just_number
+
+ @just_number.setter
+ def just_number(self, just_number):
+ """Sets the just_number of this NumberOnly.
+
+
+ :param just_number: The just_number of this NumberOnly. # noqa: E501
+ :type: float
+ """
+
+ self._just_number = just_number
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, NumberOnly):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/order.py b/samples/client/petstore/python-experimental/petstore_api/models/order.py
new file mode 100644
index 00000000000..8b64e3a3583
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/order.py
@@ -0,0 +1,250 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Order(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'id': 'int',
+ 'pet_id': 'int',
+ 'quantity': 'int',
+ 'ship_date': 'datetime',
+ 'status': 'str',
+ 'complete': 'bool'
+ }
+
+ attribute_map = {
+ 'id': 'id',
+ 'pet_id': 'petId',
+ 'quantity': 'quantity',
+ 'ship_date': 'shipDate',
+ 'status': 'status',
+ 'complete': 'complete'
+ }
+
+ def __init__(self, id=None, pet_id=None, quantity=None, ship_date=None, status=None, complete=False): # noqa: E501
+ """Order - a model defined in OpenAPI""" # noqa: E501
+
+ self._id = None
+ self._pet_id = None
+ self._quantity = None
+ self._ship_date = None
+ self._status = None
+ self._complete = None
+ self.discriminator = None
+
+ if id is not None:
+ self.id = id
+ if pet_id is not None:
+ self.pet_id = pet_id
+ if quantity is not None:
+ self.quantity = quantity
+ if ship_date is not None:
+ self.ship_date = ship_date
+ if status is not None:
+ self.status = status
+ if complete is not None:
+ self.complete = complete
+
+ @property
+ def id(self):
+ """Gets the id of this Order. # noqa: E501
+
+
+ :return: The id of this Order. # noqa: E501
+ :rtype: int
+ """
+ return self._id
+
+ @id.setter
+ def id(self, id):
+ """Sets the id of this Order.
+
+
+ :param id: The id of this Order. # noqa: E501
+ :type: int
+ """
+
+ self._id = id
+
+ @property
+ def pet_id(self):
+ """Gets the pet_id of this Order. # noqa: E501
+
+
+ :return: The pet_id of this Order. # noqa: E501
+ :rtype: int
+ """
+ return self._pet_id
+
+ @pet_id.setter
+ def pet_id(self, pet_id):
+ """Sets the pet_id of this Order.
+
+
+ :param pet_id: The pet_id of this Order. # noqa: E501
+ :type: int
+ """
+
+ self._pet_id = pet_id
+
+ @property
+ def quantity(self):
+ """Gets the quantity of this Order. # noqa: E501
+
+
+ :return: The quantity of this Order. # noqa: E501
+ :rtype: int
+ """
+ return self._quantity
+
+ @quantity.setter
+ def quantity(self, quantity):
+ """Sets the quantity of this Order.
+
+
+ :param quantity: The quantity of this Order. # noqa: E501
+ :type: int
+ """
+
+ self._quantity = quantity
+
+ @property
+ def ship_date(self):
+ """Gets the ship_date of this Order. # noqa: E501
+
+
+ :return: The ship_date of this Order. # noqa: E501
+ :rtype: datetime
+ """
+ return self._ship_date
+
+ @ship_date.setter
+ def ship_date(self, ship_date):
+ """Sets the ship_date of this Order.
+
+
+ :param ship_date: The ship_date of this Order. # noqa: E501
+ :type: datetime
+ """
+
+ self._ship_date = ship_date
+
+ @property
+ def status(self):
+ """Gets the status of this Order. # noqa: E501
+
+ Order Status # noqa: E501
+
+ :return: The status of this Order. # noqa: E501
+ :rtype: str
+ """
+ return self._status
+
+ @status.setter
+ def status(self, status):
+ """Sets the status of this Order.
+
+ Order Status # noqa: E501
+
+ :param status: The status of this Order. # noqa: E501
+ :type: str
+ """
+ allowed_values = ["placed", "approved", "delivered"] # noqa: E501
+ if status not in allowed_values:
+ raise ValueError(
+ "Invalid value for `status` ({0}), must be one of {1}" # noqa: E501
+ .format(status, allowed_values)
+ )
+
+ self._status = status
+
+ @property
+ def complete(self):
+ """Gets the complete of this Order. # noqa: E501
+
+
+ :return: The complete of this Order. # noqa: E501
+ :rtype: bool
+ """
+ return self._complete
+
+ @complete.setter
+ def complete(self, complete):
+ """Sets the complete of this Order.
+
+
+ :param complete: The complete of this Order. # noqa: E501
+ :type: bool
+ """
+
+ self._complete = complete
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Order):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/outer_composite.py b/samples/client/petstore/python-experimental/petstore_api/models/outer_composite.py
new file mode 100644
index 00000000000..dccd67055be
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/outer_composite.py
@@ -0,0 +1,164 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class OuterComposite(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'my_number': 'float',
+ 'my_string': 'str',
+ 'my_boolean': 'bool'
+ }
+
+ attribute_map = {
+ 'my_number': 'my_number',
+ 'my_string': 'my_string',
+ 'my_boolean': 'my_boolean'
+ }
+
+ def __init__(self, my_number=None, my_string=None, my_boolean=None): # noqa: E501
+ """OuterComposite - a model defined in OpenAPI""" # noqa: E501
+
+ self._my_number = None
+ self._my_string = None
+ self._my_boolean = None
+ self.discriminator = None
+
+ if my_number is not None:
+ self.my_number = my_number
+ if my_string is not None:
+ self.my_string = my_string
+ if my_boolean is not None:
+ self.my_boolean = my_boolean
+
+ @property
+ def my_number(self):
+ """Gets the my_number of this OuterComposite. # noqa: E501
+
+
+ :return: The my_number of this OuterComposite. # noqa: E501
+ :rtype: float
+ """
+ return self._my_number
+
+ @my_number.setter
+ def my_number(self, my_number):
+ """Sets the my_number of this OuterComposite.
+
+
+ :param my_number: The my_number of this OuterComposite. # noqa: E501
+ :type: float
+ """
+
+ self._my_number = my_number
+
+ @property
+ def my_string(self):
+ """Gets the my_string of this OuterComposite. # noqa: E501
+
+
+ :return: The my_string of this OuterComposite. # noqa: E501
+ :rtype: str
+ """
+ return self._my_string
+
+ @my_string.setter
+ def my_string(self, my_string):
+ """Sets the my_string of this OuterComposite.
+
+
+ :param my_string: The my_string of this OuterComposite. # noqa: E501
+ :type: str
+ """
+
+ self._my_string = my_string
+
+ @property
+ def my_boolean(self):
+ """Gets the my_boolean of this OuterComposite. # noqa: E501
+
+
+ :return: The my_boolean of this OuterComposite. # noqa: E501
+ :rtype: bool
+ """
+ return self._my_boolean
+
+ @my_boolean.setter
+ def my_boolean(self, my_boolean):
+ """Sets the my_boolean of this OuterComposite.
+
+
+ :param my_boolean: The my_boolean of this OuterComposite. # noqa: E501
+ :type: bool
+ """
+
+ self._my_boolean = my_boolean
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, OuterComposite):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/outer_enum.py b/samples/client/petstore/python-experimental/petstore_api/models/outer_enum.py
new file mode 100644
index 00000000000..a6697a0b152
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/outer_enum.py
@@ -0,0 +1,91 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class OuterEnum(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ allowed enum values
+ """
+ PLACED = "placed"
+ APPROVED = "approved"
+ DELIVERED = "delivered"
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ }
+
+ attribute_map = {
+ }
+
+ def __init__(self): # noqa: E501
+ """OuterEnum - a model defined in OpenAPI""" # noqa: E501
+ self.discriminator = None
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, OuterEnum):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/pet.py b/samples/client/petstore/python-experimental/petstore_api/models/pet.py
new file mode 100644
index 00000000000..870608e17ac
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/pet.py
@@ -0,0 +1,252 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Pet(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'id': 'int',
+ 'category': 'Category',
+ 'name': 'str',
+ 'photo_urls': 'list[str]',
+ 'tags': 'list[Tag]',
+ 'status': 'str'
+ }
+
+ attribute_map = {
+ 'id': 'id',
+ 'category': 'category',
+ 'name': 'name',
+ 'photo_urls': 'photoUrls',
+ 'tags': 'tags',
+ 'status': 'status'
+ }
+
+ def __init__(self, id=None, category=None, name=None, photo_urls=None, tags=None, status=None): # noqa: E501
+ """Pet - a model defined in OpenAPI""" # noqa: E501
+
+ self._id = None
+ self._category = None
+ self._name = None
+ self._photo_urls = None
+ self._tags = None
+ self._status = None
+ self.discriminator = None
+
+ if id is not None:
+ self.id = id
+ if category is not None:
+ self.category = category
+ self.name = name
+ self.photo_urls = photo_urls
+ if tags is not None:
+ self.tags = tags
+ if status is not None:
+ self.status = status
+
+ @property
+ def id(self):
+ """Gets the id of this Pet. # noqa: E501
+
+
+ :return: The id of this Pet. # noqa: E501
+ :rtype: int
+ """
+ return self._id
+
+ @id.setter
+ def id(self, id):
+ """Sets the id of this Pet.
+
+
+ :param id: The id of this Pet. # noqa: E501
+ :type: int
+ """
+
+ self._id = id
+
+ @property
+ def category(self):
+ """Gets the category of this Pet. # noqa: E501
+
+
+ :return: The category of this Pet. # noqa: E501
+ :rtype: Category
+ """
+ return self._category
+
+ @category.setter
+ def category(self, category):
+ """Sets the category of this Pet.
+
+
+ :param category: The category of this Pet. # noqa: E501
+ :type: Category
+ """
+
+ self._category = category
+
+ @property
+ def name(self):
+ """Gets the name of this Pet. # noqa: E501
+
+
+ :return: The name of this Pet. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this Pet.
+
+
+ :param name: The name of this Pet. # noqa: E501
+ :type: str
+ """
+ if name is None:
+ raise ValueError("Invalid value for `name`, must not be `None`") # noqa: E501
+
+ self._name = name
+
+ @property
+ def photo_urls(self):
+ """Gets the photo_urls of this Pet. # noqa: E501
+
+
+ :return: The photo_urls of this Pet. # noqa: E501
+ :rtype: list[str]
+ """
+ return self._photo_urls
+
+ @photo_urls.setter
+ def photo_urls(self, photo_urls):
+ """Sets the photo_urls of this Pet.
+
+
+ :param photo_urls: The photo_urls of this Pet. # noqa: E501
+ :type: list[str]
+ """
+ if photo_urls is None:
+ raise ValueError("Invalid value for `photo_urls`, must not be `None`") # noqa: E501
+
+ self._photo_urls = photo_urls
+
+ @property
+ def tags(self):
+ """Gets the tags of this Pet. # noqa: E501
+
+
+ :return: The tags of this Pet. # noqa: E501
+ :rtype: list[Tag]
+ """
+ return self._tags
+
+ @tags.setter
+ def tags(self, tags):
+ """Sets the tags of this Pet.
+
+
+ :param tags: The tags of this Pet. # noqa: E501
+ :type: list[Tag]
+ """
+
+ self._tags = tags
+
+ @property
+ def status(self):
+ """Gets the status of this Pet. # noqa: E501
+
+ pet status in the store # noqa: E501
+
+ :return: The status of this Pet. # noqa: E501
+ :rtype: str
+ """
+ return self._status
+
+ @status.setter
+ def status(self, status):
+ """Sets the status of this Pet.
+
+ pet status in the store # noqa: E501
+
+ :param status: The status of this Pet. # noqa: E501
+ :type: str
+ """
+ allowed_values = ["available", "pending", "sold"] # noqa: E501
+ if status not in allowed_values:
+ raise ValueError(
+ "Invalid value for `status` ({0}), must be one of {1}" # noqa: E501
+ .format(status, allowed_values)
+ )
+
+ self._status = status
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Pet):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/read_only_first.py b/samples/client/petstore/python-experimental/petstore_api/models/read_only_first.py
new file mode 100644
index 00000000000..3dfb7c7f626
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/read_only_first.py
@@ -0,0 +1,138 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class ReadOnlyFirst(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'bar': 'str',
+ 'baz': 'str'
+ }
+
+ attribute_map = {
+ 'bar': 'bar',
+ 'baz': 'baz'
+ }
+
+ def __init__(self, bar=None, baz=None): # noqa: E501
+ """ReadOnlyFirst - a model defined in OpenAPI""" # noqa: E501
+
+ self._bar = None
+ self._baz = None
+ self.discriminator = None
+
+ if bar is not None:
+ self.bar = bar
+ if baz is not None:
+ self.baz = baz
+
+ @property
+ def bar(self):
+ """Gets the bar of this ReadOnlyFirst. # noqa: E501
+
+
+ :return: The bar of this ReadOnlyFirst. # noqa: E501
+ :rtype: str
+ """
+ return self._bar
+
+ @bar.setter
+ def bar(self, bar):
+ """Sets the bar of this ReadOnlyFirst.
+
+
+ :param bar: The bar of this ReadOnlyFirst. # noqa: E501
+ :type: str
+ """
+
+ self._bar = bar
+
+ @property
+ def baz(self):
+ """Gets the baz of this ReadOnlyFirst. # noqa: E501
+
+
+ :return: The baz of this ReadOnlyFirst. # noqa: E501
+ :rtype: str
+ """
+ return self._baz
+
+ @baz.setter
+ def baz(self, baz):
+ """Sets the baz of this ReadOnlyFirst.
+
+
+ :param baz: The baz of this ReadOnlyFirst. # noqa: E501
+ :type: str
+ """
+
+ self._baz = baz
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, ReadOnlyFirst):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/special_model_name.py b/samples/client/petstore/python-experimental/petstore_api/models/special_model_name.py
new file mode 100644
index 00000000000..2fd6378fcdc
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/special_model_name.py
@@ -0,0 +1,112 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class SpecialModelName(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'special_property_name': 'int'
+ }
+
+ attribute_map = {
+ 'special_property_name': '$special[property.name]'
+ }
+
+ def __init__(self, special_property_name=None): # noqa: E501
+ """SpecialModelName - a model defined in OpenAPI""" # noqa: E501
+
+ self._special_property_name = None
+ self.discriminator = None
+
+ if special_property_name is not None:
+ self.special_property_name = special_property_name
+
+ @property
+ def special_property_name(self):
+ """Gets the special_property_name of this SpecialModelName. # noqa: E501
+
+
+ :return: The special_property_name of this SpecialModelName. # noqa: E501
+ :rtype: int
+ """
+ return self._special_property_name
+
+ @special_property_name.setter
+ def special_property_name(self, special_property_name):
+ """Sets the special_property_name of this SpecialModelName.
+
+
+ :param special_property_name: The special_property_name of this SpecialModelName. # noqa: E501
+ :type: int
+ """
+
+ self._special_property_name = special_property_name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, SpecialModelName):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/tag.py b/samples/client/petstore/python-experimental/petstore_api/models/tag.py
new file mode 100644
index 00000000000..cb9c22d9f53
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/tag.py
@@ -0,0 +1,138 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class Tag(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'id': 'int',
+ 'name': 'str'
+ }
+
+ attribute_map = {
+ 'id': 'id',
+ 'name': 'name'
+ }
+
+ def __init__(self, id=None, name=None): # noqa: E501
+ """Tag - a model defined in OpenAPI""" # noqa: E501
+
+ self._id = None
+ self._name = None
+ self.discriminator = None
+
+ if id is not None:
+ self.id = id
+ if name is not None:
+ self.name = name
+
+ @property
+ def id(self):
+ """Gets the id of this Tag. # noqa: E501
+
+
+ :return: The id of this Tag. # noqa: E501
+ :rtype: int
+ """
+ return self._id
+
+ @id.setter
+ def id(self, id):
+ """Sets the id of this Tag.
+
+
+ :param id: The id of this Tag. # noqa: E501
+ :type: int
+ """
+
+ self._id = id
+
+ @property
+ def name(self):
+ """Gets the name of this Tag. # noqa: E501
+
+
+ :return: The name of this Tag. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this Tag.
+
+
+ :param name: The name of this Tag. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, Tag):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/type_holder_default.py b/samples/client/petstore/python-experimental/petstore_api/models/type_holder_default.py
new file mode 100644
index 00000000000..d7c207cb5f6
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/type_holder_default.py
@@ -0,0 +1,221 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class TypeHolderDefault(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'string_item': 'str',
+ 'number_item': 'float',
+ 'integer_item': 'int',
+ 'bool_item': 'bool',
+ 'array_item': 'list[int]'
+ }
+
+ attribute_map = {
+ 'string_item': 'string_item',
+ 'number_item': 'number_item',
+ 'integer_item': 'integer_item',
+ 'bool_item': 'bool_item',
+ 'array_item': 'array_item'
+ }
+
+ def __init__(self, string_item='what', number_item=None, integer_item=None, bool_item=True, array_item=None): # noqa: E501
+ """TypeHolderDefault - a model defined in OpenAPI""" # noqa: E501
+
+ self._string_item = None
+ self._number_item = None
+ self._integer_item = None
+ self._bool_item = None
+ self._array_item = None
+ self.discriminator = None
+
+ self.string_item = string_item
+ self.number_item = number_item
+ self.integer_item = integer_item
+ self.bool_item = bool_item
+ self.array_item = array_item
+
+ @property
+ def string_item(self):
+ """Gets the string_item of this TypeHolderDefault. # noqa: E501
+
+
+ :return: The string_item of this TypeHolderDefault. # noqa: E501
+ :rtype: str
+ """
+ return self._string_item
+
+ @string_item.setter
+ def string_item(self, string_item):
+ """Sets the string_item of this TypeHolderDefault.
+
+
+ :param string_item: The string_item of this TypeHolderDefault. # noqa: E501
+ :type: str
+ """
+ if string_item is None:
+ raise ValueError("Invalid value for `string_item`, must not be `None`") # noqa: E501
+
+ self._string_item = string_item
+
+ @property
+ def number_item(self):
+ """Gets the number_item of this TypeHolderDefault. # noqa: E501
+
+
+ :return: The number_item of this TypeHolderDefault. # noqa: E501
+ :rtype: float
+ """
+ return self._number_item
+
+ @number_item.setter
+ def number_item(self, number_item):
+ """Sets the number_item of this TypeHolderDefault.
+
+
+ :param number_item: The number_item of this TypeHolderDefault. # noqa: E501
+ :type: float
+ """
+ if number_item is None:
+ raise ValueError("Invalid value for `number_item`, must not be `None`") # noqa: E501
+
+ self._number_item = number_item
+
+ @property
+ def integer_item(self):
+ """Gets the integer_item of this TypeHolderDefault. # noqa: E501
+
+
+ :return: The integer_item of this TypeHolderDefault. # noqa: E501
+ :rtype: int
+ """
+ return self._integer_item
+
+ @integer_item.setter
+ def integer_item(self, integer_item):
+ """Sets the integer_item of this TypeHolderDefault.
+
+
+ :param integer_item: The integer_item of this TypeHolderDefault. # noqa: E501
+ :type: int
+ """
+ if integer_item is None:
+ raise ValueError("Invalid value for `integer_item`, must not be `None`") # noqa: E501
+
+ self._integer_item = integer_item
+
+ @property
+ def bool_item(self):
+ """Gets the bool_item of this TypeHolderDefault. # noqa: E501
+
+
+ :return: The bool_item of this TypeHolderDefault. # noqa: E501
+ :rtype: bool
+ """
+ return self._bool_item
+
+ @bool_item.setter
+ def bool_item(self, bool_item):
+ """Sets the bool_item of this TypeHolderDefault.
+
+
+ :param bool_item: The bool_item of this TypeHolderDefault. # noqa: E501
+ :type: bool
+ """
+ if bool_item is None:
+ raise ValueError("Invalid value for `bool_item`, must not be `None`") # noqa: E501
+
+ self._bool_item = bool_item
+
+ @property
+ def array_item(self):
+ """Gets the array_item of this TypeHolderDefault. # noqa: E501
+
+
+ :return: The array_item of this TypeHolderDefault. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._array_item
+
+ @array_item.setter
+ def array_item(self, array_item):
+ """Sets the array_item of this TypeHolderDefault.
+
+
+ :param array_item: The array_item of this TypeHolderDefault. # noqa: E501
+ :type: list[int]
+ """
+ if array_item is None:
+ raise ValueError("Invalid value for `array_item`, must not be `None`") # noqa: E501
+
+ self._array_item = array_item
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, TypeHolderDefault):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/type_holder_example.py b/samples/client/petstore/python-experimental/petstore_api/models/type_holder_example.py
new file mode 100644
index 00000000000..8f2b5d6b7d3
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/type_holder_example.py
@@ -0,0 +1,221 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class TypeHolderExample(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'string_item': 'str',
+ 'number_item': 'float',
+ 'integer_item': 'int',
+ 'bool_item': 'bool',
+ 'array_item': 'list[int]'
+ }
+
+ attribute_map = {
+ 'string_item': 'string_item',
+ 'number_item': 'number_item',
+ 'integer_item': 'integer_item',
+ 'bool_item': 'bool_item',
+ 'array_item': 'array_item'
+ }
+
+ def __init__(self, string_item=None, number_item=None, integer_item=None, bool_item=None, array_item=None): # noqa: E501
+ """TypeHolderExample - a model defined in OpenAPI""" # noqa: E501
+
+ self._string_item = None
+ self._number_item = None
+ self._integer_item = None
+ self._bool_item = None
+ self._array_item = None
+ self.discriminator = None
+
+ self.string_item = string_item
+ self.number_item = number_item
+ self.integer_item = integer_item
+ self.bool_item = bool_item
+ self.array_item = array_item
+
+ @property
+ def string_item(self):
+ """Gets the string_item of this TypeHolderExample. # noqa: E501
+
+
+ :return: The string_item of this TypeHolderExample. # noqa: E501
+ :rtype: str
+ """
+ return self._string_item
+
+ @string_item.setter
+ def string_item(self, string_item):
+ """Sets the string_item of this TypeHolderExample.
+
+
+ :param string_item: The string_item of this TypeHolderExample. # noqa: E501
+ :type: str
+ """
+ if string_item is None:
+ raise ValueError("Invalid value for `string_item`, must not be `None`") # noqa: E501
+
+ self._string_item = string_item
+
+ @property
+ def number_item(self):
+ """Gets the number_item of this TypeHolderExample. # noqa: E501
+
+
+ :return: The number_item of this TypeHolderExample. # noqa: E501
+ :rtype: float
+ """
+ return self._number_item
+
+ @number_item.setter
+ def number_item(self, number_item):
+ """Sets the number_item of this TypeHolderExample.
+
+
+ :param number_item: The number_item of this TypeHolderExample. # noqa: E501
+ :type: float
+ """
+ if number_item is None:
+ raise ValueError("Invalid value for `number_item`, must not be `None`") # noqa: E501
+
+ self._number_item = number_item
+
+ @property
+ def integer_item(self):
+ """Gets the integer_item of this TypeHolderExample. # noqa: E501
+
+
+ :return: The integer_item of this TypeHolderExample. # noqa: E501
+ :rtype: int
+ """
+ return self._integer_item
+
+ @integer_item.setter
+ def integer_item(self, integer_item):
+ """Sets the integer_item of this TypeHolderExample.
+
+
+ :param integer_item: The integer_item of this TypeHolderExample. # noqa: E501
+ :type: int
+ """
+ if integer_item is None:
+ raise ValueError("Invalid value for `integer_item`, must not be `None`") # noqa: E501
+
+ self._integer_item = integer_item
+
+ @property
+ def bool_item(self):
+ """Gets the bool_item of this TypeHolderExample. # noqa: E501
+
+
+ :return: The bool_item of this TypeHolderExample. # noqa: E501
+ :rtype: bool
+ """
+ return self._bool_item
+
+ @bool_item.setter
+ def bool_item(self, bool_item):
+ """Sets the bool_item of this TypeHolderExample.
+
+
+ :param bool_item: The bool_item of this TypeHolderExample. # noqa: E501
+ :type: bool
+ """
+ if bool_item is None:
+ raise ValueError("Invalid value for `bool_item`, must not be `None`") # noqa: E501
+
+ self._bool_item = bool_item
+
+ @property
+ def array_item(self):
+ """Gets the array_item of this TypeHolderExample. # noqa: E501
+
+
+ :return: The array_item of this TypeHolderExample. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._array_item
+
+ @array_item.setter
+ def array_item(self, array_item):
+ """Sets the array_item of this TypeHolderExample.
+
+
+ :param array_item: The array_item of this TypeHolderExample. # noqa: E501
+ :type: list[int]
+ """
+ if array_item is None:
+ raise ValueError("Invalid value for `array_item`, must not be `None`") # noqa: E501
+
+ self._array_item = array_item
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, TypeHolderExample):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/user.py b/samples/client/petstore/python-experimental/petstore_api/models/user.py
new file mode 100644
index 00000000000..f46f5165dfd
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/user.py
@@ -0,0 +1,296 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class User(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'id': 'int',
+ 'username': 'str',
+ 'first_name': 'str',
+ 'last_name': 'str',
+ 'email': 'str',
+ 'password': 'str',
+ 'phone': 'str',
+ 'user_status': 'int'
+ }
+
+ attribute_map = {
+ 'id': 'id',
+ 'username': 'username',
+ 'first_name': 'firstName',
+ 'last_name': 'lastName',
+ 'email': 'email',
+ 'password': 'password',
+ 'phone': 'phone',
+ 'user_status': 'userStatus'
+ }
+
+ def __init__(self, id=None, username=None, first_name=None, last_name=None, email=None, password=None, phone=None, user_status=None): # noqa: E501
+ """User - a model defined in OpenAPI""" # noqa: E501
+
+ self._id = None
+ self._username = None
+ self._first_name = None
+ self._last_name = None
+ self._email = None
+ self._password = None
+ self._phone = None
+ self._user_status = None
+ self.discriminator = None
+
+ if id is not None:
+ self.id = id
+ if username is not None:
+ self.username = username
+ if first_name is not None:
+ self.first_name = first_name
+ if last_name is not None:
+ self.last_name = last_name
+ if email is not None:
+ self.email = email
+ if password is not None:
+ self.password = password
+ if phone is not None:
+ self.phone = phone
+ if user_status is not None:
+ self.user_status = user_status
+
+ @property
+ def id(self):
+ """Gets the id of this User. # noqa: E501
+
+
+ :return: The id of this User. # noqa: E501
+ :rtype: int
+ """
+ return self._id
+
+ @id.setter
+ def id(self, id):
+ """Sets the id of this User.
+
+
+ :param id: The id of this User. # noqa: E501
+ :type: int
+ """
+
+ self._id = id
+
+ @property
+ def username(self):
+ """Gets the username of this User. # noqa: E501
+
+
+ :return: The username of this User. # noqa: E501
+ :rtype: str
+ """
+ return self._username
+
+ @username.setter
+ def username(self, username):
+ """Sets the username of this User.
+
+
+ :param username: The username of this User. # noqa: E501
+ :type: str
+ """
+
+ self._username = username
+
+ @property
+ def first_name(self):
+ """Gets the first_name of this User. # noqa: E501
+
+
+ :return: The first_name of this User. # noqa: E501
+ :rtype: str
+ """
+ return self._first_name
+
+ @first_name.setter
+ def first_name(self, first_name):
+ """Sets the first_name of this User.
+
+
+ :param first_name: The first_name of this User. # noqa: E501
+ :type: str
+ """
+
+ self._first_name = first_name
+
+ @property
+ def last_name(self):
+ """Gets the last_name of this User. # noqa: E501
+
+
+ :return: The last_name of this User. # noqa: E501
+ :rtype: str
+ """
+ return self._last_name
+
+ @last_name.setter
+ def last_name(self, last_name):
+ """Sets the last_name of this User.
+
+
+ :param last_name: The last_name of this User. # noqa: E501
+ :type: str
+ """
+
+ self._last_name = last_name
+
+ @property
+ def email(self):
+ """Gets the email of this User. # noqa: E501
+
+
+ :return: The email of this User. # noqa: E501
+ :rtype: str
+ """
+ return self._email
+
+ @email.setter
+ def email(self, email):
+ """Sets the email of this User.
+
+
+ :param email: The email of this User. # noqa: E501
+ :type: str
+ """
+
+ self._email = email
+
+ @property
+ def password(self):
+ """Gets the password of this User. # noqa: E501
+
+
+ :return: The password of this User. # noqa: E501
+ :rtype: str
+ """
+ return self._password
+
+ @password.setter
+ def password(self, password):
+ """Sets the password of this User.
+
+
+ :param password: The password of this User. # noqa: E501
+ :type: str
+ """
+
+ self._password = password
+
+ @property
+ def phone(self):
+ """Gets the phone of this User. # noqa: E501
+
+
+ :return: The phone of this User. # noqa: E501
+ :rtype: str
+ """
+ return self._phone
+
+ @phone.setter
+ def phone(self, phone):
+ """Sets the phone of this User.
+
+
+ :param phone: The phone of this User. # noqa: E501
+ :type: str
+ """
+
+ self._phone = phone
+
+ @property
+ def user_status(self):
+ """Gets the user_status of this User. # noqa: E501
+
+ User Status # noqa: E501
+
+ :return: The user_status of this User. # noqa: E501
+ :rtype: int
+ """
+ return self._user_status
+
+ @user_status.setter
+ def user_status(self, user_status):
+ """Sets the user_status of this User.
+
+ User Status # noqa: E501
+
+ :param user_status: The user_status of this User. # noqa: E501
+ :type: int
+ """
+
+ self._user_status = user_status
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, User):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/xml_item.py b/samples/client/petstore/python-experimental/petstore_api/models/xml_item.py
new file mode 100644
index 00000000000..eaceeb5ef45
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/models/xml_item.py
@@ -0,0 +1,840 @@
+# 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 pprint
+import re # noqa: F401
+
+import six
+
+
+class XmlItem(object):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ 'attribute_string': 'str',
+ 'attribute_number': 'float',
+ 'attribute_integer': 'int',
+ 'attribute_boolean': 'bool',
+ 'wrapped_array': 'list[int]',
+ 'name_string': 'str',
+ 'name_number': 'float',
+ 'name_integer': 'int',
+ 'name_boolean': 'bool',
+ 'name_array': 'list[int]',
+ 'name_wrapped_array': 'list[int]',
+ 'prefix_string': 'str',
+ 'prefix_number': 'float',
+ 'prefix_integer': 'int',
+ 'prefix_boolean': 'bool',
+ 'prefix_array': 'list[int]',
+ 'prefix_wrapped_array': 'list[int]',
+ 'namespace_string': 'str',
+ 'namespace_number': 'float',
+ 'namespace_integer': 'int',
+ 'namespace_boolean': 'bool',
+ 'namespace_array': 'list[int]',
+ 'namespace_wrapped_array': 'list[int]',
+ 'prefix_ns_string': 'str',
+ 'prefix_ns_number': 'float',
+ 'prefix_ns_integer': 'int',
+ 'prefix_ns_boolean': 'bool',
+ 'prefix_ns_array': 'list[int]',
+ 'prefix_ns_wrapped_array': 'list[int]'
+ }
+
+ attribute_map = {
+ 'attribute_string': 'attribute_string',
+ 'attribute_number': 'attribute_number',
+ 'attribute_integer': 'attribute_integer',
+ 'attribute_boolean': 'attribute_boolean',
+ 'wrapped_array': 'wrapped_array',
+ 'name_string': 'name_string',
+ 'name_number': 'name_number',
+ 'name_integer': 'name_integer',
+ 'name_boolean': 'name_boolean',
+ 'name_array': 'name_array',
+ 'name_wrapped_array': 'name_wrapped_array',
+ 'prefix_string': 'prefix_string',
+ 'prefix_number': 'prefix_number',
+ 'prefix_integer': 'prefix_integer',
+ 'prefix_boolean': 'prefix_boolean',
+ 'prefix_array': 'prefix_array',
+ 'prefix_wrapped_array': 'prefix_wrapped_array',
+ 'namespace_string': 'namespace_string',
+ 'namespace_number': 'namespace_number',
+ 'namespace_integer': 'namespace_integer',
+ 'namespace_boolean': 'namespace_boolean',
+ 'namespace_array': 'namespace_array',
+ 'namespace_wrapped_array': 'namespace_wrapped_array',
+ 'prefix_ns_string': 'prefix_ns_string',
+ 'prefix_ns_number': 'prefix_ns_number',
+ 'prefix_ns_integer': 'prefix_ns_integer',
+ 'prefix_ns_boolean': 'prefix_ns_boolean',
+ 'prefix_ns_array': 'prefix_ns_array',
+ 'prefix_ns_wrapped_array': 'prefix_ns_wrapped_array'
+ }
+
+ def __init__(self, attribute_string=None, attribute_number=None, attribute_integer=None, attribute_boolean=None, wrapped_array=None, name_string=None, name_number=None, name_integer=None, name_boolean=None, name_array=None, name_wrapped_array=None, prefix_string=None, prefix_number=None, prefix_integer=None, prefix_boolean=None, prefix_array=None, prefix_wrapped_array=None, namespace_string=None, namespace_number=None, namespace_integer=None, namespace_boolean=None, namespace_array=None, namespace_wrapped_array=None, prefix_ns_string=None, prefix_ns_number=None, prefix_ns_integer=None, prefix_ns_boolean=None, prefix_ns_array=None, prefix_ns_wrapped_array=None): # noqa: E501
+ """XmlItem - a model defined in OpenAPI""" # noqa: E501
+
+ self._attribute_string = None
+ self._attribute_number = None
+ self._attribute_integer = None
+ self._attribute_boolean = None
+ self._wrapped_array = None
+ self._name_string = None
+ self._name_number = None
+ self._name_integer = None
+ self._name_boolean = None
+ self._name_array = None
+ self._name_wrapped_array = None
+ self._prefix_string = None
+ self._prefix_number = None
+ self._prefix_integer = None
+ self._prefix_boolean = None
+ self._prefix_array = None
+ self._prefix_wrapped_array = None
+ self._namespace_string = None
+ self._namespace_number = None
+ self._namespace_integer = None
+ self._namespace_boolean = None
+ self._namespace_array = None
+ self._namespace_wrapped_array = None
+ self._prefix_ns_string = None
+ self._prefix_ns_number = None
+ self._prefix_ns_integer = None
+ self._prefix_ns_boolean = None
+ self._prefix_ns_array = None
+ self._prefix_ns_wrapped_array = None
+ self.discriminator = None
+
+ if attribute_string is not None:
+ self.attribute_string = attribute_string
+ if attribute_number is not None:
+ self.attribute_number = attribute_number
+ if attribute_integer is not None:
+ self.attribute_integer = attribute_integer
+ if attribute_boolean is not None:
+ self.attribute_boolean = attribute_boolean
+ if wrapped_array is not None:
+ self.wrapped_array = wrapped_array
+ if name_string is not None:
+ self.name_string = name_string
+ if name_number is not None:
+ self.name_number = name_number
+ if name_integer is not None:
+ self.name_integer = name_integer
+ if name_boolean is not None:
+ self.name_boolean = name_boolean
+ if name_array is not None:
+ self.name_array = name_array
+ if name_wrapped_array is not None:
+ self.name_wrapped_array = name_wrapped_array
+ if prefix_string is not None:
+ self.prefix_string = prefix_string
+ if prefix_number is not None:
+ self.prefix_number = prefix_number
+ if prefix_integer is not None:
+ self.prefix_integer = prefix_integer
+ if prefix_boolean is not None:
+ self.prefix_boolean = prefix_boolean
+ if prefix_array is not None:
+ self.prefix_array = prefix_array
+ if prefix_wrapped_array is not None:
+ self.prefix_wrapped_array = prefix_wrapped_array
+ if namespace_string is not None:
+ self.namespace_string = namespace_string
+ if namespace_number is not None:
+ self.namespace_number = namespace_number
+ if namespace_integer is not None:
+ self.namespace_integer = namespace_integer
+ if namespace_boolean is not None:
+ self.namespace_boolean = namespace_boolean
+ if namespace_array is not None:
+ self.namespace_array = namespace_array
+ if namespace_wrapped_array is not None:
+ self.namespace_wrapped_array = namespace_wrapped_array
+ if prefix_ns_string is not None:
+ self.prefix_ns_string = prefix_ns_string
+ if prefix_ns_number is not None:
+ self.prefix_ns_number = prefix_ns_number
+ if prefix_ns_integer is not None:
+ self.prefix_ns_integer = prefix_ns_integer
+ if prefix_ns_boolean is not None:
+ self.prefix_ns_boolean = prefix_ns_boolean
+ if prefix_ns_array is not None:
+ self.prefix_ns_array = prefix_ns_array
+ if prefix_ns_wrapped_array is not None:
+ self.prefix_ns_wrapped_array = prefix_ns_wrapped_array
+
+ @property
+ def attribute_string(self):
+ """Gets the attribute_string of this XmlItem. # noqa: E501
+
+
+ :return: The attribute_string of this XmlItem. # noqa: E501
+ :rtype: str
+ """
+ return self._attribute_string
+
+ @attribute_string.setter
+ def attribute_string(self, attribute_string):
+ """Sets the attribute_string of this XmlItem.
+
+
+ :param attribute_string: The attribute_string of this XmlItem. # noqa: E501
+ :type: str
+ """
+
+ self._attribute_string = attribute_string
+
+ @property
+ def attribute_number(self):
+ """Gets the attribute_number of this XmlItem. # noqa: E501
+
+
+ :return: The attribute_number of this XmlItem. # noqa: E501
+ :rtype: float
+ """
+ return self._attribute_number
+
+ @attribute_number.setter
+ def attribute_number(self, attribute_number):
+ """Sets the attribute_number of this XmlItem.
+
+
+ :param attribute_number: The attribute_number of this XmlItem. # noqa: E501
+ :type: float
+ """
+
+ self._attribute_number = attribute_number
+
+ @property
+ def attribute_integer(self):
+ """Gets the attribute_integer of this XmlItem. # noqa: E501
+
+
+ :return: The attribute_integer of this XmlItem. # noqa: E501
+ :rtype: int
+ """
+ return self._attribute_integer
+
+ @attribute_integer.setter
+ def attribute_integer(self, attribute_integer):
+ """Sets the attribute_integer of this XmlItem.
+
+
+ :param attribute_integer: The attribute_integer of this XmlItem. # noqa: E501
+ :type: int
+ """
+
+ self._attribute_integer = attribute_integer
+
+ @property
+ def attribute_boolean(self):
+ """Gets the attribute_boolean of this XmlItem. # noqa: E501
+
+
+ :return: The attribute_boolean of this XmlItem. # noqa: E501
+ :rtype: bool
+ """
+ return self._attribute_boolean
+
+ @attribute_boolean.setter
+ def attribute_boolean(self, attribute_boolean):
+ """Sets the attribute_boolean of this XmlItem.
+
+
+ :param attribute_boolean: The attribute_boolean of this XmlItem. # noqa: E501
+ :type: bool
+ """
+
+ self._attribute_boolean = attribute_boolean
+
+ @property
+ def wrapped_array(self):
+ """Gets the wrapped_array of this XmlItem. # noqa: E501
+
+
+ :return: The wrapped_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._wrapped_array
+
+ @wrapped_array.setter
+ def wrapped_array(self, wrapped_array):
+ """Sets the wrapped_array of this XmlItem.
+
+
+ :param wrapped_array: The wrapped_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._wrapped_array = wrapped_array
+
+ @property
+ def name_string(self):
+ """Gets the name_string of this XmlItem. # noqa: E501
+
+
+ :return: The name_string of this XmlItem. # noqa: E501
+ :rtype: str
+ """
+ return self._name_string
+
+ @name_string.setter
+ def name_string(self, name_string):
+ """Sets the name_string of this XmlItem.
+
+
+ :param name_string: The name_string of this XmlItem. # noqa: E501
+ :type: str
+ """
+
+ self._name_string = name_string
+
+ @property
+ def name_number(self):
+ """Gets the name_number of this XmlItem. # noqa: E501
+
+
+ :return: The name_number of this XmlItem. # noqa: E501
+ :rtype: float
+ """
+ return self._name_number
+
+ @name_number.setter
+ def name_number(self, name_number):
+ """Sets the name_number of this XmlItem.
+
+
+ :param name_number: The name_number of this XmlItem. # noqa: E501
+ :type: float
+ """
+
+ self._name_number = name_number
+
+ @property
+ def name_integer(self):
+ """Gets the name_integer of this XmlItem. # noqa: E501
+
+
+ :return: The name_integer of this XmlItem. # noqa: E501
+ :rtype: int
+ """
+ return self._name_integer
+
+ @name_integer.setter
+ def name_integer(self, name_integer):
+ """Sets the name_integer of this XmlItem.
+
+
+ :param name_integer: The name_integer of this XmlItem. # noqa: E501
+ :type: int
+ """
+
+ self._name_integer = name_integer
+
+ @property
+ def name_boolean(self):
+ """Gets the name_boolean of this XmlItem. # noqa: E501
+
+
+ :return: The name_boolean of this XmlItem. # noqa: E501
+ :rtype: bool
+ """
+ return self._name_boolean
+
+ @name_boolean.setter
+ def name_boolean(self, name_boolean):
+ """Sets the name_boolean of this XmlItem.
+
+
+ :param name_boolean: The name_boolean of this XmlItem. # noqa: E501
+ :type: bool
+ """
+
+ self._name_boolean = name_boolean
+
+ @property
+ def name_array(self):
+ """Gets the name_array of this XmlItem. # noqa: E501
+
+
+ :return: The name_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._name_array
+
+ @name_array.setter
+ def name_array(self, name_array):
+ """Sets the name_array of this XmlItem.
+
+
+ :param name_array: The name_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._name_array = name_array
+
+ @property
+ def name_wrapped_array(self):
+ """Gets the name_wrapped_array of this XmlItem. # noqa: E501
+
+
+ :return: The name_wrapped_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._name_wrapped_array
+
+ @name_wrapped_array.setter
+ def name_wrapped_array(self, name_wrapped_array):
+ """Sets the name_wrapped_array of this XmlItem.
+
+
+ :param name_wrapped_array: The name_wrapped_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._name_wrapped_array = name_wrapped_array
+
+ @property
+ def prefix_string(self):
+ """Gets the prefix_string of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_string of this XmlItem. # noqa: E501
+ :rtype: str
+ """
+ return self._prefix_string
+
+ @prefix_string.setter
+ def prefix_string(self, prefix_string):
+ """Sets the prefix_string of this XmlItem.
+
+
+ :param prefix_string: The prefix_string of this XmlItem. # noqa: E501
+ :type: str
+ """
+
+ self._prefix_string = prefix_string
+
+ @property
+ def prefix_number(self):
+ """Gets the prefix_number of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_number of this XmlItem. # noqa: E501
+ :rtype: float
+ """
+ return self._prefix_number
+
+ @prefix_number.setter
+ def prefix_number(self, prefix_number):
+ """Sets the prefix_number of this XmlItem.
+
+
+ :param prefix_number: The prefix_number of this XmlItem. # noqa: E501
+ :type: float
+ """
+
+ self._prefix_number = prefix_number
+
+ @property
+ def prefix_integer(self):
+ """Gets the prefix_integer of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_integer of this XmlItem. # noqa: E501
+ :rtype: int
+ """
+ return self._prefix_integer
+
+ @prefix_integer.setter
+ def prefix_integer(self, prefix_integer):
+ """Sets the prefix_integer of this XmlItem.
+
+
+ :param prefix_integer: The prefix_integer of this XmlItem. # noqa: E501
+ :type: int
+ """
+
+ self._prefix_integer = prefix_integer
+
+ @property
+ def prefix_boolean(self):
+ """Gets the prefix_boolean of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_boolean of this XmlItem. # noqa: E501
+ :rtype: bool
+ """
+ return self._prefix_boolean
+
+ @prefix_boolean.setter
+ def prefix_boolean(self, prefix_boolean):
+ """Sets the prefix_boolean of this XmlItem.
+
+
+ :param prefix_boolean: The prefix_boolean of this XmlItem. # noqa: E501
+ :type: bool
+ """
+
+ self._prefix_boolean = prefix_boolean
+
+ @property
+ def prefix_array(self):
+ """Gets the prefix_array of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._prefix_array
+
+ @prefix_array.setter
+ def prefix_array(self, prefix_array):
+ """Sets the prefix_array of this XmlItem.
+
+
+ :param prefix_array: The prefix_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._prefix_array = prefix_array
+
+ @property
+ def prefix_wrapped_array(self):
+ """Gets the prefix_wrapped_array of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_wrapped_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._prefix_wrapped_array
+
+ @prefix_wrapped_array.setter
+ def prefix_wrapped_array(self, prefix_wrapped_array):
+ """Sets the prefix_wrapped_array of this XmlItem.
+
+
+ :param prefix_wrapped_array: The prefix_wrapped_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._prefix_wrapped_array = prefix_wrapped_array
+
+ @property
+ def namespace_string(self):
+ """Gets the namespace_string of this XmlItem. # noqa: E501
+
+
+ :return: The namespace_string of this XmlItem. # noqa: E501
+ :rtype: str
+ """
+ return self._namespace_string
+
+ @namespace_string.setter
+ def namespace_string(self, namespace_string):
+ """Sets the namespace_string of this XmlItem.
+
+
+ :param namespace_string: The namespace_string of this XmlItem. # noqa: E501
+ :type: str
+ """
+
+ self._namespace_string = namespace_string
+
+ @property
+ def namespace_number(self):
+ """Gets the namespace_number of this XmlItem. # noqa: E501
+
+
+ :return: The namespace_number of this XmlItem. # noqa: E501
+ :rtype: float
+ """
+ return self._namespace_number
+
+ @namespace_number.setter
+ def namespace_number(self, namespace_number):
+ """Sets the namespace_number of this XmlItem.
+
+
+ :param namespace_number: The namespace_number of this XmlItem. # noqa: E501
+ :type: float
+ """
+
+ self._namespace_number = namespace_number
+
+ @property
+ def namespace_integer(self):
+ """Gets the namespace_integer of this XmlItem. # noqa: E501
+
+
+ :return: The namespace_integer of this XmlItem. # noqa: E501
+ :rtype: int
+ """
+ return self._namespace_integer
+
+ @namespace_integer.setter
+ def namespace_integer(self, namespace_integer):
+ """Sets the namespace_integer of this XmlItem.
+
+
+ :param namespace_integer: The namespace_integer of this XmlItem. # noqa: E501
+ :type: int
+ """
+
+ self._namespace_integer = namespace_integer
+
+ @property
+ def namespace_boolean(self):
+ """Gets the namespace_boolean of this XmlItem. # noqa: E501
+
+
+ :return: The namespace_boolean of this XmlItem. # noqa: E501
+ :rtype: bool
+ """
+ return self._namespace_boolean
+
+ @namespace_boolean.setter
+ def namespace_boolean(self, namespace_boolean):
+ """Sets the namespace_boolean of this XmlItem.
+
+
+ :param namespace_boolean: The namespace_boolean of this XmlItem. # noqa: E501
+ :type: bool
+ """
+
+ self._namespace_boolean = namespace_boolean
+
+ @property
+ def namespace_array(self):
+ """Gets the namespace_array of this XmlItem. # noqa: E501
+
+
+ :return: The namespace_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._namespace_array
+
+ @namespace_array.setter
+ def namespace_array(self, namespace_array):
+ """Sets the namespace_array of this XmlItem.
+
+
+ :param namespace_array: The namespace_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._namespace_array = namespace_array
+
+ @property
+ def namespace_wrapped_array(self):
+ """Gets the namespace_wrapped_array of this XmlItem. # noqa: E501
+
+
+ :return: The namespace_wrapped_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._namespace_wrapped_array
+
+ @namespace_wrapped_array.setter
+ def namespace_wrapped_array(self, namespace_wrapped_array):
+ """Sets the namespace_wrapped_array of this XmlItem.
+
+
+ :param namespace_wrapped_array: The namespace_wrapped_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._namespace_wrapped_array = namespace_wrapped_array
+
+ @property
+ def prefix_ns_string(self):
+ """Gets the prefix_ns_string of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_ns_string of this XmlItem. # noqa: E501
+ :rtype: str
+ """
+ return self._prefix_ns_string
+
+ @prefix_ns_string.setter
+ def prefix_ns_string(self, prefix_ns_string):
+ """Sets the prefix_ns_string of this XmlItem.
+
+
+ :param prefix_ns_string: The prefix_ns_string of this XmlItem. # noqa: E501
+ :type: str
+ """
+
+ self._prefix_ns_string = prefix_ns_string
+
+ @property
+ def prefix_ns_number(self):
+ """Gets the prefix_ns_number of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_ns_number of this XmlItem. # noqa: E501
+ :rtype: float
+ """
+ return self._prefix_ns_number
+
+ @prefix_ns_number.setter
+ def prefix_ns_number(self, prefix_ns_number):
+ """Sets the prefix_ns_number of this XmlItem.
+
+
+ :param prefix_ns_number: The prefix_ns_number of this XmlItem. # noqa: E501
+ :type: float
+ """
+
+ self._prefix_ns_number = prefix_ns_number
+
+ @property
+ def prefix_ns_integer(self):
+ """Gets the prefix_ns_integer of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_ns_integer of this XmlItem. # noqa: E501
+ :rtype: int
+ """
+ return self._prefix_ns_integer
+
+ @prefix_ns_integer.setter
+ def prefix_ns_integer(self, prefix_ns_integer):
+ """Sets the prefix_ns_integer of this XmlItem.
+
+
+ :param prefix_ns_integer: The prefix_ns_integer of this XmlItem. # noqa: E501
+ :type: int
+ """
+
+ self._prefix_ns_integer = prefix_ns_integer
+
+ @property
+ def prefix_ns_boolean(self):
+ """Gets the prefix_ns_boolean of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_ns_boolean of this XmlItem. # noqa: E501
+ :rtype: bool
+ """
+ return self._prefix_ns_boolean
+
+ @prefix_ns_boolean.setter
+ def prefix_ns_boolean(self, prefix_ns_boolean):
+ """Sets the prefix_ns_boolean of this XmlItem.
+
+
+ :param prefix_ns_boolean: The prefix_ns_boolean of this XmlItem. # noqa: E501
+ :type: bool
+ """
+
+ self._prefix_ns_boolean = prefix_ns_boolean
+
+ @property
+ def prefix_ns_array(self):
+ """Gets the prefix_ns_array of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_ns_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._prefix_ns_array
+
+ @prefix_ns_array.setter
+ def prefix_ns_array(self, prefix_ns_array):
+ """Sets the prefix_ns_array of this XmlItem.
+
+
+ :param prefix_ns_array: The prefix_ns_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._prefix_ns_array = prefix_ns_array
+
+ @property
+ def prefix_ns_wrapped_array(self):
+ """Gets the prefix_ns_wrapped_array of this XmlItem. # noqa: E501
+
+
+ :return: The prefix_ns_wrapped_array of this XmlItem. # noqa: E501
+ :rtype: list[int]
+ """
+ return self._prefix_ns_wrapped_array
+
+ @prefix_ns_wrapped_array.setter
+ def prefix_ns_wrapped_array(self, prefix_ns_wrapped_array):
+ """Sets the prefix_ns_wrapped_array of this XmlItem.
+
+
+ :param prefix_ns_wrapped_array: The prefix_ns_wrapped_array of this XmlItem. # noqa: E501
+ :type: list[int]
+ """
+
+ self._prefix_ns_wrapped_array = prefix_ns_wrapped_array
+
+ def to_dict(self):
+ """Returns the model properties as a dict"""
+ result = {}
+
+ for attr, _ in six.iteritems(self.openapi_types):
+ value = getattr(self, attr)
+ if isinstance(value, list):
+ result[attr] = list(map(
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
+ value
+ ))
+ elif hasattr(value, "to_dict"):
+ result[attr] = value.to_dict()
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ lambda item: (item[0], item[1].to_dict())
+ if hasattr(item[1], "to_dict") else item,
+ value.items()
+ ))
+ else:
+ result[attr] = value
+
+ return result
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, XmlItem):
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
diff --git a/samples/client/petstore/python-experimental/petstore_api/rest.py b/samples/client/petstore/python-experimental/petstore_api/rest.py
new file mode 100644
index 00000000000..7ed815b8a18
--- /dev/null
+++ b/samples/client/petstore/python-experimental/petstore_api/rest.py
@@ -0,0 +1,296 @@
+# 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
+"""
+
+
+from __future__ import absolute_import
+
+import io
+import json
+import logging
+import re
+import ssl
+
+import certifi
+# python 2 and python 3 compatibility library
+import six
+from six.moves.urllib.parse import urlencode
+import urllib3
+
+from petstore_api.exceptions import ApiException, ApiValueError
+
+
+logger = logging.getLogger(__name__)
+
+
+class RESTResponse(io.IOBase):
+
+ def __init__(self, resp):
+ self.urllib3_response = resp
+ self.status = resp.status
+ self.reason = resp.reason
+ self.data = resp.data
+
+ def getheaders(self):
+ """Returns a dictionary of the response headers."""
+ return self.urllib3_response.getheaders()
+
+ def getheader(self, name, default=None):
+ """Returns a given response header."""
+ return self.urllib3_response.getheader(name, default)
+
+
+class RESTClientObject(object):
+
+ def __init__(self, configuration, pools_size=4, maxsize=None):
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
+ # maxsize is the number of requests to host that are allowed in parallel # noqa: E501
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
+
+ # cert_reqs
+ if configuration.verify_ssl:
+ cert_reqs = ssl.CERT_REQUIRED
+ else:
+ cert_reqs = ssl.CERT_NONE
+
+ # ca_certs
+ if configuration.ssl_ca_cert:
+ ca_certs = configuration.ssl_ca_cert
+ else:
+ # if not set certificate file, use Mozilla's root certificates.
+ ca_certs = certifi.where()
+
+ addition_pool_args = {}
+ if configuration.assert_hostname is not None:
+ addition_pool_args['assert_hostname'] = configuration.assert_hostname # noqa: E501
+
+ if configuration.retries is not None:
+ addition_pool_args['retries'] = configuration.retries
+
+ if maxsize is None:
+ if configuration.connection_pool_maxsize is not None:
+ maxsize = configuration.connection_pool_maxsize
+ else:
+ maxsize = 4
+
+ # https pool manager
+ if configuration.proxy:
+ self.pool_manager = urllib3.ProxyManager(
+ num_pools=pools_size,
+ maxsize=maxsize,
+ cert_reqs=cert_reqs,
+ ca_certs=ca_certs,
+ cert_file=configuration.cert_file,
+ key_file=configuration.key_file,
+ proxy_url=configuration.proxy,
+ proxy_headers=configuration.proxy_headers,
+ **addition_pool_args
+ )
+ else:
+ self.pool_manager = urllib3.PoolManager(
+ num_pools=pools_size,
+ maxsize=maxsize,
+ cert_reqs=cert_reqs,
+ ca_certs=ca_certs,
+ cert_file=configuration.cert_file,
+ key_file=configuration.key_file,
+ **addition_pool_args
+ )
+
+ def request(self, method, url, query_params=None, headers=None,
+ body=None, post_params=None, _preload_content=True,
+ _request_timeout=None):
+ """Perform requests.
+
+ :param method: http request method
+ :param url: http request url
+ :param query_params: query parameters in the url
+ :param headers: http request headers
+ :param body: request json body, for `application/json`
+ :param post_params: request post parameters,
+ `application/x-www-form-urlencoded`
+ and `multipart/form-data`
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ """
+ method = method.upper()
+ assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT',
+ 'PATCH', 'OPTIONS']
+
+ if post_params and body:
+ raise ApiValueError(
+ "body parameter cannot be used with post_params parameter."
+ )
+
+ post_params = post_params or {}
+ headers = headers or {}
+
+ timeout = None
+ if _request_timeout:
+ if isinstance(_request_timeout, (int, ) if six.PY3 else (int, long)): # noqa: E501,F821
+ timeout = urllib3.Timeout(total=_request_timeout)
+ elif (isinstance(_request_timeout, tuple) and
+ len(_request_timeout) == 2):
+ timeout = urllib3.Timeout(
+ connect=_request_timeout[0], read=_request_timeout[1])
+
+ if 'Content-Type' not in headers:
+ headers['Content-Type'] = 'application/json'
+
+ try:
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
+ if query_params:
+ url += '?' + urlencode(query_params)
+ if re.search('json', headers['Content-Type'], re.IGNORECASE):
+ request_body = None
+ if body is not None:
+ request_body = json.dumps(body)
+ r = self.pool_manager.request(
+ method, url,
+ body=request_body,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
+ r = self.pool_manager.request(
+ method, url,
+ fields=post_params,
+ encode_multipart=False,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ elif headers['Content-Type'] == 'multipart/form-data':
+ # must del headers['Content-Type'], or the correct
+ # Content-Type which generated by urllib3 will be
+ # overwritten.
+ del headers['Content-Type']
+ r = self.pool_manager.request(
+ method, url,
+ fields=post_params,
+ encode_multipart=True,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ # Pass a `string` parameter directly in the body to support
+ # other content types than Json when `body` argument is
+ # provided in serialized form
+ elif isinstance(body, str) or isinstance(body, bytes):
+ request_body = body
+ r = self.pool_manager.request(
+ method, url,
+ body=request_body,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ else:
+ # Cannot generate the request from given parameters
+ msg = """Cannot prepare a request message for provided
+ arguments. Please check that your arguments match
+ declared content type."""
+ raise ApiException(status=0, reason=msg)
+ # For `GET`, `HEAD`
+ else:
+ r = self.pool_manager.request(method, url,
+ fields=query_params,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ except urllib3.exceptions.SSLError as e:
+ msg = "{0}\n{1}".format(type(e).__name__, str(e))
+ raise ApiException(status=0, reason=msg)
+
+ if _preload_content:
+ r = RESTResponse(r)
+
+ # In the python 3, the response.data is bytes.
+ # we need to decode it to string.
+ if six.PY3:
+ r.data = r.data.decode('utf8')
+
+ # log response body
+ logger.debug("response body: %s", r.data)
+
+ if not 200 <= r.status <= 299:
+ raise ApiException(http_resp=r)
+
+ return r
+
+ def GET(self, url, headers=None, query_params=None, _preload_content=True,
+ _request_timeout=None):
+ return self.request("GET", url,
+ headers=headers,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ query_params=query_params)
+
+ def HEAD(self, url, headers=None, query_params=None, _preload_content=True,
+ _request_timeout=None):
+ return self.request("HEAD", url,
+ headers=headers,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ query_params=query_params)
+
+ def OPTIONS(self, url, headers=None, query_params=None, post_params=None,
+ body=None, _preload_content=True, _request_timeout=None):
+ return self.request("OPTIONS", url,
+ headers=headers,
+ query_params=query_params,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+ def DELETE(self, url, headers=None, query_params=None, body=None,
+ _preload_content=True, _request_timeout=None):
+ return self.request("DELETE", url,
+ headers=headers,
+ query_params=query_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+ def POST(self, url, headers=None, query_params=None, post_params=None,
+ body=None, _preload_content=True, _request_timeout=None):
+ return self.request("POST", url,
+ headers=headers,
+ query_params=query_params,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+ def PUT(self, url, headers=None, query_params=None, post_params=None,
+ body=None, _preload_content=True, _request_timeout=None):
+ return self.request("PUT", url,
+ headers=headers,
+ query_params=query_params,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+ def PATCH(self, url, headers=None, query_params=None, post_params=None,
+ body=None, _preload_content=True, _request_timeout=None):
+ return self.request("PATCH", url,
+ headers=headers,
+ query_params=query_params,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
diff --git a/samples/client/petstore/python-experimental/pom.xml b/samples/client/petstore/python-experimental/pom.xml
new file mode 100644
index 00000000000..3c946333186
--- /dev/null
+++ b/samples/client/petstore/python-experimental/pom.xml
@@ -0,0 +1,46 @@
+
+ 4.0.0
+ org.openapitools
+ PythonExperimentalPetstoreClientTests
+ pom
+ 1.0-SNAPSHOT
+ Python Experimental OpenAPI Petstore Client
+
+
+
+ maven-dependency-plugin
+
+
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.2.1
+
+
+ nose-test
+ integration-test
+
+ exec
+
+
+ make
+
+ test-all
+
+
+
+
+
+
+
+
diff --git a/samples/client/petstore/python-experimental/requirements.txt b/samples/client/petstore/python-experimental/requirements.txt
new file mode 100644
index 00000000000..bafdc07532f
--- /dev/null
+++ b/samples/client/petstore/python-experimental/requirements.txt
@@ -0,0 +1,5 @@
+certifi >= 14.05.14
+six >= 1.10
+python_dateutil >= 2.5.3
+setuptools >= 21.0.0
+urllib3 >= 1.15.1
diff --git a/samples/client/petstore/python-experimental/setup.cfg b/samples/client/petstore/python-experimental/setup.cfg
new file mode 100644
index 00000000000..26b7a359d58
--- /dev/null
+++ b/samples/client/petstore/python-experimental/setup.cfg
@@ -0,0 +1,11 @@
+[nosetests]
+logging-clear-handlers=true
+verbosity=2
+randomize=true
+exe=true
+with-coverage=true
+cover-package=petstore_api
+cover-erase=true
+
+[flake8]
+max-line-length=99
diff --git a/samples/client/petstore/python-experimental/setup.py b/samples/client/petstore/python-experimental/setup.py
new file mode 100644
index 00000000000..86988b6d42e
--- /dev/null
+++ b/samples/client/petstore/python-experimental/setup.py
@@ -0,0 +1,39 @@
+# 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
+"""
+
+
+from setuptools import setup, find_packages # noqa: H301
+
+NAME = "petstore-api"
+VERSION = "1.0.0"
+# To install the library, run the following
+#
+# python setup.py install
+#
+# prerequisite: setuptools
+# http://pypi.python.org/pypi/setuptools
+
+REQUIRES = ["urllib3 >= 1.15", "six >= 1.10", "certifi", "python-dateutil"]
+
+setup(
+ name=NAME,
+ version=VERSION,
+ description="OpenAPI Petstore",
+ author_email="",
+ url="",
+ keywords=["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"],
+ install_requires=REQUIRES,
+ packages=find_packages(),
+ include_package_data=True,
+ long_description="""\
+ 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
+ """
+)
diff --git a/samples/client/petstore/python-experimental/test-requirements.txt b/samples/client/petstore/python-experimental/test-requirements.txt
new file mode 100644
index 00000000000..2702246c0e6
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test-requirements.txt
@@ -0,0 +1,5 @@
+coverage>=4.0.3
+nose>=1.3.7
+pluggy>=0.3.1
+py>=1.4.31
+randomize>=0.13
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/__init__.py b/samples/client/petstore/python-experimental/test/__init__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/__init__.py
rename to samples/client/petstore/python-experimental/test/__init__.py
diff --git a/samples/client/petstore/python-experimental/test/test_additional_properties_any_type.py b/samples/client/petstore/python-experimental/test/test_additional_properties_any_type.py
new file mode 100644
index 00000000000..4b6739a1faf
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_additional_properties_any_type.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.additional_properties_any_type import AdditionalPropertiesAnyType # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAdditionalPropertiesAnyType(unittest.TestCase):
+ """AdditionalPropertiesAnyType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAdditionalPropertiesAnyType(self):
+ """Test AdditionalPropertiesAnyType"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.additional_properties_any_type.AdditionalPropertiesAnyType() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_additional_properties_array.py b/samples/client/petstore/python-experimental/test/test_additional_properties_array.py
new file mode 100644
index 00000000000..c4cf43499cf
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_additional_properties_array.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.additional_properties_array import AdditionalPropertiesArray # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAdditionalPropertiesArray(unittest.TestCase):
+ """AdditionalPropertiesArray unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAdditionalPropertiesArray(self):
+ """Test AdditionalPropertiesArray"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.additional_properties_array.AdditionalPropertiesArray() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_additional_properties_boolean.py b/samples/client/petstore/python-experimental/test/test_additional_properties_boolean.py
new file mode 100644
index 00000000000..cc3cecc8522
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_additional_properties_boolean.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.additional_properties_boolean import AdditionalPropertiesBoolean # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAdditionalPropertiesBoolean(unittest.TestCase):
+ """AdditionalPropertiesBoolean unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAdditionalPropertiesBoolean(self):
+ """Test AdditionalPropertiesBoolean"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.additional_properties_boolean.AdditionalPropertiesBoolean() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_additional_properties_class.py b/samples/client/petstore/python-experimental/test/test_additional_properties_class.py
new file mode 100644
index 00000000000..fc9df3bbb50
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_additional_properties_class.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.additional_properties_class import AdditionalPropertiesClass # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAdditionalPropertiesClass(unittest.TestCase):
+ """AdditionalPropertiesClass unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAdditionalPropertiesClass(self):
+ """Test AdditionalPropertiesClass"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.additional_properties_class.AdditionalPropertiesClass() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_additional_properties_integer.py b/samples/client/petstore/python-experimental/test/test_additional_properties_integer.py
new file mode 100644
index 00000000000..774c367b210
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_additional_properties_integer.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.additional_properties_integer import AdditionalPropertiesInteger # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAdditionalPropertiesInteger(unittest.TestCase):
+ """AdditionalPropertiesInteger unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAdditionalPropertiesInteger(self):
+ """Test AdditionalPropertiesInteger"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.additional_properties_integer.AdditionalPropertiesInteger() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_additional_properties_number.py b/samples/client/petstore/python-experimental/test/test_additional_properties_number.py
new file mode 100644
index 00000000000..0d370e781b3
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_additional_properties_number.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.additional_properties_number import AdditionalPropertiesNumber # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAdditionalPropertiesNumber(unittest.TestCase):
+ """AdditionalPropertiesNumber unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAdditionalPropertiesNumber(self):
+ """Test AdditionalPropertiesNumber"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.additional_properties_number.AdditionalPropertiesNumber() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_additional_properties_object.py b/samples/client/petstore/python-experimental/test/test_additional_properties_object.py
new file mode 100644
index 00000000000..6e718b28cde
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_additional_properties_object.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.additional_properties_object import AdditionalPropertiesObject # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAdditionalPropertiesObject(unittest.TestCase):
+ """AdditionalPropertiesObject unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAdditionalPropertiesObject(self):
+ """Test AdditionalPropertiesObject"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.additional_properties_object.AdditionalPropertiesObject() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_additional_properties_string.py b/samples/client/petstore/python-experimental/test/test_additional_properties_string.py
new file mode 100644
index 00000000000..a46cb3e256d
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_additional_properties_string.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.additional_properties_string import AdditionalPropertiesString # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAdditionalPropertiesString(unittest.TestCase):
+ """AdditionalPropertiesString unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAdditionalPropertiesString(self):
+ """Test AdditionalPropertiesString"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.additional_properties_string.AdditionalPropertiesString() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_animal.py b/samples/client/petstore/python-experimental/test/test_animal.py
new file mode 100644
index 00000000000..179f1fbd0e5
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_animal.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.animal import Animal # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAnimal(unittest.TestCase):
+ """Animal unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAnimal(self):
+ """Test Animal"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.animal.Animal() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_another_fake_api.py b/samples/client/petstore/python-experimental/test/test_another_fake_api.py
new file mode 100644
index 00000000000..4b80dc4eda5
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_another_fake_api.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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.api.another_fake_api import AnotherFakeApi # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestAnotherFakeApi(unittest.TestCase):
+ """AnotherFakeApi unit test stubs"""
+
+ def setUp(self):
+ self.api = petstore_api.api.another_fake_api.AnotherFakeApi() # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ def test_test_special_tags(self):
+ """Test case for test_special_tags
+
+ To test special tags # noqa: E501
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_api_response.py b/samples/client/petstore/python-experimental/test/test_api_response.py
new file mode 100644
index 00000000000..5031b458a0d
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_api_response.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.api_response import ApiResponse # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestApiResponse(unittest.TestCase):
+ """ApiResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testApiResponse(self):
+ """Test ApiResponse"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.api_response.ApiResponse() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_array_of_array_of_number_only.py b/samples/client/petstore/python-experimental/test/test_array_of_array_of_number_only.py
new file mode 100644
index 00000000000..a0223304542
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_array_of_array_of_number_only.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.array_of_array_of_number_only import ArrayOfArrayOfNumberOnly # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestArrayOfArrayOfNumberOnly(unittest.TestCase):
+ """ArrayOfArrayOfNumberOnly unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testArrayOfArrayOfNumberOnly(self):
+ """Test ArrayOfArrayOfNumberOnly"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.array_of_array_of_number_only.ArrayOfArrayOfNumberOnly() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_array_of_number_only.py b/samples/client/petstore/python-experimental/test/test_array_of_number_only.py
new file mode 100644
index 00000000000..1a928bf7d2e
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_array_of_number_only.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.array_of_number_only import ArrayOfNumberOnly # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestArrayOfNumberOnly(unittest.TestCase):
+ """ArrayOfNumberOnly unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testArrayOfNumberOnly(self):
+ """Test ArrayOfNumberOnly"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.array_of_number_only.ArrayOfNumberOnly() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_array_test.py b/samples/client/petstore/python-experimental/test/test_array_test.py
new file mode 100644
index 00000000000..c56b77b77ee
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_array_test.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.array_test import ArrayTest # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestArrayTest(unittest.TestCase):
+ """ArrayTest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testArrayTest(self):
+ """Test ArrayTest"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.array_test.ArrayTest() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_capitalization.py b/samples/client/petstore/python-experimental/test/test_capitalization.py
new file mode 100644
index 00000000000..2ae7725b3f0
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_capitalization.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.capitalization import Capitalization # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestCapitalization(unittest.TestCase):
+ """Capitalization unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testCapitalization(self):
+ """Test Capitalization"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.capitalization.Capitalization() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_cat.py b/samples/client/petstore/python-experimental/test/test_cat.py
new file mode 100644
index 00000000000..5ebd7908d2d
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_cat.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.cat import Cat # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestCat(unittest.TestCase):
+ """Cat unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testCat(self):
+ """Test Cat"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.cat.Cat() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_cat_all_of.py b/samples/client/petstore/python-experimental/test/test_cat_all_of.py
new file mode 100644
index 00000000000..531443380c6
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_cat_all_of.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.cat_all_of import CatAllOf # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestCatAllOf(unittest.TestCase):
+ """CatAllOf unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testCatAllOf(self):
+ """Test CatAllOf"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.cat_all_of.CatAllOf() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_category.py b/samples/client/petstore/python-experimental/test/test_category.py
new file mode 100644
index 00000000000..6a592521281
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_category.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.category import Category # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestCategory(unittest.TestCase):
+ """Category unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testCategory(self):
+ """Test Category"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.category.Category() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_class_model.py b/samples/client/petstore/python-experimental/test/test_class_model.py
new file mode 100644
index 00000000000..12b7fb99402
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_class_model.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.class_model import ClassModel # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestClassModel(unittest.TestCase):
+ """ClassModel unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testClassModel(self):
+ """Test ClassModel"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.class_model.ClassModel() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_client.py b/samples/client/petstore/python-experimental/test/test_client.py
new file mode 100644
index 00000000000..9e18c4310d9
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_client.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.client import Client # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestClient(unittest.TestCase):
+ """Client unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testClient(self):
+ """Test Client"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.client.Client() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_dog.py b/samples/client/petstore/python-experimental/test/test_dog.py
new file mode 100644
index 00000000000..dc151f998dd
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_dog.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.dog import Dog # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestDog(unittest.TestCase):
+ """Dog unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testDog(self):
+ """Test Dog"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.dog.Dog() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_dog_all_of.py b/samples/client/petstore/python-experimental/test/test_dog_all_of.py
new file mode 100644
index 00000000000..3d79f2888c9
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_dog_all_of.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.dog_all_of import DogAllOf # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestDogAllOf(unittest.TestCase):
+ """DogAllOf unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testDogAllOf(self):
+ """Test DogAllOf"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.dog_all_of.DogAllOf() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_enum_arrays.py b/samples/client/petstore/python-experimental/test/test_enum_arrays.py
new file mode 100644
index 00000000000..be572508ef2
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_enum_arrays.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.enum_arrays import EnumArrays # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestEnumArrays(unittest.TestCase):
+ """EnumArrays unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testEnumArrays(self):
+ """Test EnumArrays"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.enum_arrays.EnumArrays() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_enum_class.py b/samples/client/petstore/python-experimental/test/test_enum_class.py
new file mode 100644
index 00000000000..57eb14558a7
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_enum_class.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.enum_class import EnumClass # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestEnumClass(unittest.TestCase):
+ """EnumClass unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testEnumClass(self):
+ """Test EnumClass"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.enum_class.EnumClass() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_enum_test.py b/samples/client/petstore/python-experimental/test/test_enum_test.py
new file mode 100644
index 00000000000..ecd43afc709
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_enum_test.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.enum_test import EnumTest # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestEnumTest(unittest.TestCase):
+ """EnumTest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testEnumTest(self):
+ """Test EnumTest"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.enum_test.EnumTest() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_fake_api.py b/samples/client/petstore/python-experimental/test/test_fake_api.py
new file mode 100644
index 00000000000..fc2cbef35f1
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_fake_api.py
@@ -0,0 +1,98 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.api.fake_api import FakeApi # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestFakeApi(unittest.TestCase):
+ """FakeApi unit test stubs"""
+
+ def setUp(self):
+ self.api = petstore_api.api.fake_api.FakeApi() # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ def test_fake_outer_boolean_serialize(self):
+ """Test case for fake_outer_boolean_serialize
+
+ """
+ pass
+
+ def test_fake_outer_composite_serialize(self):
+ """Test case for fake_outer_composite_serialize
+
+ """
+ pass
+
+ def test_fake_outer_number_serialize(self):
+ """Test case for fake_outer_number_serialize
+
+ """
+ pass
+
+ def test_fake_outer_string_serialize(self):
+ """Test case for fake_outer_string_serialize
+
+ """
+ pass
+
+ def test_test_body_with_query_params(self):
+ """Test case for test_body_with_query_params
+
+ """
+ pass
+
+ def test_test_client_model(self):
+ """Test case for test_client_model
+
+ To test \"client\" model # noqa: E501
+ """
+ pass
+
+ def test_test_endpoint_parameters(self):
+ """Test case for test_endpoint_parameters
+
+ Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 # noqa: E501
+ """
+ pass
+
+ def test_test_enum_parameters(self):
+ """Test case for test_enum_parameters
+
+ To test enum parameters # noqa: E501
+ """
+ pass
+
+ def test_test_inline_additional_properties(self):
+ """Test case for test_inline_additional_properties
+
+ test inline additionalProperties # noqa: E501
+ """
+ pass
+
+ def test_test_json_form_data(self):
+ """Test case for test_json_form_data
+
+ test json serialization of form data # noqa: E501
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_fake_classname_tags_123_api.py b/samples/client/petstore/python-experimental/test/test_fake_classname_tags_123_api.py
new file mode 100644
index 00000000000..87cac0b9ef8
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_fake_classname_tags_123_api.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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.api.fake_classname_tags_123_api import FakeClassnameTags123Api # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestFakeClassnameTags123Api(unittest.TestCase):
+ """FakeClassnameTags123Api unit test stubs"""
+
+ def setUp(self):
+ self.api = petstore_api.api.fake_classname_tags_123_api.FakeClassnameTags123Api() # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ def test_test_classname(self):
+ """Test case for test_classname
+
+ To test class name in snake case # noqa: E501
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_file.py b/samples/client/petstore/python-experimental/test/test_file.py
new file mode 100644
index 00000000000..cc32edb7b52
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_file.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.file import File # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestFile(unittest.TestCase):
+ """File unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testFile(self):
+ """Test File"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.file.File() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_file_schema_test_class.py b/samples/client/petstore/python-experimental/test/test_file_schema_test_class.py
new file mode 100644
index 00000000000..91e1b6a1c74
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_file_schema_test_class.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.file_schema_test_class import FileSchemaTestClass # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestFileSchemaTestClass(unittest.TestCase):
+ """FileSchemaTestClass unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testFileSchemaTestClass(self):
+ """Test FileSchemaTestClass"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.file_schema_test_class.FileSchemaTestClass() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_format_test.py b/samples/client/petstore/python-experimental/test/test_format_test.py
new file mode 100644
index 00000000000..46707c77b70
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_format_test.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.format_test import FormatTest # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestFormatTest(unittest.TestCase):
+ """FormatTest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testFormatTest(self):
+ """Test FormatTest"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.format_test.FormatTest() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_has_only_read_only.py b/samples/client/petstore/python-experimental/test/test_has_only_read_only.py
new file mode 100644
index 00000000000..2dc052a328a
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_has_only_read_only.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.has_only_read_only import HasOnlyReadOnly # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestHasOnlyReadOnly(unittest.TestCase):
+ """HasOnlyReadOnly unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testHasOnlyReadOnly(self):
+ """Test HasOnlyReadOnly"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.has_only_read_only.HasOnlyReadOnly() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_list.py b/samples/client/petstore/python-experimental/test/test_list.py
new file mode 100644
index 00000000000..a538a6b1ad3
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_list.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.list import List # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestList(unittest.TestCase):
+ """List unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testList(self):
+ """Test List"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.list.List() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_map_test.py b/samples/client/petstore/python-experimental/test/test_map_test.py
new file mode 100644
index 00000000000..0ba6481903e
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_map_test.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.map_test import MapTest # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestMapTest(unittest.TestCase):
+ """MapTest unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testMapTest(self):
+ """Test MapTest"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.map_test.MapTest() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_mixed_properties_and_additional_properties_class.py b/samples/client/petstore/python-experimental/test/test_mixed_properties_and_additional_properties_class.py
new file mode 100644
index 00000000000..8893bdaf44e
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_mixed_properties_and_additional_properties_class.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.mixed_properties_and_additional_properties_class import MixedPropertiesAndAdditionalPropertiesClass # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestMixedPropertiesAndAdditionalPropertiesClass(unittest.TestCase):
+ """MixedPropertiesAndAdditionalPropertiesClass unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testMixedPropertiesAndAdditionalPropertiesClass(self):
+ """Test MixedPropertiesAndAdditionalPropertiesClass"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.mixed_properties_and_additional_properties_class.MixedPropertiesAndAdditionalPropertiesClass() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_model200_response.py b/samples/client/petstore/python-experimental/test/test_model200_response.py
new file mode 100644
index 00000000000..fab761f4edb
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_model200_response.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.model200_response import Model200Response # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestModel200Response(unittest.TestCase):
+ """Model200Response unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testModel200Response(self):
+ """Test Model200Response"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.model200_response.Model200Response() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_model_return.py b/samples/client/petstore/python-experimental/test/test_model_return.py
new file mode 100644
index 00000000000..ae3f15ee6b8
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_model_return.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.model_return import ModelReturn # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestModelReturn(unittest.TestCase):
+ """ModelReturn unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testModelReturn(self):
+ """Test ModelReturn"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.model_return.ModelReturn() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_name.py b/samples/client/petstore/python-experimental/test/test_name.py
new file mode 100644
index 00000000000..d6c72563991
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_name.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.name import Name # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestName(unittest.TestCase):
+ """Name unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testName(self):
+ """Test Name"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.name.Name() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_number_only.py b/samples/client/petstore/python-experimental/test/test_number_only.py
new file mode 100644
index 00000000000..7f6df65c805
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_number_only.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.number_only import NumberOnly # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestNumberOnly(unittest.TestCase):
+ """NumberOnly unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testNumberOnly(self):
+ """Test NumberOnly"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.number_only.NumberOnly() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_order.py b/samples/client/petstore/python-experimental/test/test_order.py
new file mode 100644
index 00000000000..3e7d517d5c7
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_order.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.order import Order # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestOrder(unittest.TestCase):
+ """Order unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testOrder(self):
+ """Test Order"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.order.Order() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_outer_composite.py b/samples/client/petstore/python-experimental/test/test_outer_composite.py
new file mode 100644
index 00000000000..dcb078cd216
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_outer_composite.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.outer_composite import OuterComposite # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestOuterComposite(unittest.TestCase):
+ """OuterComposite unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testOuterComposite(self):
+ """Test OuterComposite"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.outer_composite.OuterComposite() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_outer_enum.py b/samples/client/petstore/python-experimental/test/test_outer_enum.py
new file mode 100644
index 00000000000..472e36e1682
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_outer_enum.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.outer_enum import OuterEnum # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestOuterEnum(unittest.TestCase):
+ """OuterEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testOuterEnum(self):
+ """Test OuterEnum"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.outer_enum.OuterEnum() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_pet.py b/samples/client/petstore/python-experimental/test/test_pet.py
new file mode 100644
index 00000000000..bc5cc30fac0
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_pet.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.pet import Pet # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestPet(unittest.TestCase):
+ """Pet unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testPet(self):
+ """Test Pet"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.pet.Pet() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_pet_api.py b/samples/client/petstore/python-experimental/test/test_pet_api.py
new file mode 100644
index 00000000000..ffd3e25c4c6
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_pet_api.py
@@ -0,0 +1,89 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.api.pet_api import PetApi # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestPetApi(unittest.TestCase):
+ """PetApi unit test stubs"""
+
+ def setUp(self):
+ self.api = petstore_api.api.pet_api.PetApi() # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ def test_add_pet(self):
+ """Test case for add_pet
+
+ Add a new pet to the store # noqa: E501
+ """
+ pass
+
+ def test_delete_pet(self):
+ """Test case for delete_pet
+
+ Deletes a pet # noqa: E501
+ """
+ pass
+
+ def test_find_pets_by_status(self):
+ """Test case for find_pets_by_status
+
+ Finds Pets by status # noqa: E501
+ """
+ pass
+
+ def test_find_pets_by_tags(self):
+ """Test case for find_pets_by_tags
+
+ Finds Pets by tags # noqa: E501
+ """
+ pass
+
+ def test_get_pet_by_id(self):
+ """Test case for get_pet_by_id
+
+ Find pet by ID # noqa: E501
+ """
+ pass
+
+ def test_update_pet(self):
+ """Test case for update_pet
+
+ Update an existing pet # noqa: E501
+ """
+ pass
+
+ def test_update_pet_with_form(self):
+ """Test case for update_pet_with_form
+
+ Updates a pet in the store with form data # noqa: E501
+ """
+ pass
+
+ def test_upload_file(self):
+ """Test case for upload_file
+
+ uploads an image # noqa: E501
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_read_only_first.py b/samples/client/petstore/python-experimental/test/test_read_only_first.py
new file mode 100644
index 00000000000..2b647b83fc8
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_read_only_first.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.read_only_first import ReadOnlyFirst # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestReadOnlyFirst(unittest.TestCase):
+ """ReadOnlyFirst unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testReadOnlyFirst(self):
+ """Test ReadOnlyFirst"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.read_only_first.ReadOnlyFirst() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_special_model_name.py b/samples/client/petstore/python-experimental/test/test_special_model_name.py
new file mode 100644
index 00000000000..4edfec164f7
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_special_model_name.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.special_model_name import SpecialModelName # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestSpecialModelName(unittest.TestCase):
+ """SpecialModelName unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testSpecialModelName(self):
+ """Test SpecialModelName"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.special_model_name.SpecialModelName() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_store_api.py b/samples/client/petstore/python-experimental/test/test_store_api.py
new file mode 100644
index 00000000000..37bf771d13a
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_store_api.py
@@ -0,0 +1,61 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.api.store_api import StoreApi # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestStoreApi(unittest.TestCase):
+ """StoreApi unit test stubs"""
+
+ def setUp(self):
+ self.api = petstore_api.api.store_api.StoreApi() # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ def test_delete_order(self):
+ """Test case for delete_order
+
+ Delete purchase order by ID # noqa: E501
+ """
+ pass
+
+ def test_get_inventory(self):
+ """Test case for get_inventory
+
+ Returns pet inventories by status # noqa: E501
+ """
+ pass
+
+ def test_get_order_by_id(self):
+ """Test case for get_order_by_id
+
+ Find purchase order by ID # noqa: E501
+ """
+ pass
+
+ def test_place_order(self):
+ """Test case for place_order
+
+ Place an order for a pet # noqa: E501
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_tag.py b/samples/client/petstore/python-experimental/test/test_tag.py
new file mode 100644
index 00000000000..2c3c5157e71
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_tag.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.tag import Tag # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestTag(unittest.TestCase):
+ """Tag unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTag(self):
+ """Test Tag"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.tag.Tag() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_type_holder_default.py b/samples/client/petstore/python-experimental/test/test_type_holder_default.py
new file mode 100644
index 00000000000..e23ab2a32fc
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_type_holder_default.py
@@ -0,0 +1,49 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.type_holder_default import TypeHolderDefault # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestTypeHolderDefault(unittest.TestCase):
+ """TypeHolderDefault unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTypeHolderDefault(self):
+ """Test TypeHolderDefault"""
+ # required_vars are set to None now until swagger-parser/swagger-core fixes
+ # https://github.com/swagger-api/swagger-parser/issues/971
+ required_vars = ['number_item', 'integer_item', 'array_item']
+ sample_values = [5.67, 4, [-5, 2, -6]]
+ assigned_variables = {}
+ for index, required_var in enumerate(required_vars):
+ with self.assertRaises(ValueError):
+ model = TypeHolderDefault(**assigned_variables)
+ assigned_variables[required_var] = sample_values[index]
+ # assigned_variables is fully set, all required variables passed in
+ model = TypeHolderDefault(**assigned_variables)
+ self.assertEqual(model.string_item, 'what')
+ self.assertEqual(model.bool_item, True)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_type_holder_example.py b/samples/client/petstore/python-experimental/test/test_type_holder_example.py
new file mode 100644
index 00000000000..7a262149485
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_type_holder_example.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.type_holder_example import TypeHolderExample # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestTypeHolderExample(unittest.TestCase):
+ """TypeHolderExample unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTypeHolderExample(self):
+ """Test TypeHolderExample"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.type_holder_example.TypeHolderExample() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_user.py b/samples/client/petstore/python-experimental/test/test_user.py
new file mode 100644
index 00000000000..ad9386b6908
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_user.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.user import User # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestUser(unittest.TestCase):
+ """User unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testUser(self):
+ """Test User"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.user.User() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_user_api.py b/samples/client/petstore/python-experimental/test/test_user_api.py
new file mode 100644
index 00000000000..6e8aed4f18c
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_user_api.py
@@ -0,0 +1,89 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.api.user_api import UserApi # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestUserApi(unittest.TestCase):
+ """UserApi unit test stubs"""
+
+ def setUp(self):
+ self.api = petstore_api.api.user_api.UserApi() # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ def test_create_user(self):
+ """Test case for create_user
+
+ Create user # noqa: E501
+ """
+ pass
+
+ def test_create_users_with_array_input(self):
+ """Test case for create_users_with_array_input
+
+ Creates list of users with given input array # noqa: E501
+ """
+ pass
+
+ def test_create_users_with_list_input(self):
+ """Test case for create_users_with_list_input
+
+ Creates list of users with given input array # noqa: E501
+ """
+ pass
+
+ def test_delete_user(self):
+ """Test case for delete_user
+
+ Delete user # noqa: E501
+ """
+ pass
+
+ def test_get_user_by_name(self):
+ """Test case for get_user_by_name
+
+ Get user by user name # noqa: E501
+ """
+ pass
+
+ def test_login_user(self):
+ """Test case for login_user
+
+ Logs user into the system # noqa: E501
+ """
+ pass
+
+ def test_logout_user(self):
+ """Test case for logout_user
+
+ Logs out current logged in user session # noqa: E501
+ """
+ pass
+
+ def test_update_user(self):
+ """Test case for update_user
+
+ Updated user # noqa: E501
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test/test_xml_item.py b/samples/client/petstore/python-experimental/test/test_xml_item.py
new file mode 100644
index 00000000000..121f1ccb662
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test/test_xml_item.py
@@ -0,0 +1,39 @@
+# 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
+
+ OpenAPI spec version: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+from __future__ import absolute_import
+
+import unittest
+
+import petstore_api
+from petstore_api.models.xml_item import XmlItem # noqa: E501
+from petstore_api.rest import ApiException
+
+
+class TestXmlItem(unittest.TestCase):
+ """XmlItem unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testXmlItem(self):
+ """Test XmlItem"""
+ # FIXME: construct object with mandatory attributes with example values
+ # model = petstore_api.models.xml_item.XmlItem() # noqa: E501
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/test_python2.sh b/samples/client/petstore/python-experimental/test_python2.sh
new file mode 100644
index 00000000000..b68d0bd20a7
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test_python2.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+REQUIREMENTS_FILE=dev-requirements.txt
+REQUIREMENTS_OUT=dev-requirements.txt.log
+SETUP_OUT=*.egg-info
+VENV=venv
+DEACTIVE=false
+
+export LC_ALL=en_US.UTF-8
+export LANG=en_US.UTF-8
+
+### set virtualenv
+if [ -z "$VIRTUAL_ENV" ]; then
+ virtualenv $VENV --no-site-packages --always-copy
+ source $VENV/bin/activate
+ DEACTIVE=true
+fi
+
+### install dependencies
+pip install -r $REQUIREMENTS_FILE | tee -a $REQUIREMENTS_OUT
+python setup.py develop
+
+### run tests
+nosetests || exit 1
+
+### static analysis of code
+flake8 --show-source petstore_api/
+
+### deactivate virtualenv
+#if [ $DEACTIVE == true ]; then
+# deactivate
+#fi
+
diff --git a/samples/client/petstore/python-experimental/test_python2_and_3.sh b/samples/client/petstore/python-experimental/test_python2_and_3.sh
new file mode 100644
index 00000000000..8511d46cd79
--- /dev/null
+++ b/samples/client/petstore/python-experimental/test_python2_and_3.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+REQUIREMENTS_FILE=dev-requirements.txt
+REQUIREMENTS_OUT=dev-requirements.txt.log
+SETUP_OUT=*.egg-info
+VENV=venv
+DEACTIVE=false
+
+export LC_ALL=en_US.UTF-8
+export LANG=en_US.UTF-8
+
+### set virtualenv
+if [ -z "$VIRTUAL_ENV" ]; then
+ virtualenv $VENV --no-site-packages --always-copy
+ source $VENV/bin/activate
+ DEACTIVE=true
+fi
+
+### install dependencies
+pip install -r $REQUIREMENTS_FILE | tee -a $REQUIREMENTS_OUT
+python setup.py develop
+
+### run tests
+tox || exit 1
+
+### static analysis of code
+flake8 --show-source petstore_api/
+
+### deactivate virtualenv
+#if [ $DEACTIVE == true ]; then
+# deactivate
+#fi
diff --git a/samples/client/petstore/python-experimental/testfiles/foo.png b/samples/client/petstore/python-experimental/testfiles/foo.png
new file mode 100644
index 00000000000..a9b12cf5927
Binary files /dev/null and b/samples/client/petstore/python-experimental/testfiles/foo.png differ
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/__init__.py b/samples/client/petstore/python-experimental/tests/__init__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/__init__.py
rename to samples/client/petstore/python-experimental/tests/__init__.py
diff --git a/samples/client/petstore/python-experimental/tests/test_api_client.py b/samples/client/petstore/python-experimental/tests/test_api_client.py
new file mode 100644
index 00000000000..a41dbaba9c9
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_api_client.py
@@ -0,0 +1,172 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ pip install nose (optional)
+$ cd OpenAPIetstore-python
+$ nosetests -v
+"""
+
+import os
+import time
+import unittest
+from dateutil.parser import parse
+
+import petstore_api
+import petstore_api.configuration
+
+HOST = 'http://petstore.swagger.io/v2'
+
+
+class ApiClientTests(unittest.TestCase):
+
+ def setUp(self):
+ self.api_client = petstore_api.ApiClient()
+
+ def test_configuration(self):
+ config = petstore_api.Configuration()
+ config.host = 'http://localhost/'
+
+ config.api_key['api_key'] = '123456'
+ config.api_key_prefix['api_key'] = 'PREFIX'
+ config.username = 'test_username'
+ config.password = 'test_password'
+
+ header_params = {'test1': 'value1'}
+ query_params = {'test2': 'value2'}
+ auth_settings = ['api_key', 'unknown']
+
+ client = petstore_api.ApiClient(config)
+
+ # test prefix
+ self.assertEqual('PREFIX', client.configuration.api_key_prefix['api_key'])
+
+ # update parameters based on auth setting
+ client.update_params_for_auth(header_params, query_params, auth_settings)
+
+ # test api key auth
+ self.assertEqual(header_params['test1'], 'value1')
+ self.assertEqual(header_params['api_key'], 'PREFIX 123456')
+ self.assertEqual(query_params['test2'], 'value2')
+
+ # test basic auth
+ self.assertEqual('test_username', client.configuration.username)
+ self.assertEqual('test_password', client.configuration.password)
+
+ def test_select_header_accept(self):
+ accepts = ['APPLICATION/JSON', 'APPLICATION/XML']
+ accept = self.api_client.select_header_accept(accepts)
+ self.assertEqual(accept, 'application/json')
+
+ accepts = ['application/json', 'application/xml']
+ accept = self.api_client.select_header_accept(accepts)
+ self.assertEqual(accept, 'application/json')
+
+ accepts = ['application/xml', 'application/json']
+ accept = self.api_client.select_header_accept(accepts)
+ self.assertEqual(accept, 'application/json')
+
+ accepts = ['text/plain', 'application/xml']
+ accept = self.api_client.select_header_accept(accepts)
+ self.assertEqual(accept, 'text/plain, application/xml')
+
+ accepts = []
+ accept = self.api_client.select_header_accept(accepts)
+ self.assertEqual(accept, None)
+
+ def test_select_header_content_type(self):
+ content_types = ['APPLICATION/JSON', 'APPLICATION/XML']
+ content_type = self.api_client.select_header_content_type(content_types)
+ self.assertEqual(content_type, 'application/json')
+
+ content_types = ['application/json', 'application/xml']
+ content_type = self.api_client.select_header_content_type(content_types)
+ self.assertEqual(content_type, 'application/json')
+
+ content_types = ['application/xml', 'application/json']
+ content_type = self.api_client.select_header_content_type(content_types)
+ self.assertEqual(content_type, 'application/json')
+
+ content_types = ['text/plain', 'application/xml']
+ content_type = self.api_client.select_header_content_type(content_types)
+ self.assertEqual(content_type, 'text/plain')
+
+ content_types = []
+ content_type = self.api_client.select_header_content_type(content_types)
+ self.assertEqual(content_type, 'application/json')
+
+ def test_sanitize_for_serialization(self):
+ # None
+ data = None
+ result = self.api_client.sanitize_for_serialization(None)
+ self.assertEqual(result, data)
+
+ # str
+ data = "test string"
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, data)
+
+ # int
+ data = 1
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, data)
+
+ # bool
+ data = True
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, data)
+
+ # date
+ data = parse("1997-07-16").date() # date
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, "1997-07-16")
+
+ # datetime
+ data = parse("1997-07-16T19:20:30.45+01:00") # datetime
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, "1997-07-16T19:20:30.450000+01:00")
+
+ # list
+ data = [1]
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, data)
+
+ # dict
+ data = {"test key": "test value"}
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, data)
+
+ # model
+ pet_dict = {"id": 1, "name": "monkey",
+ "category": {"id": 1, "name": "test category"},
+ "tags": [{"id": 1, "name": "test tag1"},
+ {"id": 2, "name": "test tag2"}],
+ "status": "available",
+ "photoUrls": ["http://foo.bar.com/3",
+ "http://foo.bar.com/4"]}
+ pet = petstore_api.Pet(name=pet_dict["name"], photo_urls=pet_dict["photoUrls"])
+ pet.id = pet_dict["id"]
+ cate = petstore_api.Category()
+ cate.id = pet_dict["category"]["id"]
+ cate.name = pet_dict["category"]["name"]
+ pet.category = cate
+ tag1 = petstore_api.Tag()
+ tag1.id = pet_dict["tags"][0]["id"]
+ tag1.name = pet_dict["tags"][0]["name"]
+ tag2 = petstore_api.Tag()
+ tag2.id = pet_dict["tags"][1]["id"]
+ tag2.name = pet_dict["tags"][1]["name"]
+ pet.tags = [tag1, tag2]
+ pet.status = pet_dict["status"]
+
+ data = pet
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, pet_dict)
+
+ # list of models
+ list_of_pet_dict = [pet_dict]
+ data = [pet]
+ result = self.api_client.sanitize_for_serialization(data)
+ self.assertEqual(result, list_of_pet_dict)
diff --git a/samples/client/petstore/python-experimental/tests/test_api_exception.py b/samples/client/petstore/python-experimental/tests/test_api_exception.py
new file mode 100644
index 00000000000..75bf81a8de0
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_api_exception.py
@@ -0,0 +1,86 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ pip install nose (optional)
+$ cd petstore_api-python
+$ nosetests -v
+"""
+
+import os
+import sys
+import unittest
+
+import petstore_api
+from petstore_api.rest import ApiException
+
+from .util import id_gen
+
+class ApiExceptionTests(unittest.TestCase):
+
+ def setUp(self):
+ self.api_client = petstore_api.ApiClient()
+ self.pet_api = petstore_api.PetApi(self.api_client)
+ self.setUpModels()
+
+ def setUpModels(self):
+ self.category = petstore_api.Category()
+ self.category.id = id_gen()
+ self.category.name = "dog"
+ self.tag = petstore_api.Tag()
+ self.tag.id = id_gen()
+ self.tag.name = "blank"
+ self.pet = petstore_api.Pet(name="hello kity", photo_urls=["http://foo.bar.com/1", "http://foo.bar.com/2"])
+ self.pet.id = id_gen()
+ self.pet.status = "sold"
+ self.pet.category = self.category
+ self.pet.tags = [self.tag]
+
+ def test_404_error(self):
+ self.pet_api.add_pet(self.pet)
+ self.pet_api.delete_pet(pet_id=self.pet.id)
+
+ with self.checkRaiseRegex(ApiException, "Pet not found"):
+ self.pet_api.get_pet_by_id(pet_id=self.pet.id)
+
+ try:
+ self.pet_api.get_pet_by_id(pet_id=self.pet.id)
+ except ApiException as e:
+ self.assertEqual(e.status, 404)
+ self.assertEqual(e.reason, "Not Found")
+ self.checkRegex(e.body, "Pet not found")
+
+ def test_500_error(self):
+ self.pet_api.add_pet(self.pet)
+
+ with self.checkRaiseRegex(ApiException, "Internal Server Error"):
+ self.pet_api.upload_file(
+ pet_id=self.pet.id,
+ additional_metadata="special",
+ file=None
+ )
+
+ try:
+ self.pet_api.upload_file(
+ pet_id=self.pet.id,
+ additional_metadata="special",
+ file=None
+ )
+ except ApiException as e:
+ self.assertEqual(e.status, 500)
+ self.assertEqual(e.reason, "Internal Server Error")
+ self.checkRegex(e.body, "Error 500 Internal Server Error")
+
+ def checkRaiseRegex(self, expected_exception, expected_regex):
+ if sys.version_info < (3, 0):
+ return self.assertRaisesRegexp(expected_exception, expected_regex)
+
+ return self.assertRaisesRegex(expected_exception, expected_regex)
+
+ def checkRegex(self, text, expected_regex):
+ if sys.version_info < (3, 0):
+ return self.assertRegexpMatches(text, expected_regex)
+
+ return self.assertRegex(text, expected_regex)
diff --git a/samples/client/petstore/python-experimental/tests/test_deserialization.py b/samples/client/petstore/python-experimental/tests/test_deserialization.py
new file mode 100644
index 00000000000..6c4e083d1cd
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_deserialization.py
@@ -0,0 +1,241 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ pip install nose (optional)
+$ cd OpenAPIPetstore-python
+$ nosetests -v
+"""
+from collections import namedtuple
+import json
+import os
+import time
+import unittest
+import datetime
+
+import petstore_api
+
+
+MockResponse = namedtuple('MockResponse', 'data')
+
+
+class DeserializationTests(unittest.TestCase):
+
+ def setUp(self):
+ self.api_client = petstore_api.ApiClient()
+ self.deserialize = self.api_client.deserialize
+
+ def test_enum_test(self):
+ """ deserialize dict(str, Enum_Test) """
+ data = {
+ 'enum_test': {
+ "enum_string": "UPPER",
+ "enum_string_required": "lower",
+ "enum_integer": 1,
+ "enum_number": 1.1,
+ "outerEnum": "placed"
+ }
+ }
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, 'dict(str, EnumTest)')
+ self.assertTrue(isinstance(deserialized, dict))
+ self.assertTrue(isinstance(deserialized['enum_test'], petstore_api.EnumTest))
+ self.assertEqual(deserialized['enum_test'],
+ petstore_api.EnumTest(enum_string="UPPER",
+ enum_string_required="lower",
+ enum_integer=1,
+ enum_number=1.1,
+ outer_enum=petstore_api.OuterEnum.PLACED))
+
+ def test_deserialize_dict_str_pet(self):
+ """ deserialize dict(str, Pet) """
+ data = {
+ 'pet': {
+ "id": 0,
+ "category": {
+ "id": 0,
+ "name": "string"
+ },
+ "name": "doggie",
+ "photoUrls": [
+ "string"
+ ],
+ "tags": [
+ {
+ "id": 0,
+ "name": "string"
+ }
+ ],
+ "status": "available"
+ }
+ }
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, 'dict(str, Pet)')
+ self.assertTrue(isinstance(deserialized, dict))
+ self.assertTrue(isinstance(deserialized['pet'], petstore_api.Pet))
+
+ def test_deserialize_dict_str_dog(self):
+ """ deserialize dict(str, Dog), use discriminator"""
+ data = {
+ 'dog': {
+ "id": 0,
+ "className": "Dog",
+ "color": "white",
+ "bread": "Jack Russel Terrier"
+ }
+ }
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, 'dict(str, Animal)')
+ self.assertTrue(isinstance(deserialized, dict))
+ self.assertTrue(isinstance(deserialized['dog'], petstore_api.Dog))
+
+ def test_deserialize_dict_str_int(self):
+ """ deserialize dict(str, int) """
+ data = {
+ 'integer': 1
+ }
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, 'dict(str, int)')
+ self.assertTrue(isinstance(deserialized, dict))
+ self.assertTrue(isinstance(deserialized['integer'], int))
+
+ def test_deserialize_str(self):
+ """ deserialize str """
+ data = "test str"
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, "str")
+ self.assertTrue(isinstance(deserialized, str))
+
+ def test_deserialize_date(self):
+ """ deserialize date """
+ data = "1997-07-16"
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, "date")
+ self.assertTrue(isinstance(deserialized, datetime.date))
+
+ def test_deserialize_datetime(self):
+ """ deserialize datetime """
+ data = "1997-07-16T19:20:30.45+01:00"
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, "datetime")
+ self.assertTrue(isinstance(deserialized, datetime.datetime))
+
+ def test_deserialize_pet(self):
+ """ deserialize pet """
+ data = {
+ "id": 0,
+ "category": {
+ "id": 0,
+ "name": "string"
+ },
+ "name": "doggie",
+ "photoUrls": [
+ "string"
+ ],
+ "tags": [
+ {
+ "id": 0,
+ "name": "string"
+ }
+ ],
+ "status": "available"
+ }
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, "Pet")
+ self.assertTrue(isinstance(deserialized, petstore_api.Pet))
+ self.assertEqual(deserialized.id, 0)
+ self.assertEqual(deserialized.name, "doggie")
+ self.assertTrue(isinstance(deserialized.category, petstore_api.Category))
+ self.assertEqual(deserialized.category.name, "string")
+ self.assertTrue(isinstance(deserialized.tags, list))
+ self.assertEqual(deserialized.tags[0].name, "string")
+
+ def test_deserialize_list_of_pet(self):
+ """ deserialize list[Pet] """
+ data = [
+ {
+ "id": 0,
+ "category": {
+ "id": 0,
+ "name": "string"
+ },
+ "name": "doggie0",
+ "photoUrls": [
+ "string"
+ ],
+ "tags": [
+ {
+ "id": 0,
+ "name": "string"
+ }
+ ],
+ "status": "available"
+ },
+ {
+ "id": 1,
+ "category": {
+ "id": 0,
+ "name": "string"
+ },
+ "name": "doggie1",
+ "photoUrls": [
+ "string"
+ ],
+ "tags": [
+ {
+ "id": 0,
+ "name": "string"
+ }
+ ],
+ "status": "available"
+ }]
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, "list[Pet]")
+ self.assertTrue(isinstance(deserialized, list))
+ self.assertTrue(isinstance(deserialized[0], petstore_api.Pet))
+ self.assertEqual(deserialized[0].id, 0)
+ self.assertEqual(deserialized[1].id, 1)
+ self.assertEqual(deserialized[0].name, "doggie0")
+ self.assertEqual(deserialized[1].name, "doggie1")
+
+ def test_deserialize_nested_dict(self):
+ """ deserialize dict(str, dict(str, int)) """
+ data = {
+ "foo": {
+ "bar": 1
+ }
+ }
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, "dict(str, dict(str, int))")
+ self.assertTrue(isinstance(deserialized, dict))
+ self.assertTrue(isinstance(deserialized["foo"], dict))
+ self.assertTrue(isinstance(deserialized["foo"]["bar"], int))
+
+ def test_deserialize_nested_list(self):
+ """ deserialize list[list[str]] """
+ data = [["foo"]]
+ response = MockResponse(data=json.dumps(data))
+
+ deserialized = self.deserialize(response, "list[list[str]]")
+ self.assertTrue(isinstance(deserialized, list))
+ self.assertTrue(isinstance(deserialized[0], list))
+ self.assertTrue(isinstance(deserialized[0][0], str))
+
+ def test_deserialize_none(self):
+ """ deserialize None """
+ response = MockResponse(data=json.dumps(None))
+
+ deserialized = self.deserialize(response, "datetime")
+ self.assertIsNone(deserialized)
diff --git a/samples/client/petstore/python-experimental/tests/test_enum_arrays.py b/samples/client/petstore/python-experimental/tests/test_enum_arrays.py
new file mode 100644
index 00000000000..2f7e347f9c3
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_enum_arrays.py
@@ -0,0 +1,165 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ pip install nose (optional)
+$ cd petstore_api-python
+$ nosetests -v
+"""
+
+import os
+import time
+import unittest
+
+import petstore_api
+
+
+class EnumArraysTests(unittest.TestCase):
+
+ def test_enumarrays_init(self):
+ #
+ # Check various combinations of valid values.
+ #
+ fish_or_crab = petstore_api.EnumArrays(just_symbol=">=")
+ self.assertEqual(fish_or_crab.just_symbol, ">=")
+ self.assertEqual(fish_or_crab.array_enum, None)
+
+ fish_or_crab = petstore_api.EnumArrays(just_symbol="$", array_enum=["fish"])
+ self.assertEqual(fish_or_crab.just_symbol, "$")
+ self.assertEqual(fish_or_crab.array_enum, ["fish"])
+
+ fish_or_crab = petstore_api.EnumArrays(just_symbol=">=", array_enum=["fish"])
+ self.assertEqual(fish_or_crab.just_symbol, ">=")
+ self.assertEqual(fish_or_crab.array_enum, ["fish"])
+
+ fish_or_crab = petstore_api.EnumArrays("$", ["crab"])
+ self.assertEqual(fish_or_crab.just_symbol, "$")
+ self.assertEqual(fish_or_crab.array_enum, ["crab"])
+
+
+ #
+ # Check if setting invalid values fails
+ #
+ try:
+ fish_or_crab = petstore_api.EnumArrays(just_symbol="<=")
+ self.assertTrue(0)
+ except ValueError:
+ self.assertTrue(1)
+
+ try:
+ fish_or_crab = petstore_api.EnumArrays(just_symbol="$", array_enum=["dog"])
+ self.assertTrue(0)
+ except ValueError:
+ self.assertTrue(1)
+
+ try:
+ fish_or_crab = petstore_api.EnumArrays(just_symbol=["$"], array_enum=["dog"])
+ self.assertTrue(0)
+ except ValueError:
+ self.assertTrue(1)
+
+
+ def test_enumarrays_setter(self):
+
+ #
+ # Check various combinations of valid values
+ #
+ fish_or_crab = petstore_api.EnumArrays()
+
+ fish_or_crab.just_symbol = ">="
+ self.assertEqual(fish_or_crab.just_symbol, ">=")
+
+ fish_or_crab.just_symbol = "$"
+ self.assertEqual(fish_or_crab.just_symbol, "$")
+
+ fish_or_crab.array_enum = []
+ self.assertEqual(fish_or_crab.array_enum, [])
+
+ fish_or_crab.array_enum = ["fish"]
+ self.assertEqual(fish_or_crab.array_enum, ["fish"])
+
+ fish_or_crab.array_enum = ["fish", "fish", "fish"]
+ self.assertEqual(fish_or_crab.array_enum, ["fish", "fish", "fish"])
+
+ fish_or_crab.array_enum = ["crab"]
+ self.assertEqual(fish_or_crab.array_enum, ["crab"])
+
+ fish_or_crab.array_enum = ["crab", "fish"]
+ self.assertEqual(fish_or_crab.array_enum, ["crab", "fish"])
+
+ fish_or_crab.array_enum = ["crab", "fish", "crab", "fish"]
+ self.assertEqual(fish_or_crab.array_enum, ["crab", "fish", "crab", "fish"])
+
+ #
+ # Check if setting invalid values fails
+ #
+ fish_or_crab = petstore_api.EnumArrays()
+ try:
+ fish_or_crab.just_symbol = "!="
+ except ValueError:
+ self.assertEqual(fish_or_crab.just_symbol, None)
+
+ try:
+ fish_or_crab.just_symbol = ["fish"]
+ except ValueError:
+ self.assertEqual(fish_or_crab.just_symbol, None)
+
+ try:
+ fish_or_crab.array_enum = ["cat"]
+ except ValueError:
+ self.assertEqual(fish_or_crab.array_enum, None)
+
+ try:
+ fish_or_crab.array_enum = ["fish", "crab", "dog"]
+ except ValueError:
+ self.assertEqual(fish_or_crab.array_enum, None)
+
+ try:
+ fish_or_crab.array_enum = "fish"
+ except ValueError:
+ self.assertEqual(fish_or_crab.array_enum, None)
+
+
+ def test_todict(self):
+ #
+ # Check if dictionary serialization works
+ #
+ dollar_fish_crab_dict = {
+ 'just_symbol': "$",
+ 'array_enum': ["fish", "crab"]
+ }
+
+ dollar_fish_crab = petstore_api.EnumArrays("$", ["fish", "crab"])
+
+ self.assertEqual(dollar_fish_crab_dict, dollar_fish_crab.to_dict())
+
+ #
+ # Sanity check for different arrays
+ #
+ dollar_crab_fish_dict = {
+ 'just_symbol': "$",
+ 'array_enum': ["crab", "fish"]
+ }
+
+ dollar_fish_crab = petstore_api.EnumArrays("$", ["fish", "crab"])
+
+ self.assertNotEqual(dollar_crab_fish_dict, dollar_fish_crab.to_dict())
+
+
+ def test_equals(self):
+ #
+ # Check if object comparison works
+ #
+ fish1 = petstore_api.EnumArrays("$", ["fish"])
+ fish2 = petstore_api.EnumArrays("$", ["fish"])
+ self.assertEqual(fish1, fish2)
+
+ fish = petstore_api.EnumArrays("$", ["fish"])
+ crab = petstore_api.EnumArrays("$", ["crab"])
+ self.assertNotEqual(fish, crab)
+
+ dollar = petstore_api.EnumArrays("$")
+ greater = petstore_api.EnumArrays(">=")
+ self.assertNotEqual(dollar, greater)
\ No newline at end of file
diff --git a/samples/client/petstore/python-experimental/tests/test_map_test.py b/samples/client/petstore/python-experimental/tests/test_map_test.py
new file mode 100644
index 00000000000..6031cebf3a2
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_map_test.py
@@ -0,0 +1,117 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ pip install nose (optional)
+$ cd petstore_api-python
+$ nosetests -v
+"""
+
+import os
+import time
+import unittest
+
+import petstore_api
+
+
+class MapTestTests(unittest.TestCase):
+
+ def test_maptest_init(self):
+ #
+ # Test MapTest construction with valid values
+ #
+ up_or_low_dict = {
+ 'UPPER': "UP",
+ 'lower': "low"
+ }
+ map_enum_test = petstore_api.MapTest(map_of_enum_string=up_or_low_dict)
+
+ self.assertEqual(map_enum_test.map_of_enum_string, up_or_low_dict)
+
+ map_of_map_of_strings = {
+ 'val1': 1,
+ 'valText': "Text",
+ 'valueDict': up_or_low_dict
+ }
+ map_enum_test = petstore_api.MapTest(map_map_of_string=map_of_map_of_strings)
+
+ self.assertEqual(map_enum_test.map_map_of_string, map_of_map_of_strings)
+
+ #
+ # Make sure that the init fails for invalid enum values
+ #
+ black_or_white_dict = {
+ 'black': "UP",
+ 'white': "low"
+ }
+ try:
+ map_enum_test = petstore_api.MapTest(map_of_enum_string=black_or_white_dict)
+ self.assertTrue(0)
+ except ValueError:
+ self.assertTrue(1)
+
+ def test_maptest_setter(self):
+ #
+ # Check with some valid values
+ #
+ map_enum_test = petstore_api.MapTest()
+ up_or_low_dict = {
+ 'UPPER': "UP",
+ 'lower': "low"
+ }
+ map_enum_test.map_of_enum_string = up_or_low_dict
+ self.assertEqual(map_enum_test.map_of_enum_string, up_or_low_dict)
+
+ #
+ # Check if the setter fails for invalid enum values
+ #
+ map_enum_test = petstore_api.MapTest()
+ black_or_white_dict = {
+ 'black': "UP",
+ 'white': "low"
+ }
+ try:
+ map_enum_test.map_of_enum_string = black_or_white_dict
+ except ValueError:
+ self.assertEqual(map_enum_test.map_of_enum_string, None)
+
+ def test_todict(self):
+ #
+ # Check dictionary serialization
+ #
+ map_enum_test = petstore_api.MapTest()
+ up_or_low_dict = {
+ 'UPPER': "UP",
+ 'lower': "low"
+ }
+ map_of_map_of_strings = {
+ 'val1': 1,
+ 'valText': "Text",
+ 'valueDict': up_or_low_dict
+ }
+ indirect_map = {
+ 'option1': True
+ }
+ direct_map = {
+ 'option2': False
+ }
+ map_enum_test.map_of_enum_string = up_or_low_dict
+ map_enum_test.map_map_of_string = map_of_map_of_strings
+ map_enum_test.indirect_map = indirect_map
+ map_enum_test.direct_map = direct_map
+
+ self.assertEqual(map_enum_test.map_of_enum_string, up_or_low_dict)
+ self.assertEqual(map_enum_test.map_map_of_string, map_of_map_of_strings)
+ self.assertEqual(map_enum_test.indirect_map, indirect_map)
+ self.assertEqual(map_enum_test.direct_map, direct_map)
+
+ expected_dict = {
+ 'map_of_enum_string': up_or_low_dict,
+ 'map_map_of_string': map_of_map_of_strings,
+ 'indirect_map': indirect_map,
+ 'direct_map': direct_map
+ }
+
+ self.assertEqual(map_enum_test.to_dict(), expected_dict)
diff --git a/samples/client/petstore/python-experimental/tests/test_order_model.py b/samples/client/petstore/python-experimental/tests/test_order_model.py
new file mode 100644
index 00000000000..31dc6e3661c
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_order_model.py
@@ -0,0 +1,27 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ pip install nose (optional)
+$ cd petstore_api-python
+$ nosetests -v
+"""
+
+import os
+import time
+import unittest
+
+import petstore_api
+
+
+class OrderModelTests(unittest.TestCase):
+
+ def test_status(self):
+ order = petstore_api.Order()
+ order.status = "placed"
+ self.assertEqual("placed", order.status)
+
+ with self.assertRaises(ValueError):
+ order.status = "invalid"
diff --git a/samples/client/petstore/python-experimental/tests/test_pet_api.py b/samples/client/petstore/python-experimental/tests/test_pet_api.py
new file mode 100644
index 00000000000..4f38fbd6e17
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_pet_api.py
@@ -0,0 +1,272 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ docker pull swaggerapi/petstore
+$ docker run -d -e SWAGGER_HOST=http://petstore.swagger.io -e SWAGGER_BASE_PATH=/v2 -p 80:8080 swaggerapi/petstore
+$ pip install nose (optional)
+$ cd petstore_api-python
+$ nosetests -v
+"""
+
+import os
+import unittest
+
+import petstore_api
+from petstore_api import Configuration
+from petstore_api.rest import ApiException
+
+from .util import id_gen
+
+import json
+
+import urllib3
+
+HOST = 'http://localhost/v2'
+
+
+class TimeoutWithEqual(urllib3.Timeout):
+ def __init__(self, *arg, **kwargs):
+ super(TimeoutWithEqual, self).__init__(*arg, **kwargs)
+
+ def __eq__(self, other):
+ return self._read == other._read and self._connect == other._connect and self.total == other.total
+
+
+class MockPoolManager(object):
+ def __init__(self, tc):
+ self._tc = tc
+ self._reqs = []
+
+ def expect_request(self, *args, **kwargs):
+ self._reqs.append((args, kwargs))
+
+ def request(self, *args, **kwargs):
+ self._tc.assertTrue(len(self._reqs) > 0)
+ r = self._reqs.pop(0)
+ self._tc.maxDiff = None
+ self._tc.assertEqual(r[0], args)
+ self._tc.assertEqual(r[1], kwargs)
+ return urllib3.HTTPResponse(status=200, body=b'test')
+
+
+class PetApiTests(unittest.TestCase):
+
+ def setUp(self):
+ config = Configuration()
+ config.host = HOST
+ self.api_client = petstore_api.ApiClient(config)
+ self.pet_api = petstore_api.PetApi(self.api_client)
+ self.setUpModels()
+ self.setUpFiles()
+
+ def setUpModels(self):
+ self.category = petstore_api.Category()
+ self.category.id = id_gen()
+ self.category.name = "dog"
+ self.tag = petstore_api.Tag()
+ self.tag.id = id_gen()
+ self.tag.name = "python-pet-tag"
+ self.pet = petstore_api.Pet(name="hello kity", photo_urls=["http://foo.bar.com/1", "http://foo.bar.com/2"])
+ self.pet.id = id_gen()
+ self.pet.status = "sold"
+ self.pet.category = self.category
+ self.pet.tags = [self.tag]
+
+ def setUpFiles(self):
+ self.test_file_dir = os.path.join(os.path.dirname(__file__), "..", "testfiles")
+ self.test_file_dir = os.path.realpath(self.test_file_dir)
+ self.foo = os.path.join(self.test_file_dir, "foo.png")
+
+ def test_preload_content_flag(self):
+ self.pet_api.add_pet(self.pet)
+
+ resp = self.pet_api.find_pets_by_status(status=[self.pet.status], _preload_content=False)
+
+ # return response should at least have read and close methods.
+ self.assertTrue(hasattr(resp, 'read'))
+ self.assertTrue(hasattr(resp, 'close'))
+
+ # Also we need to make sure we can release the connection to a pool (if exists) when we are done with it.
+ self.assertTrue(hasattr(resp, 'release_conn'))
+
+ # Right now, the client returns urllib3.HTTPResponse. If that changed in future, it is probably a breaking
+ # change, however supporting above methods should be enough for most usecases. Remove this test case if
+ # we followed the breaking change procedure for python client (e.g. increasing major version).
+ self.assertTrue(resp.__class__, 'urllib3.response.HTTPResponse')
+
+ resp.close()
+ resp.release_conn()
+
+ def test_timeout(self):
+ mock_pool = MockPoolManager(self)
+ self.api_client.rest_client.pool_manager = mock_pool
+
+ mock_pool.expect_request('POST', 'http://localhost/v2/pet',
+ body=json.dumps(self.api_client.sanitize_for_serialization(self.pet)),
+ headers={'Content-Type': 'application/json',
+ 'Authorization': 'Bearer ',
+ 'User-Agent': 'OpenAPI-Generator/1.0.0/python'},
+ preload_content=True, timeout=TimeoutWithEqual(total=5))
+ mock_pool.expect_request('POST', 'http://localhost/v2/pet',
+ body=json.dumps(self.api_client.sanitize_for_serialization(self.pet)),
+ headers={'Content-Type': 'application/json',
+ 'Authorization': 'Bearer ',
+ 'User-Agent': 'OpenAPI-Generator/1.0.0/python'},
+ preload_content=True, timeout=TimeoutWithEqual(connect=1, read=2))
+
+ self.pet_api.add_pet(self.pet, _request_timeout=5)
+ self.pet_api.add_pet(self.pet, _request_timeout=(1, 2))
+
+ def test_separate_default_client_instances(self):
+ pet_api = petstore_api.PetApi()
+ pet_api2 = petstore_api.PetApi()
+ self.assertNotEqual(pet_api.api_client, pet_api2.api_client)
+
+ pet_api.api_client.user_agent = 'api client 3'
+ pet_api2.api_client.user_agent = 'api client 4'
+
+ self.assertNotEqual(pet_api.api_client.user_agent, pet_api2.api_client.user_agent)
+
+ def test_separate_default_config_instances(self):
+ pet_api = petstore_api.PetApi()
+ pet_api2 = petstore_api.PetApi()
+ self.assertNotEqual(pet_api.api_client.configuration, pet_api2.api_client.configuration)
+
+ pet_api.api_client.configuration.host = 'somehost'
+ pet_api2.api_client.configuration.host = 'someotherhost'
+ self.assertNotEqual(pet_api.api_client.configuration.host, pet_api2.api_client.configuration.host)
+
+ def test_async_request(self):
+ thread = self.pet_api.add_pet(self.pet, async_req=True)
+ response = thread.get()
+ self.assertIsNone(response)
+
+ thread = self.pet_api.get_pet_by_id(self.pet.id, async_req=True)
+ result = thread.get()
+ self.assertIsInstance(result, petstore_api.Pet)
+
+ def test_async_with_result(self):
+ self.pet_api.add_pet(self.pet, async_req=False)
+
+ thread = self.pet_api.get_pet_by_id(self.pet.id, async_req=True)
+ thread2 = self.pet_api.get_pet_by_id(self.pet.id, async_req=True)
+
+ response = thread.get()
+ response2 = thread2.get()
+
+ self.assertEquals(response.id, self.pet.id)
+ self.assertIsNotNone(response2.id, self.pet.id)
+
+ def test_async_with_http_info(self):
+ self.pet_api.add_pet(self.pet)
+
+ thread = self.pet_api.get_pet_by_id_with_http_info(self.pet.id, async_req=True)
+ data, status, headers = thread.get()
+
+ self.assertIsInstance(data, petstore_api.Pet)
+ self.assertEquals(status, 200)
+
+ def test_async_exception(self):
+ self.pet_api.add_pet(self.pet)
+
+ thread = self.pet_api.get_pet_by_id("-9999999999999", async_req=True)
+
+ exception = None
+ try:
+ thread.get()
+ except ApiException as e:
+ exception = e
+
+ self.assertIsInstance(exception, ApiException)
+ self.assertEqual(exception.status, 404)
+
+ def test_add_pet_and_get_pet_by_id(self):
+ self.pet_api.add_pet(self.pet)
+
+ fetched = self.pet_api.get_pet_by_id(pet_id=self.pet.id)
+ self.assertIsNotNone(fetched)
+ self.assertEqual(self.pet.id, fetched.id)
+ self.assertIsNotNone(fetched.category)
+ self.assertEqual(self.pet.category.name, fetched.category.name)
+
+ def test_add_pet_and_get_pet_by_id_with_http_info(self):
+ self.pet_api.add_pet(self.pet)
+
+ fetched = self.pet_api.get_pet_by_id_with_http_info(pet_id=self.pet.id)
+ self.assertIsNotNone(fetched)
+ self.assertEqual(self.pet.id, fetched[0].id)
+ self.assertIsNotNone(fetched[0].category)
+ self.assertEqual(self.pet.category.name, fetched[0].category.name)
+
+ def test_update_pet(self):
+ self.pet.name = "hello kity with updated"
+ self.pet_api.update_pet(self.pet)
+
+ fetched = self.pet_api.get_pet_by_id(pet_id=self.pet.id)
+ self.assertIsNotNone(fetched)
+ self.assertEqual(self.pet.id, fetched.id)
+ self.assertEqual(self.pet.name, fetched.name)
+ self.assertIsNotNone(fetched.category)
+ self.assertEqual(fetched.category.name, self.pet.category.name)
+
+ def test_find_pets_by_status(self):
+ self.pet_api.add_pet(self.pet)
+
+ self.assertIn(
+ self.pet.id,
+ list(map(lambda x: getattr(x, 'id'), self.pet_api.find_pets_by_status(status=[self.pet.status])))
+ )
+
+ def test_find_pets_by_tags(self):
+ self.pet_api.add_pet(self.pet)
+
+ self.assertIn(
+ self.pet.id,
+ list(map(lambda x: getattr(x, 'id'), self.pet_api.find_pets_by_tags(tags=[self.tag.name])))
+ )
+
+ def test_update_pet_with_form(self):
+ self.pet_api.add_pet(self.pet)
+
+ name = "hello kity with form updated"
+ status = "pending"
+ self.pet_api.update_pet_with_form(pet_id=self.pet.id, name=name, status=status)
+
+ fetched = self.pet_api.get_pet_by_id(pet_id=self.pet.id)
+ self.assertEqual(self.pet.id, fetched.id)
+ self.assertEqual(name, fetched.name)
+ self.assertEqual(status, fetched.status)
+
+ def test_upload_file(self):
+ # upload file with form parameter
+ try:
+ additional_metadata = "special"
+ self.pet_api.upload_file(
+ pet_id=self.pet.id,
+ additional_metadata=additional_metadata,
+ file=self.foo
+ )
+ except ApiException as e:
+ self.fail("upload_file() raised {0} unexpectedly".format(type(e)))
+
+ # upload only file
+ try:
+ self.pet_api.upload_file(pet_id=self.pet.id, file=self.foo)
+ except ApiException as e:
+ self.fail("upload_file() raised {0} unexpectedly".format(type(e)))
+
+ def test_delete_pet(self):
+ self.pet_api.add_pet(self.pet)
+ self.pet_api.delete_pet(pet_id=self.pet.id, api_key="special-key")
+
+ try:
+ self.pet_api.get_pet_by_id(pet_id=self.pet.id)
+ raise Exception("expected an error")
+ except ApiException as e:
+ self.assertEqual(404, e.status)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/samples/client/petstore/python-experimental/tests/test_pet_model.py b/samples/client/petstore/python-experimental/tests/test_pet_model.py
new file mode 100644
index 00000000000..70ab1a007a0
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_pet_model.py
@@ -0,0 +1,69 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ pip install nose (optional)
+$ cd petstore_api-python
+$ nosetests -v
+"""
+
+import os
+import time
+import unittest
+
+import petstore_api
+
+
+class PetModelTests(unittest.TestCase):
+
+ def setUp(self):
+ self.pet = petstore_api.Pet(name="test name", photo_urls=["string"])
+ self.pet.id = 1
+ self.pet.status = "available"
+ cate = petstore_api.Category()
+ cate.id = 1
+ cate.name = "dog"
+ self.pet.category = cate
+ tag = petstore_api.Tag()
+ tag.id = 1
+ self.pet.tags = [tag]
+
+ def test_to_str(self):
+ data = ("{'category': {'id': 1, 'name': 'dog'},\n"
+ " 'id': 1,\n"
+ " 'name': 'test name',\n"
+ " 'photo_urls': ['string'],\n"
+ " 'status': 'available',\n"
+ " 'tags': [{'id': 1, 'name': None}]}")
+ self.assertEqual(data, self.pet.to_str())
+
+ def test_equal(self):
+ self.pet1 = petstore_api.Pet(name="test name", photo_urls=["string"])
+ self.pet1.id = 1
+ self.pet1.status = "available"
+ cate1 = petstore_api.Category()
+ cate1.id = 1
+ cate1.name = "dog"
+ self.pet.category = cate1
+ tag1 = petstore_api.Tag()
+ tag1.id = 1
+ self.pet1.tags = [tag1]
+
+ self.pet2 = petstore_api.Pet(name="test name", photo_urls=["string"])
+ self.pet2.id = 1
+ self.pet2.status = "available"
+ cate2 = petstore_api.Category()
+ cate2.id = 1
+ cate2.name = "dog"
+ self.pet.category = cate2
+ tag2 = petstore_api.Tag()
+ tag2.id = 1
+ self.pet2.tags = [tag2]
+
+ self.assertTrue(self.pet1 == self.pet2)
+
+ # reset pet1 tags to empty array so that object comparison returns false
+ self.pet1.tags = []
+ self.assertFalse(self.pet1 == self.pet2)
diff --git a/samples/client/petstore/python-experimental/tests/test_store_api.py b/samples/client/petstore/python-experimental/tests/test_store_api.py
new file mode 100644
index 00000000000..1817477aba6
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/test_store_api.py
@@ -0,0 +1,32 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+Run the tests.
+$ pip install nose (optional)
+$ cd OpenAP/Petstore-python
+$ nosetests -v
+"""
+
+import os
+import time
+import unittest
+
+import petstore_api
+from petstore_api.rest import ApiException
+
+
+class StoreApiTests(unittest.TestCase):
+
+ def setUp(self):
+ self.store_api = petstore_api.StoreApi()
+
+ def tearDown(self):
+ # sleep 1 sec between two every 2 tests
+ time.sleep(1)
+
+ def test_get_inventory(self):
+ data = self.store_api.get_inventory()
+ self.assertIsNotNone(data)
+ self.assertTrue(isinstance(data, dict))
diff --git a/samples/client/petstore/python-experimental/tests/util.py b/samples/client/petstore/python-experimental/tests/util.py
new file mode 100644
index 00000000000..113d7dcc547
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tests/util.py
@@ -0,0 +1,8 @@
+# flake8: noqa
+
+import random
+
+
+def id_gen(bits=32):
+ """ Returns a n-bit randomly generated int """
+ return int(random.getrandbits(bits))
diff --git a/samples/client/petstore/python-experimental/tox.ini b/samples/client/petstore/python-experimental/tox.ini
new file mode 100644
index 00000000000..3d0be613cfc
--- /dev/null
+++ b/samples/client/petstore/python-experimental/tox.ini
@@ -0,0 +1,10 @@
+[tox]
+envlist = py27, py3
+
+[testenv]
+deps=-r{toxinidir}/requirements.txt
+ -r{toxinidir}/test-requirements.txt
+
+commands=
+ nosetests \
+ []
diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts
index 1d160d5d379..25f845417a7 100644
--- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts
+++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts
@@ -118,7 +118,7 @@ export class BaseAPI {
return of(params).pipe(
map((args) => {
if (preMiddlewares) {
- preMiddlewares.forEach((mw) => (args = mw.pre({ ...args })));
+ preMiddlewares.forEach((mw) => (args = mw.pre!({ ...args })));
}
return args;
}),
@@ -126,7 +126,7 @@ export class BaseAPI {
ajax({ url: args.url, ...args.options }).pipe(
map((response) => {
if (postMiddlewares) {
- postMiddlewares.forEach((mw) => (response = mw.post({ ...params, response })));
+ postMiddlewares.forEach((mw) => (response = mw.post!({ ...params, response })));
}
return response;
})
diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts
index 1d160d5d379..25f845417a7 100644
--- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts
+++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts
@@ -118,7 +118,7 @@ export class BaseAPI {
return of(params).pipe(
map((args) => {
if (preMiddlewares) {
- preMiddlewares.forEach((mw) => (args = mw.pre({ ...args })));
+ preMiddlewares.forEach((mw) => (args = mw.pre!({ ...args })));
}
return args;
}),
@@ -126,7 +126,7 @@ export class BaseAPI {
ajax({ url: args.url, ...args.options }).pipe(
map((response) => {
if (postMiddlewares) {
- postMiddlewares.forEach((mw) => (response = mw.post({ ...params, response })));
+ postMiddlewares.forEach((mw) => (response = mw.post!({ ...params, response })));
}
return response;
})
diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts
index 1d160d5d379..25f845417a7 100644
--- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts
+++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts
@@ -118,7 +118,7 @@ export class BaseAPI {
return of(params).pipe(
map((args) => {
if (preMiddlewares) {
- preMiddlewares.forEach((mw) => (args = mw.pre({ ...args })));
+ preMiddlewares.forEach((mw) => (args = mw.pre!({ ...args })));
}
return args;
}),
@@ -126,7 +126,7 @@ export class BaseAPI {
ajax({ url: args.url, ...args.options }).pipe(
map((response) => {
if (postMiddlewares) {
- postMiddlewares.forEach((mw) => (response = mw.post({ ...params, response })));
+ postMiddlewares.forEach((mw) => (response = mw.post!({ ...params, response })));
}
return response;
})
diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts
index 1d160d5d379..25f845417a7 100644
--- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts
+++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts
@@ -118,7 +118,7 @@ export class BaseAPI {
return of(params).pipe(
map((args) => {
if (preMiddlewares) {
- preMiddlewares.forEach((mw) => (args = mw.pre({ ...args })));
+ preMiddlewares.forEach((mw) => (args = mw.pre!({ ...args })));
}
return args;
}),
@@ -126,7 +126,7 @@ export class BaseAPI {
ajax({ url: args.url, ...args.options }).pipe(
map((response) => {
if (postMiddlewares) {
- postMiddlewares.forEach((mw) => (response = mw.post({ ...params, response })));
+ postMiddlewares.forEach((mw) => (response = mw.post!({ ...params, response })));
}
return response;
})
diff --git a/samples/openapi3/client/petstore/elm/.gitignore b/samples/openapi3/client/petstore/elm/.gitignore
new file mode 100644
index 00000000000..8b0d053e4e3
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/.gitignore
@@ -0,0 +1 @@
+/elm-stuff
\ No newline at end of file
diff --git a/samples/server/openapi3/petstore/php-ze-ph/.openapi-generator-ignore b/samples/openapi3/client/petstore/elm/.openapi-generator-ignore
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/.openapi-generator-ignore
rename to samples/openapi3/client/petstore/elm/.openapi-generator-ignore
diff --git a/samples/openapi3/client/petstore/elm/.openapi-generator/VERSION b/samples/openapi3/client/petstore/elm/.openapi-generator/VERSION
new file mode 100644
index 00000000000..479c313e87b
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/.openapi-generator/VERSION
@@ -0,0 +1 @@
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/elm/README.md b/samples/openapi3/client/petstore/elm/README.md
new file mode 100644
index 00000000000..3f36740911a
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/README.md
@@ -0,0 +1,10 @@
+# Elm API client
+
+This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+## Overview
+This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [openapi-spec](https://github.com/OAI/OpenAPI-Specification) from a remote server, you can easily generate an API client.
+
+- API version: 1.0.0
+- Package version:
+- Build package: org.openapitools.codegen.languages.ElmClientCodegen
diff --git a/samples/openapi3/client/petstore/elm/elm.json b/samples/openapi3/client/petstore/elm/elm.json
new file mode 100644
index 00000000000..398da0d2d6d
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/elm.json
@@ -0,0 +1,33 @@
+{
+ "type": "application",
+ "source-directories": [
+ "src"
+ ],
+ "elm-version": "0.19.0",
+ "dependencies": {
+ "direct": {
+ "NoRedInk/elm-json-decode-pipeline": "1.0.0",
+ "danyx23/elm-uuid": "2.1.2",
+ "elm/browser": "1.0.1",
+ "elm/core": "1.0.2",
+ "elm/html": "1.0.0",
+ "elm/http": "2.0.0",
+ "elm/json": "1.1.2",
+ "elm/time": "1.0.0",
+ "elm/url": "1.0.0",
+ "rtfeldman/elm-iso8601-date-strings": "1.1.3"
+ },
+ "indirect": {
+ "elm/bytes": "1.0.5",
+ "elm/file": "1.0.1",
+ "elm/parser": "1.1.0",
+ "elm/random": "1.0.0",
+ "elm/regex": "1.0.0",
+ "elm/virtual-dom": "1.0.2"
+ }
+ },
+ "test-dependencies": {
+ "direct": {},
+ "indirect": {}
+ }
+}
diff --git a/samples/openapi3/client/petstore/elm/src/Byte.elm b/samples/openapi3/client/petstore/elm/src/Byte.elm
new file mode 100644
index 00000000000..d83623d9846
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Byte.elm
@@ -0,0 +1,18 @@
+module Byte exposing (Byte, decoder, encode)
+
+import Json.Decode as Decode exposing (Decoder)
+import Json.Encode as Encode
+
+
+type alias Byte =
+ String
+
+
+decoder : Decoder Byte
+decoder =
+ Decode.string
+
+
+encode : Byte -> Encode.Value
+encode model =
+ Encode.string model
diff --git a/samples/openapi3/client/petstore/elm/src/Data/ApiResponse.elm b/samples/openapi3/client/petstore/elm/src/Data/ApiResponse.elm
new file mode 100644
index 00000000000..3559c4f3fe8
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Data/ApiResponse.elm
@@ -0,0 +1,48 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Data.ApiResponse exposing (ApiResponse, decoder, encode)
+
+import Dict exposing (Dict)
+import Json.Decode as Decode exposing (Decoder)
+import Json.Decode.Pipeline exposing (optional, required)
+import Json.Encode as Encode
+
+
+{-| Describes the result of uploading an image resource
+-}
+type alias ApiResponse =
+ { code : Maybe (Int)
+ , type_ : Maybe (String)
+ , message : Maybe (String)
+ }
+
+
+decoder : Decoder ApiResponse
+decoder =
+ Decode.succeed ApiResponse
+ |> optional "code" (Decode.nullable Decode.int) Nothing
+ |> optional "type" (Decode.nullable Decode.string) Nothing
+ |> optional "message" (Decode.nullable Decode.string) Nothing
+
+
+
+encode : ApiResponse -> Encode.Value
+encode model =
+ Encode.object
+ [ ( "code", Maybe.withDefault Encode.null (Maybe.map Encode.int model.code) )
+ , ( "type", Maybe.withDefault Encode.null (Maybe.map Encode.string model.type_) )
+ , ( "message", Maybe.withDefault Encode.null (Maybe.map Encode.string model.message) )
+
+ ]
+
+
diff --git a/samples/openapi3/client/petstore/elm/src/Data/Category.elm b/samples/openapi3/client/petstore/elm/src/Data/Category.elm
new file mode 100644
index 00000000000..9a5803626d9
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Data/Category.elm
@@ -0,0 +1,45 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Data.Category exposing (Category, decoder, encode)
+
+import Dict exposing (Dict)
+import Json.Decode as Decode exposing (Decoder)
+import Json.Decode.Pipeline exposing (optional, required)
+import Json.Encode as Encode
+
+
+{-| A category for a pet
+-}
+type alias Category =
+ { id : Maybe (Int)
+ , name : Maybe (String)
+ }
+
+
+decoder : Decoder Category
+decoder =
+ Decode.succeed Category
+ |> optional "id" (Decode.nullable Decode.int) Nothing
+ |> optional "name" (Decode.nullable Decode.string) Nothing
+
+
+
+encode : Category -> Encode.Value
+encode model =
+ Encode.object
+ [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
+ , ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) )
+
+ ]
+
+
diff --git a/samples/openapi3/client/petstore/elm/src/Data/InlineObject.elm b/samples/openapi3/client/petstore/elm/src/Data/InlineObject.elm
new file mode 100644
index 00000000000..0fda842c6c7
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Data/InlineObject.elm
@@ -0,0 +1,43 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Data.InlineObject exposing (InlineObject, decoder, encode)
+
+import Dict exposing (Dict)
+import Json.Decode as Decode exposing (Decoder)
+import Json.Decode.Pipeline exposing (optional, required)
+import Json.Encode as Encode
+
+
+type alias InlineObject =
+ { name : Maybe (String)
+ , status : Maybe (String)
+ }
+
+
+decoder : Decoder InlineObject
+decoder =
+ Decode.succeed InlineObject
+ |> optional "name" (Decode.nullable Decode.string) Nothing
+ |> optional "status" (Decode.nullable Decode.string) Nothing
+
+
+
+encode : InlineObject -> Encode.Value
+encode model =
+ Encode.object
+ [ ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) )
+ , ( "status", Maybe.withDefault Encode.null (Maybe.map Encode.string model.status) )
+
+ ]
+
+
diff --git a/samples/openapi3/client/petstore/elm/src/Data/InlineObject1.elm b/samples/openapi3/client/petstore/elm/src/Data/InlineObject1.elm
new file mode 100644
index 00000000000..8ec67406c35
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Data/InlineObject1.elm
@@ -0,0 +1,43 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Data.InlineObject1 exposing (InlineObject1, decoder, encode)
+
+import Dict exposing (Dict)
+import Json.Decode as Decode exposing (Decoder)
+import Json.Decode.Pipeline exposing (optional, required)
+import Json.Encode as Encode
+
+
+type alias InlineObject1 =
+ { additionalMetadata : Maybe (String)
+ , file : Maybe (String)
+ }
+
+
+decoder : Decoder InlineObject1
+decoder =
+ Decode.succeed InlineObject1
+ |> optional "additionalMetadata" (Decode.nullable Decode.string) Nothing
+ |> optional "file" (Decode.nullable Decode.string) Nothing
+
+
+
+encode : InlineObject1 -> Encode.Value
+encode model =
+ Encode.object
+ [ ( "additionalMetadata", Maybe.withDefault Encode.null (Maybe.map Encode.string model.additionalMetadata) )
+ , ( "file", Maybe.withDefault Encode.null (Maybe.map Encode.string model.file) )
+
+ ]
+
+
diff --git a/samples/openapi3/client/petstore/elm/src/Data/Order_.elm b/samples/openapi3/client/petstore/elm/src/Data/Order_.elm
new file mode 100644
index 00000000000..f1a620a19f1
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Data/Order_.elm
@@ -0,0 +1,101 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Data.Order_ exposing (Order_, Status(..), decoder, encode)
+
+import DateTime exposing (DateTime)
+import Dict exposing (Dict)
+import Json.Decode as Decode exposing (Decoder)
+import Json.Decode.Pipeline exposing (optional, required)
+import Json.Encode as Encode
+
+
+{-| An order for a pets from the pet store
+-}
+type alias Order_ =
+ { id : Maybe (Int)
+ , petId : Maybe (Int)
+ , quantity : Maybe (Int)
+ , shipDate : Maybe (DateTime)
+ , status : Maybe (Status)
+ , complete : Maybe (Bool)
+ }
+
+
+type Status
+ = StatusPlaced
+ | StatusApproved
+ | StatusDelivered
+
+
+
+decoder : Decoder Order_
+decoder =
+ Decode.succeed Order_
+ |> optional "id" (Decode.nullable Decode.int) Nothing
+ |> optional "petId" (Decode.nullable Decode.int) Nothing
+ |> optional "quantity" (Decode.nullable Decode.int) Nothing
+ |> optional "shipDate" (Decode.nullable DateTime.decoder) Nothing
+ |> optional "status" (Decode.nullable statusDecoder) Nothing
+ |> optional "complete" (Decode.nullable Decode.bool) (Just False)
+
+
+
+encode : Order_ -> Encode.Value
+encode model =
+ Encode.object
+ [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
+ , ( "petId", Maybe.withDefault Encode.null (Maybe.map Encode.int model.petId) )
+ , ( "quantity", Maybe.withDefault Encode.null (Maybe.map Encode.int model.quantity) )
+ , ( "shipDate", Maybe.withDefault Encode.null (Maybe.map DateTime.encode model.shipDate) )
+ , ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) )
+ , ( "complete", Maybe.withDefault Encode.null (Maybe.map Encode.bool model.complete) )
+
+ ]
+
+
+
+statusDecoder : Decoder Status
+statusDecoder =
+ Decode.string
+ |> Decode.andThen
+ (\str ->
+ case str of
+ "placed" ->
+ Decode.succeed StatusPlaced
+
+ "approved" ->
+ Decode.succeed StatusApproved
+
+ "delivered" ->
+ Decode.succeed StatusDelivered
+
+ other ->
+ Decode.fail <| "Unknown type: " ++ other
+ )
+
+
+
+encodeStatus : Status -> Encode.Value
+encodeStatus model =
+ case model of
+ StatusPlaced ->
+ Encode.string "placed"
+
+ StatusApproved ->
+ Encode.string "approved"
+
+ StatusDelivered ->
+ Encode.string "delivered"
+
+
+
diff --git a/samples/openapi3/client/petstore/elm/src/Data/Pet.elm b/samples/openapi3/client/petstore/elm/src/Data/Pet.elm
new file mode 100644
index 00000000000..4eaf5a47938
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Data/Pet.elm
@@ -0,0 +1,102 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Data.Pet exposing (Pet, Status(..), decoder, encode)
+
+import Data.Category as Category exposing (Category)
+import Data.Tag as Tag exposing (Tag)
+import Dict exposing (Dict)
+import Json.Decode as Decode exposing (Decoder)
+import Json.Decode.Pipeline exposing (optional, required)
+import Json.Encode as Encode
+
+
+{-| A pet for sale in the pet store
+-}
+type alias Pet =
+ { id : Maybe (Int)
+ , category : Maybe (Category)
+ , name : String
+ , photoUrls : (List String)
+ , tags : Maybe ((List Tag))
+ , status : Maybe (Status)
+ }
+
+
+type Status
+ = StatusAvailable
+ | StatusPending
+ | StatusSold
+
+
+
+decoder : Decoder Pet
+decoder =
+ Decode.succeed Pet
+ |> optional "id" (Decode.nullable Decode.int) Nothing
+ |> optional "category" (Decode.nullable Category.decoder) Nothing
+ |> required "name" Decode.string
+ |> required "photoUrls" (Decode.list Decode.string)
+ |> optional "tags" (Decode.nullable (Decode.list Tag.decoder)) Nothing
+ |> optional "status" (Decode.nullable statusDecoder) Nothing
+
+
+
+encode : Pet -> Encode.Value
+encode model =
+ Encode.object
+ [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
+ , ( "category", Maybe.withDefault Encode.null (Maybe.map Category.encode model.category) )
+ , ( "name", Encode.string model.name )
+ , ( "photoUrls", (Encode.list Encode.string) model.photoUrls )
+ , ( "tags", Maybe.withDefault Encode.null (Maybe.map (Encode.list Tag.encode) model.tags) )
+ , ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) )
+
+ ]
+
+
+
+statusDecoder : Decoder Status
+statusDecoder =
+ Decode.string
+ |> Decode.andThen
+ (\str ->
+ case str of
+ "available" ->
+ Decode.succeed StatusAvailable
+
+ "pending" ->
+ Decode.succeed StatusPending
+
+ "sold" ->
+ Decode.succeed StatusSold
+
+ other ->
+ Decode.fail <| "Unknown type: " ++ other
+ )
+
+
+
+encodeStatus : Status -> Encode.Value
+encodeStatus model =
+ case model of
+ StatusAvailable ->
+ Encode.string "available"
+
+ StatusPending ->
+ Encode.string "pending"
+
+ StatusSold ->
+ Encode.string "sold"
+
+
+
diff --git a/samples/openapi3/client/petstore/elm/src/Data/Tag.elm b/samples/openapi3/client/petstore/elm/src/Data/Tag.elm
new file mode 100644
index 00000000000..16118b9b80b
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Data/Tag.elm
@@ -0,0 +1,45 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Data.Tag exposing (Tag, decoder, encode)
+
+import Dict exposing (Dict)
+import Json.Decode as Decode exposing (Decoder)
+import Json.Decode.Pipeline exposing (optional, required)
+import Json.Encode as Encode
+
+
+{-| A tag for a pet
+-}
+type alias Tag =
+ { id : Maybe (Int)
+ , name : Maybe (String)
+ }
+
+
+decoder : Decoder Tag
+decoder =
+ Decode.succeed Tag
+ |> optional "id" (Decode.nullable Decode.int) Nothing
+ |> optional "name" (Decode.nullable Decode.string) Nothing
+
+
+
+encode : Tag -> Encode.Value
+encode model =
+ Encode.object
+ [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
+ , ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) )
+
+ ]
+
+
diff --git a/samples/openapi3/client/petstore/elm/src/Data/User.elm b/samples/openapi3/client/petstore/elm/src/Data/User.elm
new file mode 100644
index 00000000000..0b0cba12cc4
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Data/User.elm
@@ -0,0 +1,63 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Data.User exposing (User, decoder, encode)
+
+import Dict exposing (Dict)
+import Json.Decode as Decode exposing (Decoder)
+import Json.Decode.Pipeline exposing (optional, required)
+import Json.Encode as Encode
+
+
+{-| A User who is purchasing from the pet store
+-}
+type alias User =
+ { id : Maybe (Int)
+ , username : Maybe (String)
+ , firstName : Maybe (String)
+ , lastName : Maybe (String)
+ , email : Maybe (String)
+ , password : Maybe (String)
+ , phone : Maybe (String)
+ , userStatus : Maybe (Int)
+ }
+
+
+decoder : Decoder User
+decoder =
+ Decode.succeed User
+ |> optional "id" (Decode.nullable Decode.int) Nothing
+ |> optional "username" (Decode.nullable Decode.string) Nothing
+ |> optional "firstName" (Decode.nullable Decode.string) Nothing
+ |> optional "lastName" (Decode.nullable Decode.string) Nothing
+ |> optional "email" (Decode.nullable Decode.string) Nothing
+ |> optional "password" (Decode.nullable Decode.string) Nothing
+ |> optional "phone" (Decode.nullable Decode.string) Nothing
+ |> optional "userStatus" (Decode.nullable Decode.int) Nothing
+
+
+
+encode : User -> Encode.Value
+encode model =
+ Encode.object
+ [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) )
+ , ( "username", Maybe.withDefault Encode.null (Maybe.map Encode.string model.username) )
+ , ( "firstName", Maybe.withDefault Encode.null (Maybe.map Encode.string model.firstName) )
+ , ( "lastName", Maybe.withDefault Encode.null (Maybe.map Encode.string model.lastName) )
+ , ( "email", Maybe.withDefault Encode.null (Maybe.map Encode.string model.email) )
+ , ( "password", Maybe.withDefault Encode.null (Maybe.map Encode.string model.password) )
+ , ( "phone", Maybe.withDefault Encode.null (Maybe.map Encode.string model.phone) )
+ , ( "userStatus", Maybe.withDefault Encode.null (Maybe.map Encode.int model.userStatus) )
+
+ ]
+
+
diff --git a/samples/openapi3/client/petstore/elm/src/DateOnly.elm b/samples/openapi3/client/petstore/elm/src/DateOnly.elm
new file mode 100644
index 00000000000..a31efc88c38
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/DateOnly.elm
@@ -0,0 +1,37 @@
+module DateOnly exposing (DateOnly, decoder, encode, toString)
+
+import Iso8601
+import Json.Decode as Decode exposing (Decoder)
+import Json.Encode as Encode
+import Result
+import Time
+
+
+type alias DateOnly =
+ Time.Posix
+
+
+decoder : Decoder DateOnly
+decoder =
+ Decode.string
+ |> Decode.andThen decodeIsoString
+
+
+encode : DateOnly -> Encode.Value
+encode =
+ Encode.string << toString
+
+
+decodeIsoString : String -> Decoder DateOnly
+decodeIsoString str =
+ case Iso8601.toTime (str ++ "T00:00:00.000Z") of
+ Result.Ok posix ->
+ Decode.succeed posix
+
+ Result.Err _ ->
+ Decode.fail <| "Invalid date: " ++ str
+
+
+toString : DateOnly -> String
+toString =
+ String.left 10 << Iso8601.fromTime
diff --git a/samples/openapi3/client/petstore/elm/src/DateTime.elm b/samples/openapi3/client/petstore/elm/src/DateTime.elm
new file mode 100644
index 00000000000..7d4a5c642c1
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/DateTime.elm
@@ -0,0 +1,37 @@
+module DateTime exposing (DateTime, decoder, encode, toString)
+
+import Iso8601
+import Json.Decode as Decode exposing (Decoder)
+import Json.Encode as Encode
+import Result
+import Time
+
+
+type alias DateTime =
+ Time.Posix
+
+
+decoder : Decoder DateTime
+decoder =
+ Decode.string
+ |> Decode.andThen decodeIsoString
+
+
+encode : DateTime -> Encode.Value
+encode =
+ Encode.string << toString
+
+
+decodeIsoString : String -> Decoder DateTime
+decodeIsoString str =
+ case Iso8601.toTime str of
+ Result.Ok posix ->
+ Decode.succeed posix
+
+ Result.Err _ ->
+ Decode.fail <| "Invalid date: " ++ str
+
+
+toString : DateTime -> String
+toString =
+ Iso8601.fromTime
\ No newline at end of file
diff --git a/samples/openapi3/client/petstore/elm/src/Main.elm b/samples/openapi3/client/petstore/elm/src/Main.elm
new file mode 100644
index 00000000000..7c9ddd056d3
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Main.elm
@@ -0,0 +1,61 @@
+module Main exposing (main)
+
+import Browser
+import Html exposing (Html)
+
+
+main : Program () Model Msg
+main =
+ Browser.element
+ { init = init
+ , view = view
+ , update = update
+ , subscriptions = subscriptions
+ }
+
+
+
+-- MODEL
+
+
+type alias Model =
+ { value : Int
+ }
+
+
+init : () -> ( Model, Cmd Msg )
+init _ =
+ ( Model 0, Cmd.none )
+
+
+
+-- UPDATE
+
+
+type Msg
+ = NoOp
+
+
+update : Msg -> Model -> ( Model, Cmd Msg )
+update msg model =
+ case msg of
+ NoOp ->
+ ( model, Cmd.none )
+
+
+
+-- SUBSCRIPTIONS
+
+
+subscriptions : Model -> Sub Msg
+subscriptions _ =
+ Sub.none
+
+
+
+-- VIEW
+
+
+view : Model -> Html Msg
+view _ =
+ Html.text "main"
diff --git a/samples/openapi3/client/petstore/elm/src/Request/Pet.elm b/samples/openapi3/client/petstore/elm/src/Request/Pet.elm
new file mode 100644
index 00000000000..af5b1654eca
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Request/Pet.elm
@@ -0,0 +1,238 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Request.Pet exposing (addPet, deletePet, findPetsByStatus, Status(..), findPetsByTags, getPetById, updatePet, updatePetWithForm, uploadFile)
+
+import Data.Pet as Pet exposing (Pet)
+import Data.ApiResponse as ApiResponse exposing (ApiResponse)
+import Dict
+import Http
+import Json.Decode as Decode
+import Url.Builder as Url
+
+
+type Status
+ = StatusAvailable
+ | StatusPending
+ | StatusSold
+
+statusToString : Status -> String
+statusToString value =
+ case value of
+ StatusAvailable ->
+ "available"
+
+ StatusPending ->
+ "pending"
+
+ StatusSold ->
+ "sold"
+
+
+
+
+
+basePath : String
+basePath =
+ "http://petstore.swagger.io/v2"
+
+
+addPet :
+ { onSend : Result Http.Error () -> msg
+
+
+ , body : Pet
+
+
+ }
+ -> Cmd msg
+addPet params =
+ Http.request
+ { method = "POST"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["pet"]
+ []
+ , body = Http.jsonBody <| Pet.encode params.body
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+deletePet :
+ { apiKey : Maybe (String)
+ } ->
+ { onSend : Result Http.Error () -> msg
+
+
+
+ , petId : Int
+
+ }
+ -> Cmd msg
+deletePet headers params =
+ Http.request
+ { method = "DELETE"
+ , headers = List.filterMap identity [Maybe.map (Http.header "api_key" ) headers.apiKey]
+ , url = Url.crossOrigin basePath
+ ["pet", String.fromInt params.petId]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+{-| Multiple status values can be provided with comma separated strings
+-}
+findPetsByStatus :
+ { onSend : Result Http.Error (List Pet) -> msg
+
+
+
+
+ , status : List Status
+ }
+ -> Cmd msg
+findPetsByStatus params =
+ Http.request
+ { method = "GET"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["pet", "findByStatus"]
+ (List.filterMap identity [Just (Url.string "status" <| (String.join "," << List.map statusToString) params.status)])
+ , body = Http.emptyBody
+ , expect = Http.expectJson params.onSend (Decode.list Pet.decoder)
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+{-| Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+-}
+findPetsByTags :
+ { onSend : Result Http.Error (List Pet) -> msg
+
+
+
+
+ , tags : List String , maxCount : Maybe (Int)
+ }
+ -> Cmd msg
+findPetsByTags params =
+ Http.request
+ { method = "GET"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["pet", "findByTags"]
+ (List.filterMap identity [Just (Url.string "tags" <| (String.join ",") params.tags), Maybe.map (Url.string "maxCount" << String.fromInt) params.maxCount])
+ , body = Http.emptyBody
+ , expect = Http.expectJson params.onSend (Decode.list Pet.decoder)
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+{-| Returns a single pet
+-}
+getPetById :
+ { onSend : Result Http.Error Pet -> msg
+
+
+
+ , petId : Int
+
+ }
+ -> Cmd msg
+getPetById params =
+ Http.request
+ { method = "GET"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["pet", String.fromInt params.petId]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectJson params.onSend Pet.decoder
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+updatePet :
+ { onSend : Result Http.Error () -> msg
+
+
+ , body : Pet
+
+
+ }
+ -> Cmd msg
+updatePet params =
+ Http.request
+ { method = "PUT"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["pet"]
+ []
+ , body = Http.jsonBody <| Pet.encode params.body
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+updatePetWithForm :
+ { onSend : Result Http.Error () -> msg
+
+
+
+ , petId : Int
+
+ }
+ -> Cmd msg
+updatePetWithForm params =
+ Http.request
+ { method = "POST"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["pet", String.fromInt params.petId]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+uploadFile :
+ { onSend : Result Http.Error ApiResponse -> msg
+
+
+
+ , petId : Int
+
+ }
+ -> Cmd msg
+uploadFile params =
+ Http.request
+ { method = "POST"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["pet", String.fromInt params.petId, "uploadImage"]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectJson params.onSend ApiResponse.decoder
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
diff --git a/samples/openapi3/client/petstore/elm/src/Request/Store.elm b/samples/openapi3/client/petstore/elm/src/Request/Store.elm
new file mode 100644
index 00000000000..7ac926fe41e
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Request/Store.elm
@@ -0,0 +1,124 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Request.Store exposing (deleteOrder, getInventory, getOrderById, placeOrder)
+
+import Data.Order_ as Order_ exposing (Order_)
+import Dict
+import Http
+import Json.Decode as Decode
+import Url.Builder as Url
+
+
+
+
+basePath : String
+basePath =
+ "http://petstore.swagger.io/v2"
+
+
+{-| For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+-}
+deleteOrder :
+ { onSend : Result Http.Error () -> msg
+
+
+
+ , orderId : String
+
+ }
+ -> Cmd msg
+deleteOrder params =
+ Http.request
+ { method = "DELETE"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["store", "order", params.orderId]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+{-| Returns a map of status codes to quantities
+-}
+getInventory :
+ { onSend : Result Http.Error (Dict.Dict String Int) -> msg
+
+
+
+
+
+ }
+ -> Cmd msg
+getInventory params =
+ Http.request
+ { method = "GET"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["store", "inventory"]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectJson params.onSend (Decode.dict Decode.int)
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+{-| For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+-}
+getOrderById :
+ { onSend : Result Http.Error Order_ -> msg
+
+
+
+ , orderId : Int
+
+ }
+ -> Cmd msg
+getOrderById params =
+ Http.request
+ { method = "GET"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["store", "order", String.fromInt params.orderId]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectJson params.onSend Order_.decoder
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+placeOrder :
+ { onSend : Result Http.Error Order_ -> msg
+
+
+ , body : Order_
+
+
+ }
+ -> Cmd msg
+placeOrder params =
+ Http.request
+ { method = "POST"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["store", "order"]
+ []
+ , body = Http.jsonBody <| Order_.encode params.body
+ , expect = Http.expectJson params.onSend Order_.decoder
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
diff --git a/samples/openapi3/client/petstore/elm/src/Request/User.elm b/samples/openapi3/client/petstore/elm/src/Request/User.elm
new file mode 100644
index 00000000000..6d6d21918a6
--- /dev/null
+++ b/samples/openapi3/client/petstore/elm/src/Request/User.elm
@@ -0,0 +1,216 @@
+{-
+ OpenAPI Petstore
+ This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
+
+ The version of the OpenAPI document: 1.0.0
+
+ NOTE: This file is auto generated by the openapi-generator.
+ https://github.com/openapitools/openapi-generator.git
+ Do not edit this file manually.
+-}
+
+
+module Request.User exposing (createUser, createUsersWithArrayInput, createUsersWithListInput, deleteUser, getUserByName, loginUser, logoutUser, updateUser)
+
+import Data.User as User exposing (User)
+import Dict
+import Http
+import Json.Decode as Decode
+import Url.Builder as Url
+
+
+
+
+basePath : String
+basePath =
+ "http://petstore.swagger.io/v2"
+
+
+{-| This can only be done by the logged in user.
+-}
+createUser :
+ { onSend : Result Http.Error () -> msg
+
+
+ , body : User
+
+
+ }
+ -> Cmd msg
+createUser params =
+ Http.request
+ { method = "POST"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["user"]
+ []
+ , body = Http.jsonBody <| User.encode params.body
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+createUsersWithArrayInput :
+ { onSend : Result Http.Error () -> msg
+
+
+ , body : User
+
+
+ }
+ -> Cmd msg
+createUsersWithArrayInput params =
+ Http.request
+ { method = "POST"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["user", "createWithArray"]
+ []
+ , body = Http.jsonBody <| User.encode params.body
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+createUsersWithListInput :
+ { onSend : Result Http.Error () -> msg
+
+
+ , body : User
+
+
+ }
+ -> Cmd msg
+createUsersWithListInput params =
+ Http.request
+ { method = "POST"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["user", "createWithList"]
+ []
+ , body = Http.jsonBody <| User.encode params.body
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+{-| This can only be done by the logged in user.
+-}
+deleteUser :
+ { onSend : Result Http.Error () -> msg
+
+
+
+ , username : String
+
+ }
+ -> Cmd msg
+deleteUser params =
+ Http.request
+ { method = "DELETE"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["user", params.username]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+getUserByName :
+ { onSend : Result Http.Error User -> msg
+
+
+
+ , username : String
+
+ }
+ -> Cmd msg
+getUserByName params =
+ Http.request
+ { method = "GET"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["user", params.username]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectJson params.onSend User.decoder
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+loginUser :
+ { onSend : Result Http.Error String -> msg
+
+
+
+
+ , username : String , password : String
+ }
+ -> Cmd msg
+loginUser params =
+ Http.request
+ { method = "GET"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["user", "login"]
+ (List.filterMap identity [Just (Url.string "username" params.username), Just (Url.string "password" params.password)])
+ , body = Http.emptyBody
+ , expect = Http.expectJson params.onSend Decode.string
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+logoutUser :
+ { onSend : Result Http.Error () -> msg
+
+
+
+
+
+ }
+ -> Cmd msg
+logoutUser params =
+ Http.request
+ { method = "GET"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["user", "logout"]
+ []
+ , body = Http.emptyBody
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
+
+
+{-| This can only be done by the logged in user.
+-}
+updateUser :
+ { onSend : Result Http.Error () -> msg
+
+
+ , body : User
+ , username : String
+
+ }
+ -> Cmd msg
+updateUser params =
+ Http.request
+ { method = "PUT"
+ , headers = []
+ , url = Url.crossOrigin basePath
+ ["user", params.username]
+ []
+ , body = Http.jsonBody <| User.encode params.body
+ , expect = Http.expectWhatever params.onSend
+ , timeout = Just 30000
+ , tracker = Nothing
+ }
diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/phpunit.xml.dist b/samples/openapi3/client/petstore/php/OpenAPIClient-php/phpunit.xml.dist
index 08f78faf3bb..3dd90bbe32c 100644
--- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/phpunit.xml.dist
+++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/phpunit.xml.dist
@@ -11,11 +11,13 @@
./test/Model
-
./lib/Api
./lib/Model
+
+
+
diff --git a/samples/server/openapi3/petstore/python-flask-python2/.openapi-generator-ignore b/samples/openapi3/server/petstore/kotlin-springboot-reactive/.openapi-generator-ignore
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/.openapi-generator-ignore
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/.openapi-generator-ignore
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/.openapi-generator/VERSION b/samples/openapi3/server/petstore/kotlin-springboot-reactive/.openapi-generator/VERSION
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/.openapi-generator/VERSION
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/.openapi-generator/VERSION
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/README.md b/samples/openapi3/server/petstore/kotlin-springboot-reactive/README.md
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/README.md
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/README.md
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/build.gradle.kts b/samples/openapi3/server/petstore/kotlin-springboot-reactive/build.gradle.kts
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/build.gradle.kts
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/build.gradle.kts
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/pom.xml b/samples/openapi3/server/petstore/kotlin-springboot-reactive/pom.xml
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/pom.xml
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/pom.xml
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/settings.gradle b/samples/openapi3/server/petstore/kotlin-springboot-reactive/settings.gradle
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/settings.gradle
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/settings.gradle
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/Application.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/Application.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/Application.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/Application.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApi.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApi.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApi.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApi.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApiService.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApiService.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApiService.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApiService.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApi.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApi.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApi.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApi.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiService.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiService.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiService.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApi.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApi.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApi.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApi.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApiService.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApiService.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApiService.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApiService.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Category.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Category.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Category.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Category.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/InlineObject.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/InlineObject.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/InlineObject.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/InlineObject.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/InlineObject1.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/InlineObject1.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/InlineObject1.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/InlineObject1.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Order.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Order.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Order.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Order.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Pet.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Pet.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Pet.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Pet.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Tag.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Tag.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Tag.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/Tag.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/User.kt b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/User.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/User.kt
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/model/User.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/resources/application.yaml b/samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/resources/application.yaml
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot-reactive/src/main/resources/application.yaml
rename to samples/openapi3/server/petstore/kotlin-springboot-reactive/src/main/resources/application.yaml
diff --git a/samples/server/openapi3/petstore/python-flask/.openapi-generator-ignore b/samples/openapi3/server/petstore/kotlin-springboot/.openapi-generator-ignore
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/.openapi-generator-ignore
rename to samples/openapi3/server/petstore/kotlin-springboot/.openapi-generator-ignore
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/.openapi-generator/VERSION b/samples/openapi3/server/petstore/kotlin-springboot/.openapi-generator/VERSION
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/.openapi-generator/VERSION
rename to samples/openapi3/server/petstore/kotlin-springboot/.openapi-generator/VERSION
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/README.md b/samples/openapi3/server/petstore/kotlin-springboot/README.md
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/README.md
rename to samples/openapi3/server/petstore/kotlin-springboot/README.md
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/build.gradle.kts b/samples/openapi3/server/petstore/kotlin-springboot/build.gradle.kts
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/build.gradle.kts
rename to samples/openapi3/server/petstore/kotlin-springboot/build.gradle.kts
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/pom.xml b/samples/openapi3/server/petstore/kotlin-springboot/pom.xml
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/pom.xml
rename to samples/openapi3/server/petstore/kotlin-springboot/pom.xml
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/settings.gradle b/samples/openapi3/server/petstore/kotlin-springboot/settings.gradle
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/settings.gradle
rename to samples/openapi3/server/petstore/kotlin-springboot/settings.gradle
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/Application.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/Application.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/Application.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/Application.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/Exceptions.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/Exceptions.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/Exceptions.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/Exceptions.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApi.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApi.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApi.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApi.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApiService.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApiService.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApiService.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApiService.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApi.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApi.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApi.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApi.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiService.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiService.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiService.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApi.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApi.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApi.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApi.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApiService.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApiService.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApiService.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApiService.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Category.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Category.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Category.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Category.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/InlineObject.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/InlineObject.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/InlineObject.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/InlineObject.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/InlineObject1.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/InlineObject1.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/InlineObject1.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/InlineObject1.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Order.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Order.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Order.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Order.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Pet.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Pet.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Pet.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Pet.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Tag.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Tag.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Tag.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/Tag.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/User.kt b/samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/User.kt
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/User.kt
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/model/User.kt
diff --git a/samples/server/openapi3/petstore/kotlin-springboot/src/main/resources/application.yaml b/samples/openapi3/server/petstore/kotlin-springboot/src/main/resources/application.yaml
similarity index 100%
rename from samples/server/openapi3/petstore/kotlin-springboot/src/main/resources/application.yaml
rename to samples/openapi3/server/petstore/kotlin-springboot/src/main/resources/application.yaml
diff --git a/samples/server/openapi3/petstore/php-ze-ph/.gitignore b/samples/openapi3/server/petstore/php-ze-ph/.gitignore
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/.gitignore
rename to samples/openapi3/server/petstore/php-ze-ph/.gitignore
diff --git a/samples/openapi3/server/petstore/php-ze-ph/.openapi-generator-ignore b/samples/openapi3/server/petstore/php-ze-ph/.openapi-generator-ignore
new file mode 100644
index 00000000000..7484ee590a3
--- /dev/null
+++ b/samples/openapi3/server/petstore/php-ze-ph/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/server/openapi3/petstore/php-ze-ph/.openapi-generator/VERSION b/samples/openapi3/server/petstore/php-ze-ph/.openapi-generator/VERSION
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/.openapi-generator/VERSION
rename to samples/openapi3/server/petstore/php-ze-ph/.openapi-generator/VERSION
diff --git a/samples/server/openapi3/petstore/php-ze-ph/README.md b/samples/openapi3/server/petstore/php-ze-ph/README.md
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/README.md
rename to samples/openapi3/server/petstore/php-ze-ph/README.md
diff --git a/samples/server/openapi3/petstore/php-ze-ph/application/config.yml b/samples/openapi3/server/petstore/php-ze-ph/application/config.yml
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/application/config.yml
rename to samples/openapi3/server/petstore/php-ze-ph/application/config.yml
diff --git a/samples/server/openapi3/petstore/php-ze-ph/application/config/app.yml b/samples/openapi3/server/petstore/php-ze-ph/application/config/app.yml
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/application/config/app.yml
rename to samples/openapi3/server/petstore/php-ze-ph/application/config/app.yml
diff --git a/samples/server/openapi3/petstore/php-ze-ph/application/config/data_transfer.yml b/samples/openapi3/server/petstore/php-ze-ph/application/config/data_transfer.yml
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/application/config/data_transfer.yml
rename to samples/openapi3/server/petstore/php-ze-ph/application/config/data_transfer.yml
diff --git a/samples/server/openapi3/petstore/php-ze-ph/application/config/path_handler.yml b/samples/openapi3/server/petstore/php-ze-ph/application/config/path_handler.yml
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/application/config/path_handler.yml
rename to samples/openapi3/server/petstore/php-ze-ph/application/config/path_handler.yml
diff --git a/samples/server/openapi3/petstore/php-ze-ph/application/container.php b/samples/openapi3/server/petstore/php-ze-ph/application/container.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/application/container.php
rename to samples/openapi3/server/petstore/php-ze-ph/application/container.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/composer.json b/samples/openapi3/server/petstore/php-ze-ph/composer.json
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/composer.json
rename to samples/openapi3/server/petstore/php-ze-ph/composer.json
diff --git a/samples/server/openapi3/petstore/php-ze-ph/public/index.php b/samples/openapi3/server/petstore/php-ze-ph/public/index.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/public/index.php
rename to samples/openapi3/server/petstore/php-ze-ph/public/index.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/AdditionalPropertiesClass.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/AdditionalPropertiesClass.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/AdditionalPropertiesClass.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/AdditionalPropertiesClass.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Animal.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Animal.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Animal.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Animal.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ApiResponse.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ApiResponse.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ApiResponse.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ApiResponse.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ArrayOfArrayOfNumberOnly.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ArrayOfArrayOfNumberOnly.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ArrayOfArrayOfNumberOnly.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ArrayOfArrayOfNumberOnly.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ArrayOfNumberOnly.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ArrayOfNumberOnly.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ArrayOfNumberOnly.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ArrayOfNumberOnly.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ArrayTest.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ArrayTest.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ArrayTest.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ArrayTest.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Capitalization.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Capitalization.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Capitalization.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Capitalization.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Cat.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Cat.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Cat.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Cat.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Category.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Category.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Category.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Category.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ClassModel.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ClassModel.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ClassModel.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ClassModel.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Client.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Client.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Client.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Client.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Dog.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Dog.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Dog.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Dog.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/EnumArrays.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/EnumArrays.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/EnumArrays.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/EnumArrays.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/EnumClass.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/EnumClass.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/EnumClass.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/EnumClass.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/EnumTest.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/EnumTest.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/EnumTest.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/EnumTest.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/FileSchemaTestClass.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/FileSchemaTestClass.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/FileSchemaTestClass.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/FileSchemaTestClass.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/FindPetsByStatusQueryData.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/FindPetsByStatusQueryData.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/FindPetsByStatusQueryData.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/FindPetsByStatusQueryData.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/FindPetsByTagsQueryData.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/FindPetsByTagsQueryData.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/FindPetsByTagsQueryData.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/FindPetsByTagsQueryData.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Foo.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Foo.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Foo.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Foo.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/FormatTest.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/FormatTest.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/FormatTest.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/FormatTest.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/HasOnlyReadOnly.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/HasOnlyReadOnly.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/HasOnlyReadOnly.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/HasOnlyReadOnly.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/HealthCheckResult.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/HealthCheckResult.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/HealthCheckResult.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/HealthCheckResult.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject1.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject1.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject1.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject1.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject2.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject2.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject2.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject2.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject3.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject3.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject3.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject3.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject4.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject4.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject4.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject4.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject5.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject5.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineObject5.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineObject5.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineResponseDefault.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineResponseDefault.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/InlineResponseDefault.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/InlineResponseDefault.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/LoginUserQueryData.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/LoginUserQueryData.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/LoginUserQueryData.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/LoginUserQueryData.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/MapTest.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/MapTest.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/MapTest.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/MapTest.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/MixedPropertiesAndAdditionalPropertiesClass.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/MixedPropertiesAndAdditionalPropertiesClass.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/MixedPropertiesAndAdditionalPropertiesClass.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/MixedPropertiesAndAdditionalPropertiesClass.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Model200Response.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Model200Response.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Model200Response.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Model200Response.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ModelReturn.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ModelReturn.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ModelReturn.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ModelReturn.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Name.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Name.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Name.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Name.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/NullableClass.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/NullableClass.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/NullableClass.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/NullableClass.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/NumberOnly.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/NumberOnly.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/NumberOnly.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/NumberOnly.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Order.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Order.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Order.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Order.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterComposite.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterComposite.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterComposite.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterComposite.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterEnum.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterEnum.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterEnum.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterEnum.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterEnumDefaultValue.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterEnumDefaultValue.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterEnumDefaultValue.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterEnumDefaultValue.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterEnumInteger.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterEnumInteger.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterEnumInteger.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterEnumInteger.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterEnumIntegerDefaultValue.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterEnumIntegerDefaultValue.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/OuterEnumIntegerDefaultValue.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/OuterEnumIntegerDefaultValue.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Pet.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Pet.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Pet.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Pet.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ReadOnlyFirst.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ReadOnlyFirst.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/ReadOnlyFirst.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/ReadOnlyFirst.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/SpecialModelName.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/SpecialModelName.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/SpecialModelName.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/SpecialModelName.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Tag.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Tag.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/Tag.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/Tag.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/TestBodyWithQueryParamsQueryData.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/TestBodyWithQueryParamsQueryData.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/TestBodyWithQueryParamsQueryData.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/TestBodyWithQueryParamsQueryData.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/TestEnumParametersQueryData.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/TestEnumParametersQueryData.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/TestEnumParametersQueryData.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/TestEnumParametersQueryData.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/TestGroupParametersQueryData.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/TestGroupParametersQueryData.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/TestGroupParametersQueryData.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/TestGroupParametersQueryData.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/User.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/User.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/DTO/User.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/DTO/User.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Factory.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Factory.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Factory.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Factory.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/AnotherFakeDummy.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/AnotherFakeDummy.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/AnotherFakeDummy.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/AnotherFakeDummy.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/Fake.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/Fake.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/Fake.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/Fake.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeBodyWithFileSchema.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeBodyWithFileSchema.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeBodyWithFileSchema.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeBodyWithFileSchema.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeBodyWithQueryParams.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeBodyWithQueryParams.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeBodyWithQueryParams.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeBodyWithQueryParams.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeClassnameTest.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeClassnameTest.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeClassnameTest.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeClassnameTest.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeHealth.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeHealth.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeHealth.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeHealth.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeInlineAdditionalProperties.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeInlineAdditionalProperties.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeInlineAdditionalProperties.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeInlineAdditionalProperties.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeJsonFormData.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeJsonFormData.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeJsonFormData.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeJsonFormData.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeOuterBoolean.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeOuterBoolean.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeOuterBoolean.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeOuterBoolean.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeOuterComposite.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeOuterComposite.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeOuterComposite.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeOuterComposite.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeOuterNumber.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeOuterNumber.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeOuterNumber.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeOuterNumber.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeOuterString.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeOuterString.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakeOuterString.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakeOuterString.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakePetIdUploadImageWithRequiredFile.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakePetIdUploadImageWithRequiredFile.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/FakePetIdUploadImageWithRequiredFile.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/FakePetIdUploadImageWithRequiredFile.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/Foo.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/Foo.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/Foo.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/Foo.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/Pet.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/Pet.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/Pet.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/Pet.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/PetFindByStatus.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/PetFindByStatus.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/PetFindByStatus.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/PetFindByStatus.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/PetFindByTags.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/PetFindByTags.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/PetFindByTags.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/PetFindByTags.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/PetPetId.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/PetPetId.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/PetPetId.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/PetPetId.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/PetPetIdUploadImage.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/PetPetIdUploadImage.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/PetPetIdUploadImage.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/PetPetIdUploadImage.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/StoreInventory.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/StoreInventory.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/StoreInventory.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/StoreInventory.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/StoreOrder.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/StoreOrder.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/StoreOrder.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/StoreOrder.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/StoreOrderOrderId.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/StoreOrderOrderId.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/StoreOrderOrderId.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/StoreOrderOrderId.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/User.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/User.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/User.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/User.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserCreateWithArray.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserCreateWithArray.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserCreateWithArray.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserCreateWithArray.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserCreateWithList.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserCreateWithList.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserCreateWithList.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserCreateWithList.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserLogin.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserLogin.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserLogin.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserLogin.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserLogout.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserLogout.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserLogout.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserLogout.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserUsername.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserUsername.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Handler/UserUsername.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Handler/UserUsername.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Middleware/InternalServerError.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Middleware/InternalServerError.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Middleware/InternalServerError.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Middleware/InternalServerError.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Strategy/Date.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Strategy/Date.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Strategy/Date.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Strategy/Date.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Strategy/DateTime.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Strategy/DateTime.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Strategy/DateTime.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Strategy/DateTime.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Strategy/QueryParameter.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Strategy/QueryParameter.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Strategy/QueryParameter.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Strategy/QueryParameter.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Strategy/QueryParameterArray.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Strategy/QueryParameterArray.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Strategy/QueryParameterArray.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Strategy/QueryParameterArray.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Validator/QueryParameterArrayType.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Validator/QueryParameterArrayType.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Validator/QueryParameterArrayType.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Validator/QueryParameterArrayType.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Validator/QueryParameterType.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Validator/QueryParameterType.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Validator/QueryParameterType.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Validator/QueryParameterType.php
diff --git a/samples/server/openapi3/petstore/php-ze-ph/src/App/Validator/Type.php b/samples/openapi3/server/petstore/php-ze-ph/src/App/Validator/Type.php
similarity index 100%
rename from samples/server/openapi3/petstore/php-ze-ph/src/App/Validator/Type.php
rename to samples/openapi3/server/petstore/php-ze-ph/src/App/Validator/Type.php
diff --git a/samples/server/openapi3/petstore/python-flask-python2/.dockerignore b/samples/openapi3/server/petstore/python-flask-python2/.dockerignore
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/.dockerignore
rename to samples/openapi3/server/petstore/python-flask-python2/.dockerignore
diff --git a/samples/server/openapi3/petstore/python-flask/.gitignore b/samples/openapi3/server/petstore/python-flask-python2/.gitignore
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/.gitignore
rename to samples/openapi3/server/petstore/python-flask-python2/.gitignore
diff --git a/samples/openapi3/server/petstore/python-flask-python2/.openapi-generator-ignore b/samples/openapi3/server/petstore/python-flask-python2/.openapi-generator-ignore
new file mode 100644
index 00000000000..7484ee590a3
--- /dev/null
+++ b/samples/openapi3/server/petstore/python-flask-python2/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/server/openapi3/petstore/python-flask-python2/.openapi-generator/VERSION b/samples/openapi3/server/petstore/python-flask-python2/.openapi-generator/VERSION
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/.openapi-generator/VERSION
rename to samples/openapi3/server/petstore/python-flask-python2/.openapi-generator/VERSION
diff --git a/samples/openapi3/server/petstore/python-flask-python2/.travis.yml b/samples/openapi3/server/petstore/python-flask-python2/.travis.yml
new file mode 100644
index 00000000000..86211e2d4a2
--- /dev/null
+++ b/samples/openapi3/server/petstore/python-flask-python2/.travis.yml
@@ -0,0 +1,14 @@
+# ref: https://docs.travis-ci.com/user/languages/python
+language: python
+python:
+ - "2.7"
+ - "3.2"
+ - "3.3"
+ - "3.4"
+ - "3.5"
+ #- "3.5-dev" # 3.5 development branch
+ #- "nightly" # points to the latest development branch e.g. 3.6-dev
+# command to install dependencies
+install: "pip install -r requirements.txt"
+# command to run tests
+script: nosetests
diff --git a/samples/server/openapi3/petstore/python-flask-python2/Dockerfile b/samples/openapi3/server/petstore/python-flask-python2/Dockerfile
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/Dockerfile
rename to samples/openapi3/server/petstore/python-flask-python2/Dockerfile
diff --git a/samples/server/openapi3/petstore/python-flask-python2/README.md b/samples/openapi3/server/petstore/python-flask-python2/README.md
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/README.md
rename to samples/openapi3/server/petstore/python-flask-python2/README.md
diff --git a/samples/server/openapi3/petstore/python-flask-python2/git_push.sh b/samples/openapi3/server/petstore/python-flask-python2/git_push.sh
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/git_push.sh
rename to samples/openapi3/server/petstore/python-flask-python2/git_push.sh
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/__init__.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/__init__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/__init__.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/__init__.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/__main__.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/__main__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/__main__.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/__main__.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/controllers/__init__.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/__init__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/controllers/__init__.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/__init__.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/pet_controller.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/pet_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/pet_controller.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/pet_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/security_controller_.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/security_controller_.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/security_controller_.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/security_controller_.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/store_controller.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/store_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/store_controller.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/store_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/user_controller.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/user_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/controllers/user_controller.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/controllers/user_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/encoder.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/encoder.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/encoder.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/encoder.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/__init__.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/__init__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/__init__.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/__init__.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/api_response.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/api_response.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/api_response.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/api_response.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/base_model_.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/base_model_.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/base_model_.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/base_model_.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/category.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/category.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/category.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/category.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/inline_object.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/inline_object.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/inline_object.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/inline_object.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/inline_object1.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/inline_object1.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/inline_object1.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/inline_object1.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/order.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/order.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/order.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/order.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/pet.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/pet.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/pet.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/pet.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/tag.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/tag.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/tag.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/tag.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/user.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/user.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/models/user.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/models/user.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/openapi/openapi.yaml b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/openapi/openapi.yaml
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/openapi/openapi.yaml
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/openapi/openapi.yaml
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/test/__init__.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/test/__init__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/test/__init__.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/test/__init__.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/test/test_pet_controller.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/test/test_pet_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/test/test_pet_controller.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/test/test_pet_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/test/test_store_controller.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/test/test_store_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/test/test_store_controller.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/test/test_store_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/test/test_user_controller.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/test/test_user_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/test/test_user_controller.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/test/test_user_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/typing_utils.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/typing_utils.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/typing_utils.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/typing_utils.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/openapi_server/util.py b/samples/openapi3/server/petstore/python-flask-python2/openapi_server/util.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/openapi_server/util.py
rename to samples/openapi3/server/petstore/python-flask-python2/openapi_server/util.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/requirements.txt b/samples/openapi3/server/petstore/python-flask-python2/requirements.txt
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/requirements.txt
rename to samples/openapi3/server/petstore/python-flask-python2/requirements.txt
diff --git a/samples/server/openapi3/petstore/python-flask-python2/setup.py b/samples/openapi3/server/petstore/python-flask-python2/setup.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/setup.py
rename to samples/openapi3/server/petstore/python-flask-python2/setup.py
diff --git a/samples/server/openapi3/petstore/python-flask-python2/test-requirements.txt b/samples/openapi3/server/petstore/python-flask-python2/test-requirements.txt
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/test-requirements.txt
rename to samples/openapi3/server/petstore/python-flask-python2/test-requirements.txt
diff --git a/samples/server/openapi3/petstore/python-flask-python2/tox.ini b/samples/openapi3/server/petstore/python-flask-python2/tox.ini
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask-python2/tox.ini
rename to samples/openapi3/server/petstore/python-flask-python2/tox.ini
diff --git a/samples/server/openapi3/petstore/python-flask/.dockerignore b/samples/openapi3/server/petstore/python-flask/.dockerignore
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/.dockerignore
rename to samples/openapi3/server/petstore/python-flask/.dockerignore
diff --git a/samples/openapi3/server/petstore/python-flask/.gitignore b/samples/openapi3/server/petstore/python-flask/.gitignore
new file mode 100644
index 00000000000..a655050c263
--- /dev/null
+++ b/samples/openapi3/server/petstore/python-flask/.gitignore
@@ -0,0 +1,64 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+venv/
+.python-version
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+#Ipython Notebook
+.ipynb_checkpoints
diff --git a/samples/openapi3/server/petstore/python-flask/.openapi-generator-ignore b/samples/openapi3/server/petstore/python-flask/.openapi-generator-ignore
new file mode 100644
index 00000000000..7484ee590a3
--- /dev/null
+++ b/samples/openapi3/server/petstore/python-flask/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/server/openapi3/petstore/python-flask/.openapi-generator/VERSION b/samples/openapi3/server/petstore/python-flask/.openapi-generator/VERSION
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/.openapi-generator/VERSION
rename to samples/openapi3/server/petstore/python-flask/.openapi-generator/VERSION
diff --git a/samples/server/openapi3/petstore/python-flask/.travis.yml b/samples/openapi3/server/petstore/python-flask/.travis.yml
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/.travis.yml
rename to samples/openapi3/server/petstore/python-flask/.travis.yml
diff --git a/samples/server/openapi3/petstore/python-flask/Dockerfile b/samples/openapi3/server/petstore/python-flask/Dockerfile
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/Dockerfile
rename to samples/openapi3/server/petstore/python-flask/Dockerfile
diff --git a/samples/server/openapi3/petstore/python-flask/README.md b/samples/openapi3/server/petstore/python-flask/README.md
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/README.md
rename to samples/openapi3/server/petstore/python-flask/README.md
diff --git a/samples/server/openapi3/petstore/python-flask/git_push.sh b/samples/openapi3/server/petstore/python-flask/git_push.sh
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/git_push.sh
rename to samples/openapi3/server/petstore/python-flask/git_push.sh
diff --git a/samples/openapi3/server/petstore/python-flask/openapi_server/__init__.py b/samples/openapi3/server/petstore/python-flask/openapi_server/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/__main__.py b/samples/openapi3/server/petstore/python-flask/openapi_server/__main__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/__main__.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/__main__.py
diff --git a/samples/openapi3/server/petstore/python-flask/openapi_server/controllers/__init__.py b/samples/openapi3/server/petstore/python-flask/openapi_server/controllers/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/controllers/pet_controller.py b/samples/openapi3/server/petstore/python-flask/openapi_server/controllers/pet_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/controllers/pet_controller.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/controllers/pet_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/controllers/security_controller_.py b/samples/openapi3/server/petstore/python-flask/openapi_server/controllers/security_controller_.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/controllers/security_controller_.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/controllers/security_controller_.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/controllers/store_controller.py b/samples/openapi3/server/petstore/python-flask/openapi_server/controllers/store_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/controllers/store_controller.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/controllers/store_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/controllers/user_controller.py b/samples/openapi3/server/petstore/python-flask/openapi_server/controllers/user_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/controllers/user_controller.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/controllers/user_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/encoder.py b/samples/openapi3/server/petstore/python-flask/openapi_server/encoder.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/encoder.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/encoder.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/__init__.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/__init__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/__init__.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/__init__.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/api_response.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/api_response.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/api_response.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/api_response.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/base_model_.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/base_model_.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/base_model_.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/base_model_.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/category.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/category.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/category.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/category.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/inline_object.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/inline_object.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/inline_object.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/inline_object.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/inline_object1.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/inline_object1.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/inline_object1.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/inline_object1.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/order.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/order.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/order.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/order.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/pet.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/pet.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/pet.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/pet.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/tag.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/tag.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/tag.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/tag.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/models/user.py b/samples/openapi3/server/petstore/python-flask/openapi_server/models/user.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/models/user.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/models/user.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/openapi/openapi.yaml b/samples/openapi3/server/petstore/python-flask/openapi_server/openapi/openapi.yaml
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/openapi/openapi.yaml
rename to samples/openapi3/server/petstore/python-flask/openapi_server/openapi/openapi.yaml
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/test/__init__.py b/samples/openapi3/server/petstore/python-flask/openapi_server/test/__init__.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/test/__init__.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/test/__init__.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/test/test_pet_controller.py b/samples/openapi3/server/petstore/python-flask/openapi_server/test/test_pet_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/test/test_pet_controller.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/test/test_pet_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/test/test_store_controller.py b/samples/openapi3/server/petstore/python-flask/openapi_server/test/test_store_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/test/test_store_controller.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/test/test_store_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/test/test_user_controller.py b/samples/openapi3/server/petstore/python-flask/openapi_server/test/test_user_controller.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/test/test_user_controller.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/test/test_user_controller.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/typing_utils.py b/samples/openapi3/server/petstore/python-flask/openapi_server/typing_utils.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/typing_utils.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/typing_utils.py
diff --git a/samples/server/openapi3/petstore/python-flask/openapi_server/util.py b/samples/openapi3/server/petstore/python-flask/openapi_server/util.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/openapi_server/util.py
rename to samples/openapi3/server/petstore/python-flask/openapi_server/util.py
diff --git a/samples/server/openapi3/petstore/python-flask/requirements.txt b/samples/openapi3/server/petstore/python-flask/requirements.txt
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/requirements.txt
rename to samples/openapi3/server/petstore/python-flask/requirements.txt
diff --git a/samples/server/openapi3/petstore/python-flask/setup.py b/samples/openapi3/server/petstore/python-flask/setup.py
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/setup.py
rename to samples/openapi3/server/petstore/python-flask/setup.py
diff --git a/samples/server/openapi3/petstore/python-flask/test-requirements.txt b/samples/openapi3/server/petstore/python-flask/test-requirements.txt
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/test-requirements.txt
rename to samples/openapi3/server/petstore/python-flask/test-requirements.txt
diff --git a/samples/server/openapi3/petstore/python-flask/tox.ini b/samples/openapi3/server/petstore/python-flask/tox.ini
similarity index 100%
rename from samples/server/openapi3/petstore/python-flask/tox.ini
rename to samples/openapi3/server/petstore/python-flask/tox.ini
diff --git a/samples/server/petstore/haskell-servant/.openapi-generator/VERSION b/samples/server/petstore/haskell-servant/.openapi-generator/VERSION
index afa63656064..479c313e87b 100644
--- a/samples/server/petstore/haskell-servant/.openapi-generator/VERSION
+++ b/samples/server/petstore/haskell-servant/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.0-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/config/AppConfig.java b/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/config/AppConfig.java
index ba323306ce0..15f77addf67 100644
--- a/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/config/AppConfig.java
+++ b/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/config/AppConfig.java
@@ -20,7 +20,7 @@ public class AppConfig extends WebMvcConfigurerAdapter {
* .exposedHeaders("header1", "header2")
* .allowCredentials(false).maxAge(3600);
*
- * @return
+ * @return a new WebMvcConfigurer instance
*/
@Bean
public WebMvcConfigurer corsConfigurer() {
diff --git a/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/security/OAuth2SecurityConfiguration.java b/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/security/OAuth2SecurityConfiguration.java
index ed96778f069..0c905a19417 100644
--- a/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/security/OAuth2SecurityConfiguration.java
+++ b/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/security/OAuth2SecurityConfiguration.java
@@ -18,7 +18,7 @@ import org.springframework.security.oauth2.provider.request.DefaultOAuth2Request
import org.springframework.security.oauth2.provider.token.TokenStore;
import org.springframework.security.oauth2.provider.token.store.InMemoryTokenStore;
/**
- * Provides a convenient base class for creating a {@link WebSecurityConfigurer}
+ * Provides a convenient base class for creating a WebSecurityConfigurer
* instance. The implementation allows customization by overriding methods.
*
* @see EnableWebSecurity
diff --git a/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/security/ResourceServerConfiguration.java b/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/security/ResourceServerConfiguration.java
index a45c1f35647..00d7467edef 100644
--- a/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/security/ResourceServerConfiguration.java
+++ b/samples/server/petstore/java-pkmst/src/main/java/com/prokarma/pkmst/security/ResourceServerConfiguration.java
@@ -10,7 +10,7 @@ import org.springframework.http.HttpMethod;
/**
* Configurer class for @EnableResourceServer
classes. This class adjust the access
* rules and paths that are protected by OAuth2 security. If more than one configures the same property, then the last
- * one wins. The configurers are sorted by {@link Order} before being applied.
+ * one wins. The configurers are sorted by Order before being applied.
*
* @author pkmst
*
diff --git a/samples/server/petstore/php-laravel/.openapi-generator/VERSION b/samples/server/petstore/php-laravel/.openapi-generator/VERSION
index afa63656064..479c313e87b 100644
--- a/samples/server/petstore/php-laravel/.openapi-generator/VERSION
+++ b/samples/server/petstore/php-laravel/.openapi-generator/VERSION
@@ -1 +1 @@
-4.0.0-SNAPSHOT
\ No newline at end of file
+4.0.3-SNAPSHOT
\ No newline at end of file
diff --git a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/AnotherFakeController.php b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/AnotherFakeController.php
index 0bfed630f7a..700d13d11e4 100644
--- a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/AnotherFakeController.php
+++ b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/AnotherFakeController.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/FakeClassnameTags123Controller.php b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/FakeClassnameTags123Controller.php
index 94e368ae8de..46ccd6e5fd6 100644
--- a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/FakeClassnameTags123Controller.php
+++ b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/FakeClassnameTags123Controller.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/FakeController.php b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/FakeController.php
index 8a1bea9c46a..eddab9354c8 100644
--- a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/FakeController.php
+++ b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/FakeController.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/PetController.php b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/PetController.php
index dd7201b6152..5fc490b27cc 100644
--- a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/PetController.php
+++ b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/PetController.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/StoreController.php b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/StoreController.php
index 867c802f84e..6c7013f5b63 100644
--- a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/StoreController.php
+++ b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/StoreController.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/UserController.php b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/UserController.php
index e516e4792a7..365502a3bee 100644
--- a/samples/server/petstore/php-laravel/lib/app/Http/Controllers/UserController.php
+++ b/samples/server/petstore/php-laravel/lib/app/Http/Controllers/UserController.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/app/Models/AdditionalPropertiesAnyType.php b/samples/server/petstore/php-laravel/lib/app/Models/AdditionalPropertiesAnyType.php
new file mode 100644
index 00000000000..6cd496f72ad
--- /dev/null
+++ b/samples/server/petstore/php-laravel/lib/app/Models/AdditionalPropertiesAnyType.php
@@ -0,0 +1,15 @@
+
+
diff --git a/samples/server/petstore/php-laravel/lib/routes/api.php b/samples/server/petstore/php-laravel/lib/routes/api.php
index 5d597c22282..1cf047e59d8 100644
--- a/samples/server/petstore/php-laravel/lib/routes/api.php
+++ b/samples/server/petstore/php-laravel/lib/routes/api.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/routes/channels.php b/samples/server/petstore/php-laravel/lib/routes/channels.php
index a221d1f5e02..ce848a9a1b0 100644
--- a/samples/server/petstore/php-laravel/lib/routes/channels.php
+++ b/samples/server/petstore/php-laravel/lib/routes/channels.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/routes/console.php b/samples/server/petstore/php-laravel/lib/routes/console.php
index 7604b2c9b91..0ed63f6741a 100644
--- a/samples/server/petstore/php-laravel/lib/routes/console.php
+++ b/samples/server/petstore/php-laravel/lib/routes/console.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-laravel/lib/routes/web.php b/samples/server/petstore/php-laravel/lib/routes/web.php
index 8b045358df8..325aca0792e 100644
--- a/samples/server/petstore/php-laravel/lib/routes/web.php
+++ b/samples/server/petstore/php-laravel/lib/routes/web.php
@@ -4,7 +4,7 @@
* 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: \" \\
*
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI-Generator
diff --git a/samples/server/petstore/php-slim/phpunit.xml.dist b/samples/server/petstore/php-slim/phpunit.xml.dist
index 5804ff4945e..6af1442ee65 100644
--- a/samples/server/petstore/php-slim/phpunit.xml.dist
+++ b/samples/server/petstore/php-slim/phpunit.xml.dist
@@ -24,4 +24,7 @@
./lib/Model
-
\ No newline at end of file
+
+
+
+
diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/phpunit.xml.dist b/samples/server/petstore/php-symfony/SymfonyBundle-php/phpunit.xml.dist
index ec07d2081c9..6f8b5ca0f93 100644
--- a/samples/server/petstore/php-symfony/SymfonyBundle-php/phpunit.xml.dist
+++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/phpunit.xml.dist
@@ -11,15 +11,14 @@
./Tests/Model
-
-
-
-
-
././Api
././Model
+
+
+
+