diff --git a/modules/openapi-generator/src/main/resources/elixir/model.mustache b/modules/openapi-generator/src/main/resources/elixir/model.mustache
index 20bcfbdce9cd31a1ecd5659c6959feb7a4c28af0..98c01f9096d51cad6ba11802aab2086381f4c48a 100644
--- a/modules/openapi-generator/src/main/resources/elixir/model.mustache
+++ b/modules/openapi-generator/src/main/resources/elixir/model.mustache
@@ -11,7 +11,7 @@
   ]
 
   @type t :: %__MODULE__{
-    {{#vars}}:"{{baseName}}" => {{{dataType}}}{{#hasMore}},
+    {{#vars}}:"{{baseName}}" => {{{datatype}}}{{#isNullable}} | nil{{/isNullable}}{{^isNullable}}{{^required}} | nil{{/required}}{{/isNullable}}{{#hasMore}},
     {{/hasMore}}{{/vars}}
   }
 end
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/additional_properties_class.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/additional_properties_class.ex
index 0921cc583f858639cd468ff97d7463af7f21668e..837bf62a7ce1c4db377e76094bb1cfc4a9b9c02c 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/additional_properties_class.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/additional_properties_class.ex
@@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.AdditionalPropertiesClass do
   ]
 
   @type t :: %__MODULE__{
-    :"map_property" => %{optional(String.t) => String.t},
-    :"map_of_map_property" => %{optional(String.t) => %{optional(String.t) => String.t}}
+    :"map_property" => %{optional(String.t) => String.t} | nil,
+    :"map_of_map_property" => %{optional(String.t) => %{optional(String.t) => String.t}} | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/animal.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/animal.ex
index 27e45bc5eadadb28f9170efa1d06347dfec12e5f..deb93a04d0e04f104805627ac9b5c15b7fd141fd 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/animal.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/animal.ex
@@ -15,7 +15,7 @@ defmodule OpenapiPetstore.Model.Animal do
 
   @type t :: %__MODULE__{
     :"className" => String.t,
-    :"color" => String.t
+    :"color" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/api_response.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/api_response.ex
index 27a6813ff20766b598d8b2e39c2da22064bfbc6d..7dc34e32ad7d1dacf25187ce0017c497990910a2 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/api_response.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/api_response.ex
@@ -15,9 +15,9 @@ defmodule OpenapiPetstore.Model.ApiResponse do
   ]
 
   @type t :: %__MODULE__{
-    :"code" => integer(),
-    :"type" => String.t,
-    :"message" => String.t
+    :"code" => integer() | nil,
+    :"type" => String.t | nil,
+    :"message" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/array_of_array_of_number_only.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/array_of_array_of_number_only.ex
index 1ee202f602fc27642e775a350bf81398aab3a20d..e126f51109c3923b83324c4b926d3e712415ae18 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/array_of_array_of_number_only.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/array_of_array_of_number_only.ex
@@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.ArrayOfArrayOfNumberOnly do
   ]
 
   @type t :: %__MODULE__{
-    :"ArrayArrayNumber" => [[float()]]
+    :"ArrayArrayNumber" => [[float()]] | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/array_of_number_only.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/array_of_number_only.ex
index 0be9ae36939e009a13ce6148981e3e46c8218b6a..2e8e5355248018770e79bc8963a60ed16175297b 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/array_of_number_only.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/array_of_number_only.ex
@@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.ArrayOfNumberOnly do
   ]
 
   @type t :: %__MODULE__{
-    :"ArrayNumber" => [float()]
+    :"ArrayNumber" => [float()] | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/array_test.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/array_test.ex
index d725eb77a19c400c73844d3327ccca22ec502f71..fbed2547c5e1142f62b52274625505cc14489fe9 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/array_test.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/array_test.ex
@@ -15,9 +15,9 @@ defmodule OpenapiPetstore.Model.ArrayTest do
   ]
 
   @type t :: %__MODULE__{
-    :"array_of_string" => [String.t],
-    :"array_array_of_integer" => [[integer()]],
-    :"array_array_of_model" => [[ReadOnlyFirst]]
+    :"array_of_string" => [String.t] | nil,
+    :"array_array_of_integer" => [[integer()]] | nil,
+    :"array_array_of_model" => [[ReadOnlyFirst]] | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/capitalization.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/capitalization.ex
index 7b303458fd3cf88cb3df9f09ac71f4bc55182332..e9627cf3341f33d91340f565c23aff005f5592fc 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/capitalization.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/capitalization.ex
@@ -18,12 +18,12 @@ defmodule OpenapiPetstore.Model.Capitalization do
   ]
 
   @type t :: %__MODULE__{
-    :"smallCamel" => String.t,
-    :"CapitalCamel" => String.t,
-    :"small_Snake" => String.t,
-    :"Capital_Snake" => String.t,
-    :"SCA_ETH_Flow_Points" => String.t,
-    :"ATT_NAME" => String.t
+    :"smallCamel" => String.t | nil,
+    :"CapitalCamel" => String.t | nil,
+    :"small_Snake" => String.t | nil,
+    :"Capital_Snake" => String.t | nil,
+    :"SCA_ETH_Flow_Points" => String.t | nil,
+    :"ATT_NAME" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/cat.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/cat.ex
index ab4e49e6d805ed1e218c8c4af9ae62a3ccd537ed..416bb0a73ebe01365223f41e7f99477ee897e7dc 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/cat.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/cat.ex
@@ -16,8 +16,8 @@ defmodule OpenapiPetstore.Model.Cat do
 
   @type t :: %__MODULE__{
     :"className" => String.t,
-    :"color" => String.t,
-    :"declawed" => boolean()
+    :"color" => String.t | nil,
+    :"declawed" => boolean() | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/category.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/category.ex
index 9b1c71be1b6afd88be56c77b1148f96cb20922c4..2d1c853ab499ab0ac03a70f6092aae201398e9b2 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/category.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/category.ex
@@ -14,7 +14,7 @@ defmodule OpenapiPetstore.Model.Category do
   ]
 
   @type t :: %__MODULE__{
-    :"id" => integer(),
+    :"id" => integer() | nil,
     :"name" => String.t
   }
 end
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/class_model.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/class_model.ex
index 9b26c5e3e7b4745a244e012835511a262e8184ac..e204556d8b718c18e7fa44e5a79fff1a3bb65e8d 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/class_model.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/class_model.ex
@@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.ClassModel do
   ]
 
   @type t :: %__MODULE__{
-    :"_class" => String.t
+    :"_class" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/client.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/client.ex
index d02cc3e7c06971d1b82388593f9384ccda209e49..cd5a452028bb7ad4afe57aad395882a55a8cea75 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/client.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/client.ex
@@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.Client do
   ]
 
   @type t :: %__MODULE__{
-    :"client" => String.t
+    :"client" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/dog.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/dog.ex
index 509f7b8f15409453bc8f3bb56531d2ffac6ef68e..f4a7eae34ab6aef06ed1b3bfd6ef2be434442237 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/dog.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/dog.ex
@@ -16,8 +16,8 @@ defmodule OpenapiPetstore.Model.Dog do
 
   @type t :: %__MODULE__{
     :"className" => String.t,
-    :"color" => String.t,
-    :"breed" => String.t
+    :"color" => String.t | nil,
+    :"breed" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/enum_arrays.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/enum_arrays.ex
index 367ab0f6f28aac03f26c944b2654c595593a0686..d8f98a028a78a5a27544231cd2d555f7c678947f 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/enum_arrays.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/enum_arrays.ex
@@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.EnumArrays do
   ]
 
   @type t :: %__MODULE__{
-    :"just_symbol" => String.t,
-    :"array_enum" => [String.t]
+    :"just_symbol" => String.t | nil,
+    :"array_enum" => [String.t] | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/enum_test.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/enum_test.ex
index abc41ec5a803d8aba7a67d183a5b684feb8a0d77..11e81c98a77c6a1ed7d1beeaf15e8a6e80ae145d 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/enum_test.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/enum_test.ex
@@ -17,11 +17,11 @@ defmodule OpenapiPetstore.Model.EnumTest do
   ]
 
   @type t :: %__MODULE__{
-    :"enum_string" => String.t,
+    :"enum_string" => String.t | nil,
     :"enum_string_required" => String.t,
-    :"enum_integer" => integer(),
-    :"enum_number" => float(),
-    :"outerEnum" => OuterEnum
+    :"enum_integer" => integer() | nil,
+    :"enum_number" => float() | nil,
+    :"outerEnum" => OuterEnum | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/file_schema_test_class.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/file_schema_test_class.ex
index 3a52359a5f00b9b340920a0e14b7b96f4ec97fa7..2c5031ca9194c816498862294fc6d8d43be1d470 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/file_schema_test_class.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/file_schema_test_class.ex
@@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.FileSchemaTestClass do
   ]
 
   @type t :: %__MODULE__{
-    :"file" => File,
-    :"files" => [File]
+    :"file" => File | nil,
+    :"files" => [File] | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/format_test.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/format_test.ex
index 144a12a254de3b2e6fd7559cd52cf8c2befe201e..869d7aa41929a21940cbe6b566af9a92b56773f7 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/format_test.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/format_test.ex
@@ -25,18 +25,18 @@ defmodule OpenapiPetstore.Model.FormatTest do
   ]
 
   @type t :: %__MODULE__{
-    :"integer" => integer(),
-    :"int32" => integer(),
-    :"int64" => integer(),
+    :"integer" => integer() | nil,
+    :"int32" => integer() | nil,
+    :"int64" => integer() | nil,
     :"number" => float(),
-    :"float" => float(),
-    :"double" => float(),
-    :"string" => String.t,
+    :"float" => float() | nil,
+    :"double" => float() | nil,
+    :"string" => String.t | nil,
     :"byte" => binary(),
-    :"binary" => String.t,
+    :"binary" => String.t | nil,
     :"date" => Date.t,
-    :"dateTime" => DateTime.t,
-    :"uuid" => String.t,
+    :"dateTime" => DateTime.t | nil,
+    :"uuid" => String.t | nil,
     :"password" => String.t
   }
 end
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/has_only_read_only.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/has_only_read_only.ex
index aea5065c090606758114e495bdbea69143dbd78a..1a1fa302edbf7b7ffc480d8a470f2b8942510f18 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/has_only_read_only.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/has_only_read_only.ex
@@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.HasOnlyReadOnly do
   ]
 
   @type t :: %__MODULE__{
-    :"bar" => String.t,
-    :"foo" => String.t
+    :"bar" => String.t | nil,
+    :"foo" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/map_test.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/map_test.ex
index d3870aa0075ef5a06804af50b668712edd65b8aa..726814dd81771db7a806bb9b5a544213a46549f2 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/map_test.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/map_test.ex
@@ -16,10 +16,10 @@ defmodule OpenapiPetstore.Model.MapTest do
   ]
 
   @type t :: %__MODULE__{
-    :"map_map_of_string" => %{optional(String.t) => %{optional(String.t) => String.t}},
-    :"map_of_enum_string" => %{optional(String.t) => String.t},
-    :"direct_map" => %{optional(String.t) => boolean()},
-    :"indirect_map" => %{optional(String.t) => boolean()}
+    :"map_map_of_string" => %{optional(String.t) => %{optional(String.t) => String.t}} | nil,
+    :"map_of_enum_string" => %{optional(String.t) => String.t} | nil,
+    :"direct_map" => %{optional(String.t) => boolean()} | nil,
+    :"indirect_map" => %{optional(String.t) => boolean()} | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/mixed_properties_and_additional_properties_class.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/mixed_properties_and_additional_properties_class.ex
index 014b696ff6d69549ca59435418459b4bf2d1ab72..3603ec4f6bb2de6ed5273a7ba38a0e45ee8c37dd 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/mixed_properties_and_additional_properties_class.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/mixed_properties_and_additional_properties_class.ex
@@ -15,9 +15,9 @@ defmodule OpenapiPetstore.Model.MixedPropertiesAndAdditionalPropertiesClass do
   ]
 
   @type t :: %__MODULE__{
-    :"uuid" => String.t,
-    :"dateTime" => DateTime.t,
-    :"map" => %{optional(String.t) => Animal}
+    :"uuid" => String.t | nil,
+    :"dateTime" => DateTime.t | nil,
+    :"map" => %{optional(String.t) => Animal} | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/model_200_response.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/model_200_response.ex
index e3764d66ea2e9da26162307fa1f68fa9724e5428..2bc6d1529066bce79be38b29f6f5c5391c7c6ba1 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/model_200_response.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/model_200_response.ex
@@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.Model200Response do
   ]
 
   @type t :: %__MODULE__{
-    :"name" => integer(),
-    :"class" => String.t
+    :"name" => integer() | nil,
+    :"class" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/name.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/name.ex
index 1b4c97a8060726d0ce84e89c715aca5ea84eb45a..cd2fdce24d09862fc91c0d45ea12f13c38c63cfb 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/name.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/name.ex
@@ -17,9 +17,9 @@ defmodule OpenapiPetstore.Model.Name do
 
   @type t :: %__MODULE__{
     :"name" => integer(),
-    :"snake_case" => integer(),
-    :"property" => String.t,
-    :"123Number" => integer()
+    :"snake_case" => integer() | nil,
+    :"property" => String.t | nil,
+    :"123Number" => integer() | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/number_only.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/number_only.ex
index 84e1ae577606cd0c9154581b4ead328840435f26..825553cf9f3f56220f97b3b19e0bfe84eb4217dd 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/number_only.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/number_only.ex
@@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.NumberOnly do
   ]
 
   @type t :: %__MODULE__{
-    :"JustNumber" => float()
+    :"JustNumber" => float() | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/order.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/order.ex
index 3f6f5c813146882945918ead9ff7a840ae052a28..936a7039dce39411d9e6803f20bc8bcb9a1f76cc 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/order.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/order.ex
@@ -18,12 +18,12 @@ defmodule OpenapiPetstore.Model.Order do
   ]
 
   @type t :: %__MODULE__{
-    :"id" => integer(),
-    :"petId" => integer(),
-    :"quantity" => integer(),
-    :"shipDate" => DateTime.t,
-    :"status" => String.t,
-    :"complete" => boolean()
+    :"id" => integer() | nil,
+    :"petId" => integer() | nil,
+    :"quantity" => integer() | nil,
+    :"shipDate" => DateTime.t | nil,
+    :"status" => String.t | nil,
+    :"complete" => boolean() | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/outer_composite.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/outer_composite.ex
index 00c4df9228e34479c8fa24aea3fe0593dad366cb..04143a20a576f9a673c4d4562453cbc345815db0 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/outer_composite.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/outer_composite.ex
@@ -15,9 +15,9 @@ defmodule OpenapiPetstore.Model.OuterComposite do
   ]
 
   @type t :: %__MODULE__{
-    :"my_number" => float(),
-    :"my_string" => String.t,
-    :"my_boolean" => boolean()
+    :"my_number" => float() | nil,
+    :"my_string" => String.t | nil,
+    :"my_boolean" => boolean() | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/pet.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/pet.ex
index 8f2802d59531f5174af20b813c413bb11ce05132..4fdcdc95a8ec2978d6863a19d599196382e64014 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/pet.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/pet.ex
@@ -18,12 +18,12 @@ defmodule OpenapiPetstore.Model.Pet do
   ]
 
   @type t :: %__MODULE__{
-    :"id" => integer(),
-    :"category" => Category,
+    :"id" => integer() | nil,
+    :"category" => Category | nil,
     :"name" => String.t,
     :"photoUrls" => [String.t],
-    :"tags" => [Tag],
-    :"status" => String.t
+    :"tags" => [Tag] | nil,
+    :"status" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/read_only_first.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/read_only_first.ex
index 942bb6045e8ff89813a62eb652c602236d783479..bfd2dda2072691fdc0cc9098fdb1b5c6bf3f3de4 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/read_only_first.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/read_only_first.ex
@@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.ReadOnlyFirst do
   ]
 
   @type t :: %__MODULE__{
-    :"bar" => String.t,
-    :"baz" => String.t
+    :"bar" => String.t | nil,
+    :"baz" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/return.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/return.ex
index ad2765dbd1289bb9e86232896e2b904075635a9a..8a2102c5989c4f99ed2a8c7f51db4ed07e6116ca 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/return.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/return.ex
@@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.Return do
   ]
 
   @type t :: %__MODULE__{
-    :"return" => integer()
+    :"return" => integer() | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/special_model_name.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/special_model_name.ex
index e4bed9810c6a077bf0711427f7ec87a84710ce1e..429129b42a0f0a610fc418443fedfdbd9ea7daa3 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/special_model_name.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/special_model_name.ex
@@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.SpecialModelName do
   ]
 
   @type t :: %__MODULE__{
-    :"$special[property.name]" => integer()
+    :"$special[property.name]" => integer() | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/tag.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/tag.ex
index 720f19b309b4b1dac0124845ed04b626a057ead2..5dd3bac75020743ce56afb2f8fd230f2443a4ce5 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/tag.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/tag.ex
@@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.Tag do
   ]
 
   @type t :: %__MODULE__{
-    :"id" => integer(),
-    :"name" => String.t
+    :"id" => integer() | nil,
+    :"name" => String.t | nil
   }
 end
 
diff --git a/samples/client/petstore/elixir/lib/openapi_petstore/model/user.ex b/samples/client/petstore/elixir/lib/openapi_petstore/model/user.ex
index 17cfecea713cf86f8bb5ba92c5e6a8a8b974f4f6..faaf4ab9a963ef2893d05caa85d1a36135c871e2 100644
--- a/samples/client/petstore/elixir/lib/openapi_petstore/model/user.ex
+++ b/samples/client/petstore/elixir/lib/openapi_petstore/model/user.ex
@@ -20,14 +20,14 @@ defmodule OpenapiPetstore.Model.User do
   ]
 
   @type t :: %__MODULE__{
-    :"id" => integer(),
-    :"username" => String.t,
-    :"firstName" => String.t,
-    :"lastName" => String.t,
-    :"email" => String.t,
-    :"password" => String.t,
-    :"phone" => String.t,
-    :"userStatus" => integer()
+    :"id" => integer() | nil,
+    :"username" => String.t | nil,
+    :"firstName" => String.t | nil,
+    :"lastName" => String.t | nil,
+    :"email" => String.t | nil,
+    :"password" => String.t | nil,
+    :"phone" => String.t | nil,
+    :"userStatus" => integer() | nil
   }
 end