diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache
index 842571dcbefb30f640e426eba9b053b71bbde5cd..2959ee7c9e431143e820e6bbfd24d3c948a758aa 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache
@@ -140,7 +140,11 @@ void {{classname}}::fromJson(web::json::value& val)
     {{^required}}
     if(val.has_field(utility::conversions::to_string_t("{{baseName}}")))
     {
-        {{setter}}(ModelBase::{{baseType}}FromJson(val[utility::conversions::to_string_t("{{baseName}}")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("{{baseName}}")];
+        if(!fieldValue.is_null())
+        {
+            {{setter}}(ModelBase::{{baseType}}FromJson(fieldValue));
+        }
     }
     {{/required}}
     {{#required}}
@@ -242,27 +246,28 @@ void {{classname}}::fromJson(web::json::value& val)
     {{^required}}
     if(val.has_field(utility::conversions::to_string_t("{{baseName}}")))
     {
-        {{#isString}}
-        {{setter}}(ModelBase::stringFromJson(val[utility::conversions::to_string_t("{{baseName}}")]));
-        {{/isString}}
-        {{#isByteArray}}
-        {{setter}}(ModelBase::stringFromJson(val[utility::conversions::to_string_t("{{baseName}}")]));
-        {{/isByteArray}}
-        {{^isString}}
-        {{#isDateTime}}
-        {{setter}}(ModelBase::dateFromJson(val[utility::conversions::to_string_t("{{baseName}}")]));
-        {{/isDateTime}}
-        {{^isDateTime}}
-        {{^isByteArray}}
-        if(!val[utility::conversions::to_string_t("{{baseName}}")].is_null())
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("{{baseName}}")];
+        if(!fieldValue.is_null())
         {
+            {{#isString}}
+            {{setter}}(ModelBase::stringFromJson(fieldValue));
+            {{/isString}}
+            {{#isByteArray}}
+            {{setter}}(ModelBase::stringFromJson(fieldValue));
+            {{/isByteArray}}
+            {{^isString}}
+            {{#isDateTime}}
+            {{setter}}(ModelBase::dateFromJson(fieldValue));
+            {{/isDateTime}}
+            {{^isDateTime}}
+            {{^isByteArray}}
             {{{dataType}}} newItem({{{defaultValue}}});
-            newItem->fromJson(val[utility::conversions::to_string_t("{{baseName}}")]);
+            newItem->fromJson(fieldValue);
             {{setter}}( newItem );
+            {{/isByteArray}}
+            {{/isDateTime}}
+            {{/isString}}
         }
-        {{/isByteArray}}
-        {{/isDateTime}}
-        {{/isString}}
     }
     {{/required}}
     {{#required}}
diff --git a/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION b/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION
index 105bb87d77b38e447886d6a2e81be9e740249dd8..6d94c9c2e12a1bd077604be440ff7eb83354cd54 100644
--- a/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION
+++ b/samples/client/petstore/cpp-restsdk/.openapi-generator/VERSION
@@ -1 +1 @@
-3.2.2-SNAPSHOT
\ No newline at end of file
+3.3.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 32a7e44548c50672614dd5b525737fdb26895aee..9b7ae17bd823670743518ea2e7305cd9ae6f839f 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 2381ce335a38a97068664f2ea4e38db2fcc207f1..0ce3eeb491656e155fccfa3bfabe0de2ffa05734 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 292054f38e69d7d139378b4be17ff1d3a3072de3..95a6c5fc1b9599108696b8e4cae2e1d849f7d22b 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 c6dde17bc8c6b237ecb173fa779ce94fe80c4cff..218c92b403f5515bc5afae233f24dd52564ae3aa 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 150d30bbd2cece38bd55d8d5c1296bd2b6e3b2ea..f1eb81c2144716ac33479a4381d6f8ef75625bd3 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 517313c47f513d6f2d8220e872cf3ee82986f594..4958f09ad74f57a274823de261b2954e6c40ed82 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/HttpContent.cpp b/samples/client/petstore/cpp-restsdk/HttpContent.cpp
index 7c7ac5840ba698b53e9e1842aa9321ad0e0d83d9..3f94dd84a97bc56c395db2625b2ba90e3cd85520 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 864ec2075e6333dbe7ca570e6b3a204d0bd9b28b..9cc76d8d11445b068aaf84c1ccce2e7e8dd3d77f 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 dc9bc6f089c2951d77c4517abbf13e59d93c4d21..c5e173490f7b0e82b80bab75e2fe7d41eb77de6a 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 c2f9c451061f2a6c5f1c50b9486ca39b7b68eb8c..276f83abbb2a08cff7e7a1fe217baccc358d05d4 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 3f5702dfb882ac0139e42908fe34587154e1e89d..ada2e9eb11ba0c3c212655a90551c6536069b5aa 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 c0ef13e4ac24892e49f4f759bf489f375c3600d3..10bffc4d1fa42e0ef746e1f15a061ed8e9c9c70a 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 8c2a0d80a002ba361c824525bf18297c88dc13d8..2eedce34bf132a0347236e795c65c91f44d098e0 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 b1cd75ded0e40461929e3db31291f6073eb4cf2f..af977862526771363213bcdb078a8e02fe2b6317 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 6542845bcc19ce6737ce95e5ac345901987479fa..3cc52c4990cfd5e8d4d7d7a897d4b0ab60611ccc 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 42694b488ed4d5dd7911c7700ef2f569ef416b55..c732027e2aca5e6f091b3dc9c4a474427b1dc13b 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 a8f58b43a9725c2fff451010337f3f35cbfba50b..0914c1fd7c177345f0289786d6089b9a30643970 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/api/PetApi.cpp b/samples/client/petstore/cpp-restsdk/api/PetApi.cpp
index 8d99e86ca8ad40af6b158133f9f4a4aa45995710..eb912354ea0ba3dbbee32ddbb3994f023b63b7dd 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/api/PetApi.h b/samples/client/petstore/cpp-restsdk/api/PetApi.h
index e63710124ca762a101adc30904e9062bbb3fd3c7..ae7546f11503a10199310745e78f4d3088c40fc4 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp b/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp
index c690f2be5112abfe50550496ada3d72282a79391..55cfb7850e9cbd400a19869a97c41c5bc8b7d996 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/api/StoreApi.h b/samples/client/petstore/cpp-restsdk/api/StoreApi.h
index f952506a16dc967068232b2db1ccd5b462a9002a..6380402473e95a06de90ecdae9405b7fb6464645 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/api/UserApi.cpp b/samples/client/petstore/cpp-restsdk/api/UserApi.cpp
index af3fb210b684f6e2fadb5e963eb157944d56936c..24376a874774e788f945ea80be9b2701e30e86a5 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/api/UserApi.h b/samples/client/petstore/cpp-restsdk/api/UserApi.h
index d74deecb3d08690f76db1efe5458ebf15f9e053f..2afa0af92819bab0ff474ed551db2e6ec8c63176 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
diff --git a/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp b/samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp
index b93cbb85328c91536cbc78c1ce664a2910d2790d..ce86c5523e48c39310ce39068634308fecfb97d0 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -61,15 +61,27 @@ void ApiResponse::fromJson(web::json::value& val)
 {
     if(val.has_field(utility::conversions::to_string_t("code")))
     {
-        setCode(ModelBase::int32_tFromJson(val[utility::conversions::to_string_t("code")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("code")];
+        if(!fieldValue.is_null())
+        {
+            setCode(ModelBase::int32_tFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("type")))
     {
-        setType(ModelBase::stringFromJson(val[utility::conversions::to_string_t("type")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("type")];
+        if(!fieldValue.is_null())
+        {
+            setType(ModelBase::stringFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("message")))
     {
-        setMessage(ModelBase::stringFromJson(val[utility::conversions::to_string_t("message")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("message")];
+        if(!fieldValue.is_null())
+        {
+            setMessage(ModelBase::stringFromJson(fieldValue));
+        }
     }
 }
 
diff --git a/samples/client/petstore/cpp-restsdk/model/ApiResponse.h b/samples/client/petstore/cpp-restsdk/model/ApiResponse.h
index fc1bf4e610922ec40b9692e598925928090a25e0..2c257ab297b1d4a4fa9ca8a1f4e2039dc260bc04 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 534940108008a35d5f885f801bc8a4a6a652f3c4..c39bf76fc8b993d1927d810ddc356b7ca465a0f4 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -55,11 +55,19 @@ void Category::fromJson(web::json::value& val)
 {
     if(val.has_field(utility::conversions::to_string_t("id")))
     {
-        setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("id")];
+        if(!fieldValue.is_null())
+        {
+            setId(ModelBase::int64_tFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("name")))
     {
-        setName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("name")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("name")];
+        if(!fieldValue.is_null())
+        {
+            setName(ModelBase::stringFromJson(fieldValue));
+        }
     }
 }
 
diff --git a/samples/client/petstore/cpp-restsdk/model/Category.h b/samples/client/petstore/cpp-restsdk/model/Category.h
index ab370a4bb03c5f1bf5d260dbf82d1d24ce073e31..87f4224b2ab08d7abffe1ea012ecce2e1f9823fe 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 7f5b5464d5f136667549e8d448119e84fd2eb0f3..fe2ecb8ebe9d4264527f6deef9d7403df8d05076 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -79,27 +79,51 @@ void Order::fromJson(web::json::value& val)
 {
     if(val.has_field(utility::conversions::to_string_t("id")))
     {
-        setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("id")];
+        if(!fieldValue.is_null())
+        {
+            setId(ModelBase::int64_tFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("petId")))
     {
-        setPetId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("petId")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("petId")];
+        if(!fieldValue.is_null())
+        {
+            setPetId(ModelBase::int64_tFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("quantity")))
     {
-        setQuantity(ModelBase::int32_tFromJson(val[utility::conversions::to_string_t("quantity")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("quantity")];
+        if(!fieldValue.is_null())
+        {
+            setQuantity(ModelBase::int32_tFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("shipDate")))
     {
-        setShipDate(ModelBase::dateFromJson(val[utility::conversions::to_string_t("shipDate")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("shipDate")];
+        if(!fieldValue.is_null())
+        {
+            setShipDate(ModelBase::dateFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("status")))
     {
-        setStatus(ModelBase::stringFromJson(val[utility::conversions::to_string_t("status")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("status")];
+        if(!fieldValue.is_null())
+        {
+            setStatus(ModelBase::stringFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("complete")))
     {
-        setComplete(ModelBase::boolFromJson(val[utility::conversions::to_string_t("complete")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("complete")];
+        if(!fieldValue.is_null())
+        {
+            setComplete(ModelBase::boolFromJson(fieldValue));
+        }
     }
 }
 
diff --git a/samples/client/petstore/cpp-restsdk/model/Order.h b/samples/client/petstore/cpp-restsdk/model/Order.h
index b2d4410d64364af90cad821a04d4b1dd9503a3ef..1b3b7f1e121906ff80b936c0a3d4c12bf6f406f6 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 78fed60be7d528161161ebeb1a4b3c988abb4209..ac8c2232b2dbbc5af03f3be30b35294aa250d2c7 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -82,14 +82,19 @@ void Pet::fromJson(web::json::value& val)
 {
     if(val.has_field(utility::conversions::to_string_t("id")))
     {
-        setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("id")];
+        if(!fieldValue.is_null())
+        {
+            setId(ModelBase::int64_tFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("category")))
     {
-        if(!val[utility::conversions::to_string_t("category")].is_null())
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("category")];
+        if(!fieldValue.is_null())
         {
             std::shared_ptr<Category> newItem(new Category());
-            newItem->fromJson(val[utility::conversions::to_string_t("category")]);
+            newItem->fromJson(fieldValue);
             setCategory( newItem );
         }
     }
@@ -124,7 +129,11 @@ void Pet::fromJson(web::json::value& val)
     }
     if(val.has_field(utility::conversions::to_string_t("status")))
     {
-        setStatus(ModelBase::stringFromJson(val[utility::conversions::to_string_t("status")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("status")];
+        if(!fieldValue.is_null())
+        {
+            setStatus(ModelBase::stringFromJson(fieldValue));
+        }
     }
 }
 
diff --git a/samples/client/petstore/cpp-restsdk/model/Pet.h b/samples/client/petstore/cpp-restsdk/model/Pet.h
index c4e0d0b497878a41c951ebc8a439e025615b2b7b..a0d457cabace331555dfd3bd84f7962ce92a1116 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 8c0c537cf2604ef23f10ebc262ff43f99f044b36..416ec5e2de599a57e8229f77cb8c9c8de4e15a35 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -55,11 +55,19 @@ void Tag::fromJson(web::json::value& val)
 {
     if(val.has_field(utility::conversions::to_string_t("id")))
     {
-        setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("id")];
+        if(!fieldValue.is_null())
+        {
+            setId(ModelBase::int64_tFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("name")))
     {
-        setName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("name")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("name")];
+        if(!fieldValue.is_null())
+        {
+            setName(ModelBase::stringFromJson(fieldValue));
+        }
     }
 }
 
diff --git a/samples/client/petstore/cpp-restsdk/model/Tag.h b/samples/client/petstore/cpp-restsdk/model/Tag.h
index b2b49f58c4338f2f97a4ce0a87dc6ae89499d5ee..d78e2c34001ece48d882b938851117f03e467e30 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.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 511811b9f087e7a9fc18c2a6e390207bb7127e7f..d8ec0c8c4376ee7f3474ecef3eaaabfc5cd41a40 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */
@@ -91,35 +91,67 @@ void User::fromJson(web::json::value& val)
 {
     if(val.has_field(utility::conversions::to_string_t("id")))
     {
-        setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("id")];
+        if(!fieldValue.is_null())
+        {
+            setId(ModelBase::int64_tFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("username")))
     {
-        setUsername(ModelBase::stringFromJson(val[utility::conversions::to_string_t("username")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("username")];
+        if(!fieldValue.is_null())
+        {
+            setUsername(ModelBase::stringFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("firstName")))
     {
-        setFirstName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("firstName")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("firstName")];
+        if(!fieldValue.is_null())
+        {
+            setFirstName(ModelBase::stringFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("lastName")))
     {
-        setLastName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("lastName")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("lastName")];
+        if(!fieldValue.is_null())
+        {
+            setLastName(ModelBase::stringFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("email")))
     {
-        setEmail(ModelBase::stringFromJson(val[utility::conversions::to_string_t("email")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("email")];
+        if(!fieldValue.is_null())
+        {
+            setEmail(ModelBase::stringFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("password")))
     {
-        setPassword(ModelBase::stringFromJson(val[utility::conversions::to_string_t("password")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("password")];
+        if(!fieldValue.is_null())
+        {
+            setPassword(ModelBase::stringFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("phone")))
     {
-        setPhone(ModelBase::stringFromJson(val[utility::conversions::to_string_t("phone")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("phone")];
+        if(!fieldValue.is_null())
+        {
+            setPhone(ModelBase::stringFromJson(fieldValue));
+        }
     }
     if(val.has_field(utility::conversions::to_string_t("userStatus")))
     {
-        setUserStatus(ModelBase::int32_tFromJson(val[utility::conversions::to_string_t("userStatus")]));
+        web::json::value& fieldValue = val[utility::conversions::to_string_t("userStatus")];
+        if(!fieldValue.is_null())
+        {
+            setUserStatus(ModelBase::int32_tFromJson(fieldValue));
+        }
     }
 }
 
diff --git a/samples/client/petstore/cpp-restsdk/model/User.h b/samples/client/petstore/cpp-restsdk/model/User.h
index aca144de93347160cd2572eb0c4fbaf8aadab0e4..01c3271f93470c0f77841a85c3b95c7472bb5750 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.2.2-SNAPSHOT.
+ * NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
  * https://openapi-generator.tech
  * Do not edit the class manually.
  */