diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.4.3`
+`1.4.4`
 
 
 ## Description
@@ -17,7 +17,7 @@
 
 Use the Amazon Elasticsearch configuration API to create, configure, and manage Elasticsearch domains.
 
-The endpoint for configuration service requests is region-specific: es./region/.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see <http://docs.aws.amazon.com/general/latest/gr/rande.html#cloudsearch_region Regions and Endpoints>.
+The endpoint for configuration service requests is region-specific: es./region/.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see <http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticsearch-service-regions Regions and Endpoints>.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-elasticsearch)
 and the [AWS API Reference](https://aws.amazon.com/documentation/).
diff --git a/amazonka-elasticsearch.cabal b/amazonka-elasticsearch.cabal
--- a/amazonka-elasticsearch.cabal
+++ b/amazonka-elasticsearch.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-elasticsearch
-version:               1.4.3
+version:               1.4.4
 synopsis:              Amazon Elasticsearch Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -11,13 +11,13 @@
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
-extra-source-files:    README.md fixture/*.yaml fixture/*.proto
+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep
 description:
     Amazon Elasticsearch Configuration Service
 
     Use the Amazon Elasticsearch configuration API to create, configure, and manage Elasticsearch domains.
 
-    The endpoint for configuration service requests is region-specific: es./region/.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see <http://docs.aws.amazon.com/general/latest/gr/rande.html#cloudsearch_region Regions and Endpoints>.
+    The endpoint for configuration service requests is region-specific: es./region/.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see <http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticsearch-service-regions Regions and Endpoints>.
     .
     The types from this library are intended to be used with
     <http://hackage.haskell.org/package/amazonka amazonka>, which provides
@@ -63,7 +63,7 @@
         , Network.AWS.ElasticSearch.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.3.*
+          amazonka-core == 1.4.4.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-elasticsearch-test
@@ -83,9 +83,9 @@
         , Test.AWS.ElasticSearch.Internal
 
     build-depends:
-          amazonka-core == 1.4.3.*
-        , amazonka-test == 1.4.3.*
-        , amazonka-elasticsearch == 1.4.3.*
+          amazonka-core == 1.4.4.*
+        , amazonka-test == 1.4.4.*
+        , amazonka-elasticsearch == 1.4.4.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/ElasticSearch.hs b/gen/Network/AWS/ElasticSearch.hs
--- a/gen/Network/AWS/ElasticSearch.hs
+++ b/gen/Network/AWS/ElasticSearch.hs
@@ -15,7 +15,7 @@
 --
 -- Use the Amazon Elasticsearch configuration API to create, configure, and manage Elasticsearch domains.
 --
--- The endpoint for configuration service requests is region-specific: es./region/.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see <http://docs.aws.amazon.com/general/latest/gr/rande.html#cloudsearch_region Regions and Endpoints>.
+-- The endpoint for configuration service requests is region-specific: es./region/.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see <http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticsearch-service-regions Regions and Endpoints>.
 module Network.AWS.ElasticSearch
     (
     -- * Service Configuration
@@ -150,6 +150,7 @@
     , edcElasticsearchClusterConfig
     , edcSnapshotOptions
     , edcAdvancedOptions
+    , edcElasticsearchVersion
 
     -- ** ElasticsearchDomainStatus
     , ElasticsearchDomainStatus
@@ -162,10 +163,17 @@
     , edsProcessing
     , edsEndpoint
     , edsAdvancedOptions
+    , edsElasticsearchVersion
     , edsDomainId
     , edsDomainName
     , edsARN
     , edsElasticsearchClusterConfig
+
+    -- ** ElasticsearchVersionStatus
+    , ElasticsearchVersionStatus
+    , elasticsearchVersionStatus
+    , evsOptions
+    , evsStatus
 
     -- ** OptionStatus
     , OptionStatus
diff --git a/gen/Network/AWS/ElasticSearch/CreateElasticsearchDomain.hs b/gen/Network/AWS/ElasticSearch/CreateElasticsearchDomain.hs
--- a/gen/Network/AWS/ElasticSearch/CreateElasticsearchDomain.hs
+++ b/gen/Network/AWS/ElasticSearch/CreateElasticsearchDomain.hs
@@ -30,6 +30,7 @@
     , cedElasticsearchClusterConfig
     , cedSnapshotOptions
     , cedAdvancedOptions
+    , cedElasticsearchVersion
     , cedDomainName
 
     -- * Destructuring the Response
@@ -54,6 +55,7 @@
     , _cedElasticsearchClusterConfig :: !(Maybe ElasticsearchClusterConfig)
     , _cedSnapshotOptions            :: !(Maybe SnapshotOptions)
     , _cedAdvancedOptions            :: !(Maybe (Map Text Text))
+    , _cedElasticsearchVersion       :: !(Maybe Text)
     , _cedDomainName                 :: !Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
@@ -71,6 +73,8 @@
 --
 -- * 'cedAdvancedOptions'
 --
+-- * 'cedElasticsearchVersion'
+--
 -- * 'cedDomainName'
 createElasticsearchDomain
     :: Text -- ^ 'cedDomainName'
@@ -82,6 +86,7 @@
     , _cedElasticsearchClusterConfig = Nothing
     , _cedSnapshotOptions = Nothing
     , _cedAdvancedOptions = Nothing
+    , _cedElasticsearchVersion = Nothing
     , _cedDomainName = pDomainName_
     }
 
@@ -105,6 +110,10 @@
 cedAdvancedOptions :: Lens' CreateElasticsearchDomain (HashMap Text Text)
 cedAdvancedOptions = lens _cedAdvancedOptions (\ s a -> s{_cedAdvancedOptions = a}) . _Default . _Map;
 
+-- | String of format X.Y to specify version for the Elasticsearch domain eg. \"1.5\" or \"2.3\". For more information, see <http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains Creating Elasticsearch Domains> in the /Amazon Elasticsearch Service Developer Guide/.
+cedElasticsearchVersion :: Lens' CreateElasticsearchDomain (Maybe Text)
+cedElasticsearchVersion = lens _cedElasticsearchVersion (\ s a -> s{_cedElasticsearchVersion = a});
+
 -- | The name of the Elasticsearch domain that you are creating. Domain names are unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).
 cedDomainName :: Lens' CreateElasticsearchDomain Text
 cedDomainName = lens _cedDomainName (\ s a -> s{_cedDomainName = a});
@@ -136,6 +145,8 @@
                     _cedElasticsearchClusterConfig,
                   ("SnapshotOptions" .=) <$> _cedSnapshotOptions,
                   ("AdvancedOptions" .=) <$> _cedAdvancedOptions,
+                  ("ElasticsearchVersion" .=) <$>
+                    _cedElasticsearchVersion,
                   Just ("DomainName" .= _cedDomainName)])
 
 instance ToPath CreateElasticsearchDomain where
diff --git a/gen/Network/AWS/ElasticSearch/Types.hs b/gen/Network/AWS/ElasticSearch/Types.hs
--- a/gen/Network/AWS/ElasticSearch/Types.hs
+++ b/gen/Network/AWS/ElasticSearch/Types.hs
@@ -89,6 +89,7 @@
     , edcElasticsearchClusterConfig
     , edcSnapshotOptions
     , edcAdvancedOptions
+    , edcElasticsearchVersion
 
     -- * ElasticsearchDomainStatus
     , ElasticsearchDomainStatus
@@ -101,10 +102,17 @@
     , edsProcessing
     , edsEndpoint
     , edsAdvancedOptions
+    , edsElasticsearchVersion
     , edsDomainId
     , edsDomainName
     , edsARN
     , edsElasticsearchClusterConfig
+
+    -- * ElasticsearchVersionStatus
+    , ElasticsearchVersionStatus
+    , elasticsearchVersionStatus
+    , evsOptions
+    , evsStatus
 
     -- * OptionStatus
     , OptionStatus
diff --git a/gen/Network/AWS/ElasticSearch/Types/Product.hs b/gen/Network/AWS/ElasticSearch/Types/Product.hs
--- a/gen/Network/AWS/ElasticSearch/Types/Product.hs
+++ b/gen/Network/AWS/ElasticSearch/Types/Product.hs
@@ -404,6 +404,7 @@
     , _edcElasticsearchClusterConfig :: !(Maybe ElasticsearchClusterConfigStatus)
     , _edcSnapshotOptions            :: !(Maybe SnapshotOptionsStatus)
     , _edcAdvancedOptions            :: !(Maybe AdvancedOptionsStatus)
+    , _edcElasticsearchVersion       :: !(Maybe ElasticsearchVersionStatus)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'ElasticsearchDomainConfig' with the minimum fields required to make a request.
@@ -419,6 +420,8 @@
 -- * 'edcSnapshotOptions'
 --
 -- * 'edcAdvancedOptions'
+--
+-- * 'edcElasticsearchVersion'
 elasticsearchDomainConfig
     :: ElasticsearchDomainConfig
 elasticsearchDomainConfig =
@@ -428,6 +431,7 @@
     , _edcElasticsearchClusterConfig = Nothing
     , _edcSnapshotOptions = Nothing
     , _edcAdvancedOptions = Nothing
+    , _edcElasticsearchVersion = Nothing
     }
 
 -- | Specifies the 'EBSOptions' for the Elasticsearch domain.
@@ -450,6 +454,10 @@
 edcAdvancedOptions :: Lens' ElasticsearchDomainConfig (Maybe AdvancedOptionsStatus)
 edcAdvancedOptions = lens _edcAdvancedOptions (\ s a -> s{_edcAdvancedOptions = a});
 
+-- | String of format X.Y to specify version for the Elasticsearch domain.
+edcElasticsearchVersion :: Lens' ElasticsearchDomainConfig (Maybe ElasticsearchVersionStatus)
+edcElasticsearchVersion = lens _edcElasticsearchVersion (\ s a -> s{_edcElasticsearchVersion = a});
+
 instance FromJSON ElasticsearchDomainConfig where
         parseJSON
           = withObject "ElasticsearchDomainConfig"
@@ -458,7 +466,8 @@
                    (x .:? "EBSOptions") <*> (x .:? "AccessPolicies") <*>
                      (x .:? "ElasticsearchClusterConfig")
                      <*> (x .:? "SnapshotOptions")
-                     <*> (x .:? "AdvancedOptions"))
+                     <*> (x .:? "AdvancedOptions")
+                     <*> (x .:? "ElasticsearchVersion"))
 
 instance Hashable ElasticsearchDomainConfig
 
@@ -476,6 +485,7 @@
     , _edsProcessing                 :: !(Maybe Bool)
     , _edsEndpoint                   :: !(Maybe Text)
     , _edsAdvancedOptions            :: !(Maybe (Map Text Text))
+    , _edsElasticsearchVersion       :: !(Maybe Text)
     , _edsDomainId                   :: !Text
     , _edsDomainName                 :: !Text
     , _edsARN                        :: !Text
@@ -502,6 +512,8 @@
 --
 -- * 'edsAdvancedOptions'
 --
+-- * 'edsElasticsearchVersion'
+--
 -- * 'edsDomainId'
 --
 -- * 'edsDomainName'
@@ -525,6 +537,7 @@
     , _edsProcessing = Nothing
     , _edsEndpoint = Nothing
     , _edsAdvancedOptions = Nothing
+    , _edsElasticsearchVersion = Nothing
     , _edsDomainId = pDomainId_
     , _edsDomainName = pDomainName_
     , _edsARN = pARN_
@@ -563,6 +576,10 @@
 edsAdvancedOptions :: Lens' ElasticsearchDomainStatus (HashMap Text Text)
 edsAdvancedOptions = lens _edsAdvancedOptions (\ s a -> s{_edsAdvancedOptions = a}) . _Default . _Map;
 
+-- | Undocumented member.
+edsElasticsearchVersion :: Lens' ElasticsearchDomainStatus (Maybe Text)
+edsElasticsearchVersion = lens _edsElasticsearchVersion (\ s a -> s{_edsElasticsearchVersion = a});
+
 -- | The unique identifier for the specified Elasticsearch domain.
 edsDomainId :: Lens' ElasticsearchDomainStatus Text
 edsDomainId = lens _edsDomainId (\ s a -> s{_edsDomainId = a});
@@ -591,6 +608,7 @@
                      <*> (x .:? "Processing")
                      <*> (x .:? "Endpoint")
                      <*> (x .:? "AdvancedOptions" .!= mempty)
+                     <*> (x .:? "ElasticsearchVersion")
                      <*> (x .: "DomainId")
                      <*> (x .: "DomainName")
                      <*> (x .: "ARN")
@@ -599,6 +617,50 @@
 instance Hashable ElasticsearchDomainStatus
 
 instance NFData ElasticsearchDomainStatus
+
+-- | Status of the Elasticsearch version options for the specified Elasticsearch domain.
+--
+-- /See:/ 'elasticsearchVersionStatus' smart constructor.
+data ElasticsearchVersionStatus = ElasticsearchVersionStatus'
+    { _evsOptions :: !Text
+    , _evsStatus  :: !OptionStatus
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ElasticsearchVersionStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'evsOptions'
+--
+-- * 'evsStatus'
+elasticsearchVersionStatus
+    :: Text -- ^ 'evsOptions'
+    -> OptionStatus -- ^ 'evsStatus'
+    -> ElasticsearchVersionStatus
+elasticsearchVersionStatus pOptions_ pStatus_ =
+    ElasticsearchVersionStatus'
+    { _evsOptions = pOptions_
+    , _evsStatus = pStatus_
+    }
+
+-- | Specifies the Elasticsearch version for the specified Elasticsearch domain.
+evsOptions :: Lens' ElasticsearchVersionStatus Text
+evsOptions = lens _evsOptions (\ s a -> s{_evsOptions = a});
+
+-- | Specifies the status of the Elasticsearch version options for the specified Elasticsearch domain.
+evsStatus :: Lens' ElasticsearchVersionStatus OptionStatus
+evsStatus = lens _evsStatus (\ s a -> s{_evsStatus = a});
+
+instance FromJSON ElasticsearchVersionStatus where
+        parseJSON
+          = withObject "ElasticsearchVersionStatus"
+              (\ x ->
+                 ElasticsearchVersionStatus' <$>
+                   (x .: "Options") <*> (x .: "Status"))
+
+instance Hashable ElasticsearchVersionStatus
+
+instance NFData ElasticsearchVersionStatus
 
 -- | Provides the current status of the entity.
 --
diff --git a/gen/Network/AWS/ElasticSearch/Types/Sum.hs b/gen/Network/AWS/ElasticSearch/Types/Sum.hs
--- a/gen/Network/AWS/ElasticSearch/Types/Sum.hs
+++ b/gen/Network/AWS/ElasticSearch/Types/Sum.hs
@@ -26,6 +26,11 @@
     | M3_Large_Elasticsearch
     | M3_Medium_Elasticsearch
     | M3_XLarge_Elasticsearch
+    | M4_10XLarge_Elasticsearch
+    | M4_2XLarge_Elasticsearch
+    | M4_4XLarge_Elasticsearch
+    | M4_Large_Elasticsearch
+    | M4_XLarge_Elasticsearch
     | R3_2XLarge_Elasticsearch
     | R3_4XLarge_Elasticsearch
     | R3_8XLarge_Elasticsearch
@@ -44,6 +49,11 @@
         "m3.large.elasticsearch" -> pure M3_Large_Elasticsearch
         "m3.medium.elasticsearch" -> pure M3_Medium_Elasticsearch
         "m3.xlarge.elasticsearch" -> pure M3_XLarge_Elasticsearch
+        "m4.10xlarge.elasticsearch" -> pure M4_10XLarge_Elasticsearch
+        "m4.2xlarge.elasticsearch" -> pure M4_2XLarge_Elasticsearch
+        "m4.4xlarge.elasticsearch" -> pure M4_4XLarge_Elasticsearch
+        "m4.large.elasticsearch" -> pure M4_Large_Elasticsearch
+        "m4.xlarge.elasticsearch" -> pure M4_XLarge_Elasticsearch
         "r3.2xlarge.elasticsearch" -> pure R3_2XLarge_Elasticsearch
         "r3.4xlarge.elasticsearch" -> pure R3_4XLarge_Elasticsearch
         "r3.8xlarge.elasticsearch" -> pure R3_8XLarge_Elasticsearch
@@ -53,7 +63,7 @@
         "t2.micro.elasticsearch" -> pure T2_Micro_Elasticsearch
         "t2.small.elasticsearch" -> pure T2_Small_Elasticsearch
         e -> fromTextError $ "Failure parsing ESPartitionInstanceType from value: '" <> e
-           <> "'. Accepted values: i2.2xlarge.elasticsearch, i2.xlarge.elasticsearch, m3.2xlarge.elasticsearch, m3.large.elasticsearch, m3.medium.elasticsearch, m3.xlarge.elasticsearch, r3.2xlarge.elasticsearch, r3.4xlarge.elasticsearch, r3.8xlarge.elasticsearch, r3.large.elasticsearch, r3.xlarge.elasticsearch, t2.medium.elasticsearch, t2.micro.elasticsearch, t2.small.elasticsearch"
+           <> "'. Accepted values: i2.2xlarge.elasticsearch, i2.xlarge.elasticsearch, m3.2xlarge.elasticsearch, m3.large.elasticsearch, m3.medium.elasticsearch, m3.xlarge.elasticsearch, m4.10xlarge.elasticsearch, m4.2xlarge.elasticsearch, m4.4xlarge.elasticsearch, m4.large.elasticsearch, m4.xlarge.elasticsearch, r3.2xlarge.elasticsearch, r3.4xlarge.elasticsearch, r3.8xlarge.elasticsearch, r3.large.elasticsearch, r3.xlarge.elasticsearch, t2.medium.elasticsearch, t2.micro.elasticsearch, t2.small.elasticsearch"
 
 instance ToText ESPartitionInstanceType where
     toText = \case
@@ -63,6 +73,11 @@
         M3_Large_Elasticsearch -> "m3.large.elasticsearch"
         M3_Medium_Elasticsearch -> "m3.medium.elasticsearch"
         M3_XLarge_Elasticsearch -> "m3.xlarge.elasticsearch"
+        M4_10XLarge_Elasticsearch -> "m4.10xlarge.elasticsearch"
+        M4_2XLarge_Elasticsearch -> "m4.2xlarge.elasticsearch"
+        M4_4XLarge_Elasticsearch -> "m4.4xlarge.elasticsearch"
+        M4_Large_Elasticsearch -> "m4.large.elasticsearch"
+        M4_XLarge_Elasticsearch -> "m4.xlarge.elasticsearch"
         R3_2XLarge_Elasticsearch -> "r3.2xlarge.elasticsearch"
         R3_4XLarge_Elasticsearch -> "r3.4xlarge.elasticsearch"
         R3_8XLarge_Elasticsearch -> "r3.8xlarge.elasticsearch"
@@ -100,7 +115,7 @@
         "processing" -> pure Processing
         "requiresindexdocuments" -> pure RequiresIndexDocuments
         e -> fromTextError $ "Failure parsing OptionState from value: '" <> e
-           <> "'. Accepted values: Active, Processing, RequiresIndexDocuments"
+           <> "'. Accepted values: active, processing, requiresindexdocuments"
 
 instance ToText OptionState where
     toText = \case
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
