From d9a75434318709f509c3b72536a7ede737ee9d41 Mon Sep 17 00:00:00 2001
From: Dan Schomburg <dan@dynamicrangelabs.com>
Date: Thu, 25 Apr 2019 10:16:29 -0700
Subject: [PATCH 1/7] Add boost-uid to vcpkg isntall command. It's required.

---
 .../src/main/resources/cpp-rest-sdk-client/README.mustache      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/README.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/README.mustache
index c5681ca20de..ab239034611 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/README.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/README.mustache
@@ -26,7 +26,7 @@ For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
 
 Install [cpprestsdk](https://github.com/Microsoft/cpprestsdk).
 
-- Windows: `vcpkg install cpprestsdk cpprestsdk:x64-windows`
+- Windows: `vcpkg install cpprestsdk cpprestsdk:x64-windows boost-uuid boost-uuid:x64-windows`
 - Mac: `brew install cpprestsdk`
 - Linux: `sudo apt-get install libcpprest-dev`
 
-- 
GitLab


From 2eb650a3e0ed6d1e98e2411be6efab49c97a6b69 Mon Sep 17 00:00:00 2001
From: Dan Schomburg <dan@dynamicrangelabs.com>
Date: Thu, 25 Apr 2019 10:16:53 -0700
Subject: [PATCH 2/7] Add instructions for building on visual studio 2017

---
 .../resources/cpp-rest-sdk-client/README.mustache | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/README.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/README.mustache
index ab239034611..b17cd6375a4 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/README.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/README.mustache
@@ -37,6 +37,21 @@ cmake -DCPPREST_ROOT=/usr -DCMAKE_CXX_FLAGS="-I/usr/local/opt/openssl/include" -
 make
 ```
 
+### Build on Windows with Visual Studio (VS2017)
+
+- Right click on folder containing source code
+- Select 'Open in visual studio'
+- Once visual studio opens, CMake should show up in top menu bar.
+- Select CMake > Build All.
+
+*Note: If the CMake menu item doesn't show up in Visual Studio, CMake 
+for Visual Studio must be installed. In this case, open the 'Visual Studio 
+Installer' application. Select 'modify' Visual Studio 2017. Make sure 
+'Desktop Development with C++' is installed, and specifically that 'Visual 
+C++ tools for CMake' is selected in the 'Installation Details' section.
+
+Also be sure to review the CMakeLists.txt file. Edits are likely required.*
+
 ## Author
 
 {{#apiInfo}}{{#apis}}{{^hasMore}}{{infoEmail}}
-- 
GitLab


From 8ec25ebfdd5dde4cbc60418c24d0e570b540fa73 Mon Sep 17 00:00:00 2001
From: Dan Schomburg <dan@dynamicrangelabs.com>
Date: Thu, 25 Apr 2019 18:08:15 -0700
Subject: [PATCH 3/7] Add section to support vcpkg and visual studio

---
 .../resources/cpp-rest-sdk-client/cmake-lists.mustache   | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/cmake-lists.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/cmake-lists.mustache
index 80bc39635c0..94bd71ca168 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/cmake-lists.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/cmake-lists.mustache
@@ -37,6 +37,15 @@ set(CPPREST_LIBRARY_DIR ${CPPREST_ROOT}/lib)
 
 include_directories(${PROJECT_SOURCE_DIR} api model ${CPPREST_INCLUDE_DIR})
 
+
+# If using vcpkg, set include directories. Also comment out CPPREST section above since vcpkg will handle it.
+# To install required vcpkg packages execute:
+# > vcpkg install cpprestsdk cpprestsdk:x64-windows boost-uuid boost-uuid:x64-windows
+# set(VCPKG_ROOT "C:\\vcpkg\\installed\\x64-windows")
+# set(VCPKG_INCLUDE_DIR ${VCPKG_ROOT}/include)
+# set(VCPKG_LIBRARY_DIR ${VCPKG_ROOT}/lib)
+# include_directories(${PROJECT_SOURCE_DIR} api model ${VCPKG_INCLUDE_DIR})
+
 #SUPPORTING FILES
 set(SUPPORTING_FILES  "ApiClient" "ApiConfiguration" "ApiException" "HttpContent" "IHttpBody" "JsonBody" "ModelBase" "MultipartFormData" "Object")
 #SOURCE FILES
-- 
GitLab


From 2c41664d51fe001f85c8beb50e4c9de0c07ca162 Mon Sep 17 00:00:00 2001
From: dan-drl <dan@dynamicrangelabs.com>
Date: Fri, 26 Apr 2019 11:48:33 -0700
Subject: [PATCH 4/7] Undef U on windows to stop compiler error

---
 .../main/resources/cpp-rest-sdk-client/api-header.mustache    | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-header.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-header.mustache
index 1df116498b2..a24e84bfc7d 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-header.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-header.mustache
@@ -15,6 +15,10 @@
 {{/imports}}
 {{^hasModelImport}}#include "../ModelBase.h"{{/hasModelImport}}
 
+#ifdef _WIN32 | _WIN64
+#undef U
+#endif
+
 #include <boost/optional.hpp>
 
 {{#apiNamespaceDeclarations}}
-- 
GitLab


From 574eb232cf3c81744fb2d4957c0d69202027bb2e Mon Sep 17 00:00:00 2001
From: dan-drl <dan@dynamicrangelabs.com>
Date: Fri, 26 Apr 2019 16:03:51 -0700
Subject: [PATCH 5/7] Update pet store sample

---
 .../cpp-restsdk/.openapi-generator/VERSION    |  2 +-
 .../client/petstore/cpp-restsdk/ApiClient.cpp |  2 +-
 .../client/petstore/cpp-restsdk/ApiClient.h   |  2 +-
 .../petstore/cpp-restsdk/ApiConfiguration.cpp |  2 +-
 .../petstore/cpp-restsdk/ApiConfiguration.h   |  2 +-
 .../petstore/cpp-restsdk/ApiException.cpp     |  2 +-
 .../petstore/cpp-restsdk/ApiException.h       |  2 +-
 .../petstore/cpp-restsdk/CMakeLists.txt       |  9 ++++
 .../petstore/cpp-restsdk/HttpContent.cpp      |  2 +-
 .../client/petstore/cpp-restsdk/HttpContent.h |  2 +-
 .../client/petstore/cpp-restsdk/IHttpBody.h   |  2 +-
 .../client/petstore/cpp-restsdk/JsonBody.cpp  |  2 +-
 .../client/petstore/cpp-restsdk/JsonBody.h    |  2 +-
 .../client/petstore/cpp-restsdk/ModelBase.cpp |  2 +-
 .../client/petstore/cpp-restsdk/ModelBase.h   |  2 +-
 .../cpp-restsdk/MultipartFormData.cpp         |  2 +-
 .../petstore/cpp-restsdk/MultipartFormData.h  |  2 +-
 .../client/petstore/cpp-restsdk/Object.cpp    |  2 +-
 samples/client/petstore/cpp-restsdk/Object.h  |  2 +-
 samples/client/petstore/cpp-restsdk/README.md | 17 ++++++-
 .../petstore/cpp-restsdk/api/PetApi.cpp       | 30 ++++++------
 .../client/petstore/cpp-restsdk/api/PetApi.h  | 14 ++++--
 .../petstore/cpp-restsdk/api/StoreApi.cpp     | 16 +++----
 .../petstore/cpp-restsdk/api/StoreApi.h       | 10 ++--
 .../petstore/cpp-restsdk/api/UserApi.cpp      | 46 +++++++++----------
 .../client/petstore/cpp-restsdk/api/UserApi.h | 22 +++++----
 .../cpp-restsdk/model/ApiResponse.cpp         |  2 +-
 .../petstore/cpp-restsdk/model/ApiResponse.h  |  2 +-
 .../petstore/cpp-restsdk/model/Category.cpp   |  2 +-
 .../petstore/cpp-restsdk/model/Category.h     |  2 +-
 .../petstore/cpp-restsdk/model/Order.cpp      |  2 +-
 .../client/petstore/cpp-restsdk/model/Order.h |  2 +-
 .../client/petstore/cpp-restsdk/model/Pet.cpp |  2 +-
 .../client/petstore/cpp-restsdk/model/Pet.h   |  2 +-
 .../client/petstore/cpp-restsdk/model/Tag.cpp |  2 +-
 .../client/petstore/cpp-restsdk/model/Tag.h   |  2 +-
 .../petstore/cpp-restsdk/model/User.cpp       |  2 +-
 .../client/petstore/cpp-restsdk/model/User.h  |  2 +-
 38 files changed, 130 insertions(+), 94 deletions(-)

diff --git a/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION b/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION
index 2c6109e5bb8..afa63656064 100644
--- a/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION
+++ b/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION
@@ -1 +1 @@
-3.3.4
\ No newline at end of file
+4.0.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/cpp-restsdk/ApiClient.cpp b/samples/client/petstore/cpp-restsdk/ApiClient.cpp
index 116daba81b1..f9445bd20c6 100644
--- a/samples/client/petstore/cpp-restsdk/ApiClient.cpp
+++ b/samples/client/petstore/cpp-restsdk/ApiClient.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/ApiClient.h b/samples/client/petstore/cpp-restsdk/ApiClient.h
index efbb2c62cb6..a636b1d3cb3 100644
--- a/samples/client/petstore/cpp-restsdk/ApiClient.h
+++ b/samples/client/petstore/cpp-restsdk/ApiClient.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp b/samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp
index 6f5f140a410..531320239fb 100644
--- a/samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp
+++ b/samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/ApiConfiguration.h b/samples/client/petstore/cpp-restsdk/ApiConfiguration.h
index 6b2dcfc4bcd..d89fea879e4 100644
--- a/samples/client/petstore/cpp-restsdk/ApiConfiguration.h
+++ b/samples/client/petstore/cpp-restsdk/ApiConfiguration.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/ApiException.cpp b/samples/client/petstore/cpp-restsdk/ApiException.cpp
index 2c47ab45d1b..124bf391142 100644
--- a/samples/client/petstore/cpp-restsdk/ApiException.cpp
+++ b/samples/client/petstore/cpp-restsdk/ApiException.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/ApiException.h b/samples/client/petstore/cpp-restsdk/ApiException.h
index 22489f8e0bb..d419f13f3dd 100644
--- a/samples/client/petstore/cpp-restsdk/ApiException.h
+++ b/samples/client/petstore/cpp-restsdk/ApiException.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/CMakeLists.txt b/samples/client/petstore/cpp-restsdk/CMakeLists.txt
index 5e7e1cd95a0..6c7bfafe813 100644
--- a/samples/client/petstore/cpp-restsdk/CMakeLists.txt
+++ b/samples/client/petstore/cpp-restsdk/CMakeLists.txt
@@ -37,6 +37,15 @@ set(CPPREST_LIBRARY_DIR ${CPPREST_ROOT}/lib)
 
 include_directories(${PROJECT_SOURCE_DIR} api model ${CPPREST_INCLUDE_DIR})
 
+
+# If using vcpkg, set include directories. Also comment out CPPREST section above since vcpkg will handle it.
+# To install required vcpkg packages execute:
+# > vcpkg install cpprestsdk cpprestsdk:x64-windows boost-uuid boost-uuid:x64-windows
+# set(VCPKG_ROOT "C:\\vcpkg\\installed\\x64-windows")
+# set(VCPKG_INCLUDE_DIR ${VCPKG_ROOT}/include)
+# set(VCPKG_LIBRARY_DIR ${VCPKG_ROOT}/lib)
+# include_directories(${PROJECT_SOURCE_DIR} api model ${VCPKG_INCLUDE_DIR})
+
 #SUPPORTING FILES
 set(SUPPORTING_FILES  "ApiClient" "ApiConfiguration" "ApiException" "HttpContent" "IHttpBody" "JsonBody" "ModelBase" "MultipartFormData" "Object")
 #SOURCE FILES
diff --git a/samples/client/petstore/cpp-restsdk/HttpContent.cpp b/samples/client/petstore/cpp-restsdk/HttpContent.cpp
index a732ac5415a..0c0cce5fcdd 100644
--- a/samples/client/petstore/cpp-restsdk/HttpContent.cpp
+++ b/samples/client/petstore/cpp-restsdk/HttpContent.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/HttpContent.h b/samples/client/petstore/cpp-restsdk/HttpContent.h
index eb9cce62fcb..25dd1d5c6e0 100644
--- a/samples/client/petstore/cpp-restsdk/HttpContent.h
+++ b/samples/client/petstore/cpp-restsdk/HttpContent.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/IHttpBody.h b/samples/client/petstore/cpp-restsdk/IHttpBody.h
index 34dcfef4240..07d0e5c84ce 100644
--- a/samples/client/petstore/cpp-restsdk/IHttpBody.h
+++ b/samples/client/petstore/cpp-restsdk/IHttpBody.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/JsonBody.cpp b/samples/client/petstore/cpp-restsdk/JsonBody.cpp
index 5d6d3675a08..b523ba6f67c 100644
--- a/samples/client/petstore/cpp-restsdk/JsonBody.cpp
+++ b/samples/client/petstore/cpp-restsdk/JsonBody.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/JsonBody.h b/samples/client/petstore/cpp-restsdk/JsonBody.h
index be54577d003..dacf42985c9 100644
--- a/samples/client/petstore/cpp-restsdk/JsonBody.h
+++ b/samples/client/petstore/cpp-restsdk/JsonBody.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/ModelBase.cpp b/samples/client/petstore/cpp-restsdk/ModelBase.cpp
index 0e6bea7b80f..ec9192c14e2 100644
--- a/samples/client/petstore/cpp-restsdk/ModelBase.cpp
+++ b/samples/client/petstore/cpp-restsdk/ModelBase.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/ModelBase.h b/samples/client/petstore/cpp-restsdk/ModelBase.h
index a4b7b9d6fa1..80e8a76edbf 100644
--- a/samples/client/petstore/cpp-restsdk/ModelBase.h
+++ b/samples/client/petstore/cpp-restsdk/ModelBase.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/MultipartFormData.cpp b/samples/client/petstore/cpp-restsdk/MultipartFormData.cpp
index 7441862c19f..fda5c805bdd 100644
--- a/samples/client/petstore/cpp-restsdk/MultipartFormData.cpp
+++ b/samples/client/petstore/cpp-restsdk/MultipartFormData.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/MultipartFormData.h b/samples/client/petstore/cpp-restsdk/MultipartFormData.h
index 40adaa88ecc..cff61c6cb5c 100644
--- a/samples/client/petstore/cpp-restsdk/MultipartFormData.h
+++ b/samples/client/petstore/cpp-restsdk/MultipartFormData.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/Object.cpp b/samples/client/petstore/cpp-restsdk/Object.cpp
index 106bcd946f6..a63e69cea48 100644
--- a/samples/client/petstore/cpp-restsdk/Object.cpp
+++ b/samples/client/petstore/cpp-restsdk/Object.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/Object.h b/samples/client/petstore/cpp-restsdk/Object.h
index a57a86ef013..99179be55bd 100644
--- a/samples/client/petstore/cpp-restsdk/Object.h
+++ b/samples/client/petstore/cpp-restsdk/Object.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/README.md b/samples/client/petstore/cpp-restsdk/README.md
index 92981e519c4..d3aca4f9bf2 100644
--- a/samples/client/petstore/cpp-restsdk/README.md
+++ b/samples/client/petstore/cpp-restsdk/README.md
@@ -18,7 +18,7 @@ This API client was generated by the [OpenAPI Generator](https://openapi-generat
 
 Install [cpprestsdk](https://github.com/Microsoft/cpprestsdk).
 
-- Windows: `vcpkg install cpprestsdk cpprestsdk:x64-windows`
+- Windows: `vcpkg install cpprestsdk cpprestsdk:x64-windows boost-uuid boost-uuid:x64-windows`
 - Mac: `brew install cpprestsdk`
 - Linux: `sudo apt-get install libcpprest-dev`
 
@@ -29,6 +29,21 @@ cmake -DCPPREST_ROOT=/usr -DCMAKE_CXX_FLAGS="-I/usr/local/opt/openssl/include" -
 make
 ```
 
+### Build on Windows with Visual Studio (VS2017)
+
+- Right click on folder containing source code
+- Select 'Open in visual studio'
+- Once visual studio opens, CMake should show up in top menu bar.
+- Select CMake > Build All.
+
+*Note: If the CMake menu item doesn't show up in Visual Studio, CMake 
+for Visual Studio must be installed. In this case, open the 'Visual Studio 
+Installer' application. Select 'modify' Visual Studio 2017. Make sure 
+'Desktop Development with C++' is installed, and specifically that 'Visual 
+C++ tools for CMake' is selected in the 'Installation Details' section.
+
+Also be sure to review the CMakeLists.txt file. Edits are likely required.*
+
 ## Author
 
 
diff --git a/samples/client/petstore/cpp-restsdk/api/PetApi.cpp b/samples/client/petstore/cpp-restsdk/api/PetApi.cpp
index 692e502cc2f..d8530e324c0 100644
--- a/samples/client/petstore/cpp-restsdk/api/PetApi.cpp
+++ b/samples/client/petstore/cpp-restsdk/api/PetApi.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -35,13 +35,13 @@ PetApi::~PetApi()
 {
 }
 
-pplx::task<void> PetApi::addPet(std::shared_ptr<Pet> pet)
+pplx::task<void> PetApi::addPet(std::shared_ptr<Pet> body)
 {
 
-    // verify the required parameter 'pet' is set
-    if (pet == nullptr)
+    // verify the required parameter 'body' is set
+    if (body == nullptr)
     {
-        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'pet' when calling PetApi->addPet"));
+        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'body' when calling PetApi->addPet"));
     }
 
 
@@ -93,7 +93,7 @@ pplx::task<void> PetApi::addPet(std::shared_ptr<Pet> pet)
         localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
         web::json::value localVarJson;
 
-        localVarJson = ModelBase::toJson(pet);
+        localVarJson = ModelBase::toJson(body);
         
 
         localVarHttpBody = std::shared_ptr<IHttpBody>( new JsonBody( localVarJson ) );
@@ -104,9 +104,9 @@ pplx::task<void> PetApi::addPet(std::shared_ptr<Pet> pet)
         localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
         std::shared_ptr<MultipartFormData> localVarMultipart(new MultipartFormData);
 
-        if(pet.get())
+        if(body.get())
         {
-            pet->toMultipart(localVarMultipart, utility::conversions::to_string_t("pet"));
+            body->toMultipart(localVarMultipart, utility::conversions::to_string_t("body"));
         }
 
         localVarHttpBody = localVarMultipart;
@@ -655,13 +655,13 @@ pplx::task<std::shared_ptr<Pet>> PetApi::getPetById(int64_t petId)
         return localVarResult;
     });
 }
-pplx::task<void> PetApi::updatePet(std::shared_ptr<Pet> pet)
+pplx::task<void> PetApi::updatePet(std::shared_ptr<Pet> body)
 {
 
-    // verify the required parameter 'pet' is set
-    if (pet == nullptr)
+    // verify the required parameter 'body' is set
+    if (body == nullptr)
     {
-        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'pet' when calling PetApi->updatePet"));
+        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'body' when calling PetApi->updatePet"));
     }
 
 
@@ -713,7 +713,7 @@ pplx::task<void> PetApi::updatePet(std::shared_ptr<Pet> pet)
         localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
         web::json::value localVarJson;
 
-        localVarJson = ModelBase::toJson(pet);
+        localVarJson = ModelBase::toJson(body);
         
 
         localVarHttpBody = std::shared_ptr<IHttpBody>( new JsonBody( localVarJson ) );
@@ -724,9 +724,9 @@ pplx::task<void> PetApi::updatePet(std::shared_ptr<Pet> pet)
         localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
         std::shared_ptr<MultipartFormData> localVarMultipart(new MultipartFormData);
 
-        if(pet.get())
+        if(body.get())
         {
-            pet->toMultipart(localVarMultipart, utility::conversions::to_string_t("pet"));
+            body->toMultipart(localVarMultipart, utility::conversions::to_string_t("body"));
         }
 
         localVarHttpBody = localVarMultipart;
diff --git a/samples/client/petstore/cpp-restsdk/api/PetApi.h b/samples/client/petstore/cpp-restsdk/api/PetApi.h
index 8dbcce2922c..cbadb969cb3 100644
--- a/samples/client/petstore/cpp-restsdk/api/PetApi.h
+++ b/samples/client/petstore/cpp-restsdk/api/PetApi.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -27,6 +27,10 @@
 #include <cpprest/details/basic_types.h>
 
 
+#ifdef _WIN32 | _WIN64
+#undef U
+#endif
+
 #include <boost/optional.hpp>
 
 namespace org {
@@ -52,9 +56,9 @@ public:
     /// <remarks>
     /// 
     /// </remarks>
-    /// <param name="pet">Pet object that needs to be added to the store</param>
+    /// <param name="body">Pet object that needs to be added to the store</param>
     pplx::task<void> addPet(
-        std::shared_ptr<Pet> pet
+        std::shared_ptr<Pet> body
     );
     /// <summary>
     /// Deletes a pet
@@ -104,9 +108,9 @@ public:
     /// <remarks>
     /// 
     /// </remarks>
-    /// <param name="pet">Pet object that needs to be added to the store</param>
+    /// <param name="body">Pet object that needs to be added to the store</param>
     pplx::task<void> updatePet(
-        std::shared_ptr<Pet> pet
+        std::shared_ptr<Pet> body
     );
     /// <summary>
     /// Updates a pet in the store with form data
diff --git a/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp b/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp
index 92fef465129..0ec396c54e4 100644
--- a/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp
+++ b/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -386,13 +386,13 @@ pplx::task<std::shared_ptr<Order>> StoreApi::getOrderById(int64_t orderId)
         return localVarResult;
     });
 }
-pplx::task<std::shared_ptr<Order>> StoreApi::placeOrder(std::shared_ptr<Order> order)
+pplx::task<std::shared_ptr<Order>> StoreApi::placeOrder(std::shared_ptr<Order> body)
 {
 
-    // verify the required parameter 'order' is set
-    if (order == nullptr)
+    // verify the required parameter 'body' is set
+    if (body == nullptr)
     {
-        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'order' when calling StoreApi->placeOrder"));
+        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'body' when calling StoreApi->placeOrder"));
     }
 
 
@@ -444,7 +444,7 @@ pplx::task<std::shared_ptr<Order>> StoreApi::placeOrder(std::shared_ptr<Order> o
         localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
         web::json::value localVarJson;
 
-        localVarJson = ModelBase::toJson(order);
+        localVarJson = ModelBase::toJson(body);
         
 
         localVarHttpBody = std::shared_ptr<IHttpBody>( new JsonBody( localVarJson ) );
@@ -455,9 +455,9 @@ pplx::task<std::shared_ptr<Order>> StoreApi::placeOrder(std::shared_ptr<Order> o
         localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
         std::shared_ptr<MultipartFormData> localVarMultipart(new MultipartFormData);
 
-        if(order.get())
+        if(body.get())
         {
-            order->toMultipart(localVarMultipart, utility::conversions::to_string_t("order"));
+            body->toMultipart(localVarMultipart, utility::conversions::to_string_t("body"));
         }
 
         localVarHttpBody = localVarMultipart;
diff --git a/samples/client/petstore/cpp-restsdk/api/StoreApi.h b/samples/client/petstore/cpp-restsdk/api/StoreApi.h
index 2e4ffb799ea..8f6a67fe9ac 100644
--- a/samples/client/petstore/cpp-restsdk/api/StoreApi.h
+++ b/samples/client/petstore/cpp-restsdk/api/StoreApi.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -26,6 +26,10 @@
 #include <cpprest/details/basic_types.h>
 
 
+#ifdef _WIN32 | _WIN64
+#undef U
+#endif
+
 #include <boost/optional.hpp>
 
 namespace org {
@@ -79,9 +83,9 @@ public:
     /// <remarks>
     /// 
     /// </remarks>
-    /// <param name="order">order placed for purchasing the pet</param>
+    /// <param name="body">order placed for purchasing the pet</param>
     pplx::task<std::shared_ptr<Order>> placeOrder(
-        std::shared_ptr<Order> order
+        std::shared_ptr<Order> body
     );
 
 protected:
diff --git a/samples/client/petstore/cpp-restsdk/api/UserApi.cpp b/samples/client/petstore/cpp-restsdk/api/UserApi.cpp
index 1b2d1994631..ba8769d344a 100644
--- a/samples/client/petstore/cpp-restsdk/api/UserApi.cpp
+++ b/samples/client/petstore/cpp-restsdk/api/UserApi.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -35,13 +35,13 @@ UserApi::~UserApi()
 {
 }
 
-pplx::task<void> UserApi::createUser(std::shared_ptr<User> user)
+pplx::task<void> UserApi::createUser(std::shared_ptr<User> body)
 {
 
-    // verify the required parameter 'user' is set
-    if (user == nullptr)
+    // verify the required parameter 'body' is set
+    if (body == nullptr)
     {
-        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'user' when calling UserApi->createUser"));
+        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'body' when calling UserApi->createUser"));
     }
 
 
@@ -91,7 +91,7 @@ pplx::task<void> UserApi::createUser(std::shared_ptr<User> user)
         localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
         web::json::value localVarJson;
 
-        localVarJson = ModelBase::toJson(user);
+        localVarJson = ModelBase::toJson(body);
         
 
         localVarHttpBody = std::shared_ptr<IHttpBody>( new JsonBody( localVarJson ) );
@@ -102,9 +102,9 @@ pplx::task<void> UserApi::createUser(std::shared_ptr<User> user)
         localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
         std::shared_ptr<MultipartFormData> localVarMultipart(new MultipartFormData);
 
-        if(user.get())
+        if(body.get())
         {
-            user->toMultipart(localVarMultipart, utility::conversions::to_string_t("user"));
+            body->toMultipart(localVarMultipart, utility::conversions::to_string_t("body"));
         }
 
         localVarHttpBody = localVarMultipart;
@@ -155,7 +155,7 @@ pplx::task<void> UserApi::createUser(std::shared_ptr<User> user)
         return void();
     });
 }
-pplx::task<void> UserApi::createUsersWithArrayInput(std::vector<std::shared_ptr<User>> user)
+pplx::task<void> UserApi::createUsersWithArrayInput(std::vector<std::shared_ptr<User>> body)
 {
 
 
@@ -207,7 +207,7 @@ pplx::task<void> UserApi::createUsersWithArrayInput(std::vector<std::shared_ptr<
 
         {
             std::vector<web::json::value> localVarJsonArray;
-            for( auto& localVarItem : user )
+            for( auto& localVarItem : body )
             {
                 localVarJsonArray.push_back( localVarItem.get() ? localVarItem->toJson() : web::json::value::null() );
                 
@@ -224,12 +224,12 @@ pplx::task<void> UserApi::createUsersWithArrayInput(std::vector<std::shared_ptr<
         std::shared_ptr<MultipartFormData> localVarMultipart(new MultipartFormData);
         {
             std::vector<web::json::value> localVarJsonArray;
-            for( auto& localVarItem : user )
+            for( auto& localVarItem : body )
             {
                 localVarJsonArray.push_back( localVarItem.get() ? localVarItem->toJson() : web::json::value::null() );
                 
             }
-            localVarMultipart->add(ModelBase::toHttpContent(utility::conversions::to_string_t("user"), web::json::value::array(localVarJsonArray), utility::conversions::to_string_t("application/json")));
+            localVarMultipart->add(ModelBase::toHttpContent(utility::conversions::to_string_t("body"), web::json::value::array(localVarJsonArray), utility::conversions::to_string_t("application/json")));
         }
         
         localVarHttpBody = localVarMultipart;
@@ -280,7 +280,7 @@ pplx::task<void> UserApi::createUsersWithArrayInput(std::vector<std::shared_ptr<
         return void();
     });
 }
-pplx::task<void> UserApi::createUsersWithListInput(std::vector<std::shared_ptr<User>> user)
+pplx::task<void> UserApi::createUsersWithListInput(std::vector<std::shared_ptr<User>> body)
 {
 
 
@@ -332,7 +332,7 @@ pplx::task<void> UserApi::createUsersWithListInput(std::vector<std::shared_ptr<U
 
         {
             std::vector<web::json::value> localVarJsonArray;
-            for( auto& localVarItem : user )
+            for( auto& localVarItem : body )
             {
                 localVarJsonArray.push_back( localVarItem.get() ? localVarItem->toJson() : web::json::value::null() );
                 
@@ -349,12 +349,12 @@ pplx::task<void> UserApi::createUsersWithListInput(std::vector<std::shared_ptr<U
         std::shared_ptr<MultipartFormData> localVarMultipart(new MultipartFormData);
         {
             std::vector<web::json::value> localVarJsonArray;
-            for( auto& localVarItem : user )
+            for( auto& localVarItem : body )
             {
                 localVarJsonArray.push_back( localVarItem.get() ? localVarItem->toJson() : web::json::value::null() );
                 
             }
-            localVarMultipart->add(ModelBase::toHttpContent(utility::conversions::to_string_t("user"), web::json::value::array(localVarJsonArray), utility::conversions::to_string_t("application/json")));
+            localVarMultipart->add(ModelBase::toHttpContent(utility::conversions::to_string_t("body"), web::json::value::array(localVarJsonArray), utility::conversions::to_string_t("application/json")));
         }
         
         localVarHttpBody = localVarMultipart;
@@ -859,13 +859,13 @@ pplx::task<void> UserApi::logoutUser()
         return void();
     });
 }
-pplx::task<void> UserApi::updateUser(utility::string_t username, std::shared_ptr<User> user)
+pplx::task<void> UserApi::updateUser(utility::string_t username, std::shared_ptr<User> body)
 {
 
-    // verify the required parameter 'user' is set
-    if (user == nullptr)
+    // verify the required parameter 'body' is set
+    if (body == nullptr)
     {
-        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'user' when calling UserApi->updateUser"));
+        throw ApiException(400, utility::conversions::to_string_t("Missing required parameter 'body' when calling UserApi->updateUser"));
     }
 
 
@@ -916,7 +916,7 @@ pplx::task<void> UserApi::updateUser(utility::string_t username, std::shared_ptr
         localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
         web::json::value localVarJson;
 
-        localVarJson = ModelBase::toJson(user);
+        localVarJson = ModelBase::toJson(body);
         
 
         localVarHttpBody = std::shared_ptr<IHttpBody>( new JsonBody( localVarJson ) );
@@ -927,9 +927,9 @@ pplx::task<void> UserApi::updateUser(utility::string_t username, std::shared_ptr
         localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
         std::shared_ptr<MultipartFormData> localVarMultipart(new MultipartFormData);
 
-        if(user.get())
+        if(body.get())
         {
-            user->toMultipart(localVarMultipart, utility::conversions::to_string_t("user"));
+            body->toMultipart(localVarMultipart, utility::conversions::to_string_t("body"));
         }
 
         localVarHttpBody = localVarMultipart;
diff --git a/samples/client/petstore/cpp-restsdk/api/UserApi.h b/samples/client/petstore/cpp-restsdk/api/UserApi.h
index 854c7a27df9..4f5ce04e209 100644
--- a/samples/client/petstore/cpp-restsdk/api/UserApi.h
+++ b/samples/client/petstore/cpp-restsdk/api/UserApi.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -26,6 +26,10 @@
 #include <cpprest/details/basic_types.h>
 
 
+#ifdef _WIN32 | _WIN64
+#undef U
+#endif
+
 #include <boost/optional.hpp>
 
 namespace org {
@@ -51,9 +55,9 @@ public:
     /// <remarks>
     /// This can only be done by the logged in user.
     /// </remarks>
-    /// <param name="user">Created user object</param>
+    /// <param name="body">Created user object</param>
     pplx::task<void> createUser(
-        std::shared_ptr<User> user
+        std::shared_ptr<User> body
     );
     /// <summary>
     /// Creates list of users with given input array
@@ -61,9 +65,9 @@ public:
     /// <remarks>
     /// 
     /// </remarks>
-    /// <param name="user">List of user object</param>
+    /// <param name="body">List of user object</param>
     pplx::task<void> createUsersWithArrayInput(
-        std::vector<std::shared_ptr<User>> user
+        std::vector<std::shared_ptr<User>> body
     );
     /// <summary>
     /// Creates list of users with given input array
@@ -71,9 +75,9 @@ public:
     /// <remarks>
     /// 
     /// </remarks>
-    /// <param name="user">List of user object</param>
+    /// <param name="body">List of user object</param>
     pplx::task<void> createUsersWithListInput(
-        std::vector<std::shared_ptr<User>> user
+        std::vector<std::shared_ptr<User>> body
     );
     /// <summary>
     /// Delete user
@@ -122,10 +126,10 @@ public:
     /// This can only be done by the logged in user.
     /// </remarks>
     /// <param name="username">name that need to be deleted</param>
-    /// <param name="user">Updated user object</param>
+    /// <param name="body">Updated user object</param>
     pplx::task<void> updateUser(
         utility::string_t username,
-        std::shared_ptr<User> user
+        std::shared_ptr<User> body
     );
 
 protected:
diff --git a/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp b/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp
index 87593dea7fc..501d81308b3 100644
--- a/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp
+++ b/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/ApiResponse.h b/samples/client/petstore/cpp-restsdk/model/ApiResponse.h
index 9910ee43c85..ae6800aee9d 100644
--- a/samples/client/petstore/cpp-restsdk/model/ApiResponse.h
+++ b/samples/client/petstore/cpp-restsdk/model/ApiResponse.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/Category.cpp b/samples/client/petstore/cpp-restsdk/model/Category.cpp
index a124c426dcd..f332d75fc29 100644
--- a/samples/client/petstore/cpp-restsdk/model/Category.cpp
+++ b/samples/client/petstore/cpp-restsdk/model/Category.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/Category.h b/samples/client/petstore/cpp-restsdk/model/Category.h
index c2d5e3153eb..281764a6e22 100644
--- a/samples/client/petstore/cpp-restsdk/model/Category.h
+++ b/samples/client/petstore/cpp-restsdk/model/Category.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/Order.cpp b/samples/client/petstore/cpp-restsdk/model/Order.cpp
index 1b78741ac6c..328810e0da2 100644
--- a/samples/client/petstore/cpp-restsdk/model/Order.cpp
+++ b/samples/client/petstore/cpp-restsdk/model/Order.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/Order.h b/samples/client/petstore/cpp-restsdk/model/Order.h
index 80fcff46d68..e0ac20b8543 100644
--- a/samples/client/petstore/cpp-restsdk/model/Order.h
+++ b/samples/client/petstore/cpp-restsdk/model/Order.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/Pet.cpp b/samples/client/petstore/cpp-restsdk/model/Pet.cpp
index 6089767838e..29603278d97 100644
--- a/samples/client/petstore/cpp-restsdk/model/Pet.cpp
+++ b/samples/client/petstore/cpp-restsdk/model/Pet.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/Pet.h b/samples/client/petstore/cpp-restsdk/model/Pet.h
index 948cf34a84e..e151a071c28 100644
--- a/samples/client/petstore/cpp-restsdk/model/Pet.h
+++ b/samples/client/petstore/cpp-restsdk/model/Pet.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/Tag.cpp b/samples/client/petstore/cpp-restsdk/model/Tag.cpp
index d1aa9a9234b..e68b2109427 100644
--- a/samples/client/petstore/cpp-restsdk/model/Tag.cpp
+++ b/samples/client/petstore/cpp-restsdk/model/Tag.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/Tag.h b/samples/client/petstore/cpp-restsdk/model/Tag.h
index 763c21cce1d..67556cc2c40 100644
--- a/samples/client/petstore/cpp-restsdk/model/Tag.h
+++ b/samples/client/petstore/cpp-restsdk/model/Tag.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/User.cpp b/samples/client/petstore/cpp-restsdk/model/User.cpp
index 805ebadff32..9f8645431b4 100644
--- a/samples/client/petstore/cpp-restsdk/model/User.cpp
+++ b/samples/client/petstore/cpp-restsdk/model/User.cpp
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/User.h b/samples/client/petstore/cpp-restsdk/model/User.h
index 1317714c826..b4a858d837d 100644
--- a/samples/client/petstore/cpp-restsdk/model/User.h
+++ b/samples/client/petstore/cpp-restsdk/model/User.h
@@ -4,7 +4,7 @@
  *
  * OpenAPI spec version: 1.0.0
  *
- * NOTE: This class is auto generated by OpenAPI-Generator 3.3.4.
+ * NOTE: This class is auto generated by OpenAPI-Generator 4.0.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
-- 
GitLab


From 39a41af35e42a2888285d173141ce337a816cadb Mon Sep 17 00:00:00 2001
From: dan-drl <dan@dynamicrangelabs.com>
Date: Tue, 30 Apr 2019 09:59:07 -0700
Subject: [PATCH 6/7] Move undef U to apiclient-header

---
 .../main/resources/cpp-rest-sdk-client/api-header.mustache    | 4 ----
 .../resources/cpp-rest-sdk-client/apiclient-header.mustache   | 4 ++++
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-header.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-header.mustache
index a24e84bfc7d..1df116498b2 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-header.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-header.mustache
@@ -15,10 +15,6 @@
 {{/imports}}
 {{^hasModelImport}}#include "../ModelBase.h"{{/hasModelImport}}
 
-#ifdef _WIN32 | _WIN64
-#undef U
-#endif
-
 #include <boost/optional.hpp>
 
 {{#apiNamespaceDeclarations}}
diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache
index 09f02a21873..5d96079dff9 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache
@@ -18,6 +18,10 @@
 #include <vector>
 #include <functional>
 
+#ifdef _WIN32|_WIN64
+#undef U
+#endif
+
 #include <cpprest/details/basic_types.h>
 #include <cpprest/http_client.h>
 
-- 
GitLab


From 0f42e2f40af9b9903ba5d3bd8811f9a9385b47d3 Mon Sep 17 00:00:00 2001
From: dan-drl <dan@dynamicrangelabs.com>
Date: Tue, 30 Apr 2019 10:32:40 -0700
Subject: [PATCH 7/7] Slight change to address compiler warning

---
 .../resources/cpp-rest-sdk-client/apiclient-header.mustache     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache
index 5d96079dff9..5bc75edcd28 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache
@@ -18,7 +18,7 @@
 #include <vector>
 #include <functional>
 
-#ifdef _WIN32|_WIN64
+#if  defined (_WIN32) || defined (_WIN64)
 #undef U
 #endif
 
-- 
GitLab