diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.3.0`
+`0.5.0`
 
 
 ## Description
diff --git a/gen/Network/Google/Composer.hs b/gen/Network/Google/Composer.hs
--- a/gen/Network/Google/Composer.hs
+++ b/gen/Network/Google/Composer.hs
@@ -44,6 +44,9 @@
     -- ** composer.projects.locations.environments.patch
     , module Network.Google.Resource.Composer.Projects.Locations.Environments.Patch
 
+    -- ** composer.projects.locations.imageVersions.list
+    , module Network.Google.Resource.Composer.Projects.Locations.ImageVersions.List
+
     -- ** composer.projects.locations.operations.delete
     , module Network.Google.Resource.Composer.Projects.Locations.Operations.Delete
 
@@ -67,6 +70,12 @@
     , operationSchema
     , osAddtional
 
+    -- ** ListImageVersionsResponse
+    , ListImageVersionsResponse
+    , listImageVersionsResponse
+    , livrNextPageToken
+    , livrImageVersions
+
     -- ** ListEnvironmentsResponse
     , ListEnvironmentsResponse
     , listEnvironmentsResponse
@@ -122,6 +131,13 @@
     , softwareConfigEnvVariables
     , scevAddtional
 
+    -- ** ImageVersion
+    , ImageVersion
+    , imageVersion
+    , ivImageVersionId
+    , ivSupportedPythonVersions
+    , ivIsDefault
+
     -- ** Environment
     , Environment
     , environment
@@ -194,6 +210,7 @@
 import           Network.Google.Resource.Composer.Projects.Locations.Environments.Get
 import           Network.Google.Resource.Composer.Projects.Locations.Environments.List
 import           Network.Google.Resource.Composer.Projects.Locations.Environments.Patch
+import           Network.Google.Resource.Composer.Projects.Locations.ImageVersions.List
 import           Network.Google.Resource.Composer.Projects.Locations.Operations.Delete
 import           Network.Google.Resource.Composer.Projects.Locations.Operations.Get
 import           Network.Google.Resource.Composer.Projects.Locations.Operations.List
@@ -207,6 +224,7 @@
      ProjectsLocationsOperationsListResource :<|>
        ProjectsLocationsOperationsGetResource
        :<|> ProjectsLocationsOperationsDeleteResource
+       :<|> ProjectsLocationsImageVersionsListResource
        :<|> ProjectsLocationsEnvironmentsListResource
        :<|> ProjectsLocationsEnvironmentsPatchResource
        :<|> ProjectsLocationsEnvironmentsGetResource
diff --git a/gen/Network/Google/Composer/Types.hs b/gen/Network/Google/Composer/Types.hs
--- a/gen/Network/Google/Composer/Types.hs
+++ b/gen/Network/Google/Composer/Types.hs
@@ -34,6 +34,12 @@
     , operationSchema
     , osAddtional
 
+    -- * ListImageVersionsResponse
+    , ListImageVersionsResponse
+    , listImageVersionsResponse
+    , livrNextPageToken
+    , livrImageVersions
+
     -- * ListEnvironmentsResponse
     , ListEnvironmentsResponse
     , listEnvironmentsResponse
@@ -89,6 +95,13 @@
     , softwareConfigEnvVariables
     , scevAddtional
 
+    -- * ImageVersion
+    , ImageVersion
+    , imageVersion
+    , ivImageVersionId
+    , ivSupportedPythonVersions
+    , ivIsDefault
+
     -- * Environment
     , Environment
     , environment
@@ -166,4 +179,4 @@
 
 -- | View and manage your data across Google Cloud Platform services
 cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]
-cloudPlatformScope = Proxy;
+cloudPlatformScope = Proxy
diff --git a/gen/Network/Google/Composer/Types/Product.hs b/gen/Network/Google/Composer/Types/Product.hs
--- a/gen/Network/Google/Composer/Types/Product.hs
+++ b/gen/Network/Google/Composer/Types/Product.hs
@@ -57,12 +57,15 @@
 -- security\/privacy reasons.
 --
 -- /See:/ 'status' smart constructor.
-data Status = Status'
+data Status =
+  Status'
     { _sDetails :: !(Maybe [StatusDetailsItem])
     , _sCode    :: !(Maybe (Textual Int32))
     , _sMessage :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Status' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -74,13 +77,9 @@
 -- * 'sMessage'
 status
     :: Status
-status =
-    Status'
-    { _sDetails = Nothing
-    , _sCode = Nothing
-    , _sMessage = Nothing
-    }
+status = Status' {_sDetails = Nothing, _sCode = Nothing, _sMessage = Nothing}
 
+
 -- | A list of messages that carry the error details. There is a common set
 -- of message types for APIs to use.
 sDetails :: Lens' Status [StatusDetailsItem]
@@ -123,10 +122,13 @@
 -- long-running operation should document the metadata type, if any.
 --
 -- /See:/ 'operationSchema' smart constructor.
-newtype OperationSchema = OperationSchema'
+newtype OperationSchema =
+  OperationSchema'
     { _osAddtional :: HashMap Text JSONValue
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'OperationSchema' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,10 +138,9 @@
     :: HashMap Text JSONValue -- ^ 'osAddtional'
     -> OperationSchema
 operationSchema pOsAddtional_ =
-    OperationSchema'
-    { _osAddtional = _Coerce # pOsAddtional_
-    }
+  OperationSchema' {_osAddtional = _Coerce # pOsAddtional_}
 
+
 -- | Properties of the object. Contains field \'type with type URL.
 osAddtional :: Lens' OperationSchema (HashMap Text JSONValue)
 osAddtional
@@ -154,14 +155,71 @@
 instance ToJSON OperationSchema where
         toJSON = toJSON . _osAddtional
 
+-- | The ImageVersions in a project and location.
+--
+-- /See:/ 'listImageVersionsResponse' smart constructor.
+data ListImageVersionsResponse =
+  ListImageVersionsResponse'
+    { _livrNextPageToken :: !(Maybe Text)
+    , _livrImageVersions :: !(Maybe [ImageVersion])
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListImageVersionsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'livrNextPageToken'
+--
+-- * 'livrImageVersions'
+listImageVersionsResponse
+    :: ListImageVersionsResponse
+listImageVersionsResponse =
+  ListImageVersionsResponse'
+    {_livrNextPageToken = Nothing, _livrImageVersions = Nothing}
+
+
+-- | The page token used to query for the next page if one exists.
+livrNextPageToken :: Lens' ListImageVersionsResponse (Maybe Text)
+livrNextPageToken
+  = lens _livrNextPageToken
+      (\ s a -> s{_livrNextPageToken = a})
+
+-- | The list of supported ImageVersions in a location.
+livrImageVersions :: Lens' ListImageVersionsResponse [ImageVersion]
+livrImageVersions
+  = lens _livrImageVersions
+      (\ s a -> s{_livrImageVersions = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListImageVersionsResponse where
+        parseJSON
+          = withObject "ListImageVersionsResponse"
+              (\ o ->
+                 ListImageVersionsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "imageVersions" .!= mempty))
+
+instance ToJSON ListImageVersionsResponse where
+        toJSON ListImageVersionsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _livrNextPageToken,
+                  ("imageVersions" .=) <$> _livrImageVersions])
+
 -- | The environments in a project and location.
 --
 -- /See:/ 'listEnvironmentsResponse' smart constructor.
-data ListEnvironmentsResponse = ListEnvironmentsResponse'
+data ListEnvironmentsResponse =
+  ListEnvironmentsResponse'
     { _lerNextPageToken :: !(Maybe Text)
     , _lerEnvironments  :: !(Maybe [Environment])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListEnvironmentsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -172,11 +230,10 @@
 listEnvironmentsResponse
     :: ListEnvironmentsResponse
 listEnvironmentsResponse =
-    ListEnvironmentsResponse'
-    { _lerNextPageToken = Nothing
-    , _lerEnvironments = Nothing
-    }
+  ListEnvironmentsResponse'
+    {_lerNextPageToken = Nothing, _lerEnvironments = Nothing}
 
+
 -- | The page token used to query for the next page if one exists.
 lerNextPageToken :: Lens' ListEnvironmentsResponse (Maybe Text)
 lerNextPageToken
@@ -209,15 +266,18 @@
 -- | Configuration information for an environment.
 --
 -- /See:/ 'environmentConfig' smart constructor.
-data EnvironmentConfig = EnvironmentConfig'
+data EnvironmentConfig =
+  EnvironmentConfig'
     { _ecNodeConfig     :: !(Maybe NodeConfig)
     , _ecNodeCount      :: !(Maybe (Textual Int32))
     , _ecSoftwareConfig :: !(Maybe SoftwareConfig)
     , _ecDagGcsPrefix   :: !(Maybe Text)
     , _ecGkeCluster     :: !(Maybe Text)
     , _ecAirflowURI     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'EnvironmentConfig' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -236,7 +296,7 @@
 environmentConfig
     :: EnvironmentConfig
 environmentConfig =
-    EnvironmentConfig'
+  EnvironmentConfig'
     { _ecNodeConfig = Nothing
     , _ecNodeCount = Nothing
     , _ecSoftwareConfig = Nothing
@@ -245,6 +305,7 @@
     , _ecAirflowURI = Nothing
     }
 
+
 -- | The configuration used for the Kubernetes Engine cluster.
 ecNodeConfig :: Lens' EnvironmentConfig (Maybe NodeConfig)
 ecNodeConfig
@@ -310,11 +371,14 @@
 -- | The response message for Operations.ListOperations.
 --
 -- /See:/ 'listOperationsResponse' smart constructor.
-data ListOperationsResponse = ListOperationsResponse'
+data ListOperationsResponse =
+  ListOperationsResponse'
     { _lorNextPageToken :: !(Maybe Text)
     , _lorOperations    :: !(Maybe [Operation])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListOperationsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -325,11 +389,10 @@
 listOperationsResponse
     :: ListOperationsResponse
 listOperationsResponse =
-    ListOperationsResponse'
-    { _lorNextPageToken = Nothing
-    , _lorOperations = Nothing
-    }
+  ListOperationsResponse'
+    {_lorNextPageToken = Nothing, _lorOperations = Nothing}
 
+
 -- | The standard List next-page token.
 lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)
 lorNextPageToken
@@ -363,7 +426,8 @@
 -- the Apache Airflow software.
 --
 -- /See:/ 'nodeConfig' smart constructor.
-data NodeConfig = NodeConfig'
+data NodeConfig =
+  NodeConfig'
     { _ncDiskSizeGb     :: !(Maybe (Textual Int32))
     , _ncLocation       :: !(Maybe Text)
     , _ncNetwork        :: !(Maybe Text)
@@ -372,8 +436,10 @@
     , _ncSubnetwork     :: !(Maybe Text)
     , _ncMachineType    :: !(Maybe Text)
     , _ncTags           :: !(Maybe [Text])
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'NodeConfig' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -396,7 +462,7 @@
 nodeConfig
     :: NodeConfig
 nodeConfig =
-    NodeConfig'
+  NodeConfig'
     { _ncDiskSizeGb = Nothing
     , _ncLocation = Nothing
     , _ncNetwork = Nothing
@@ -407,6 +473,7 @@
     , _ncTags = Nothing
     }
 
+
 -- | Optional. The disk size in GB used for node VMs. Minimum size is 20GB.
 -- If unspecified, defaults to 100GB. Cannot be updated.
 ncDiskSizeGb :: Lens' NodeConfig (Maybe Int32)
@@ -535,14 +602,17 @@
 -- a network API call.
 --
 -- /See:/ 'operation' smart constructor.
-data Operation = Operation'
+data Operation =
+  Operation'
     { _oDone     :: !(Maybe Bool)
     , _oError    :: !(Maybe Status)
     , _oResponse :: !(Maybe OperationResponse)
     , _oName     :: !(Maybe Text)
     , _oMetadata :: !(Maybe OperationSchema)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Operation' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -559,7 +629,7 @@
 operation
     :: Operation
 operation =
-    Operation'
+  Operation'
     { _oDone = Nothing
     , _oError = Nothing
     , _oResponse = Nothing
@@ -567,6 +637,7 @@
     , _oMetadata = Nothing
     }
 
+
 -- | If the value is \`false\`, it means the operation is still in progress.
 -- If \`true\`, the operation is completed, and either \`error\` or
 -- \`response\` is available.
@@ -630,15 +701,17 @@
 --
 -- /See:/ 'empty' smart constructor.
 data Empty =
-    Empty'
-    deriving (Eq,Show,Data,Typeable,Generic)
+  Empty'
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Empty' with the minimum fields required to make a request.
 --
 empty
     :: Empty
 empty = Empty'
 
+
 instance FromJSON Empty where
         parseJSON = withObject "Empty" (\ o -> pure Empty')
 
@@ -657,10 +730,13 @@
 -- \`SQL_PASSWORD\` * \`SQL_PROJECT\` * \`SQL_REGION\` * \`SQL_USER\`
 --
 -- /See:/ 'softwareConfigEnvVariables' smart constructor.
-newtype SoftwareConfigEnvVariables = SoftwareConfigEnvVariables'
+newtype SoftwareConfigEnvVariables =
+  SoftwareConfigEnvVariables'
     { _scevAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SoftwareConfigEnvVariables' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -670,10 +746,9 @@
     :: HashMap Text Text -- ^ 'scevAddtional'
     -> SoftwareConfigEnvVariables
 softwareConfigEnvVariables pScevAddtional_ =
-    SoftwareConfigEnvVariables'
-    { _scevAddtional = _Coerce # pScevAddtional_
-    }
+  SoftwareConfigEnvVariables' {_scevAddtional = _Coerce # pScevAddtional_}
 
+
 scevAddtional :: Lens' SoftwareConfigEnvVariables (HashMap Text Text)
 scevAddtional
   = lens _scevAddtional
@@ -689,10 +764,81 @@
 instance ToJSON SoftwareConfigEnvVariables where
         toJSON = toJSON . _scevAddtional
 
+-- | ImageVersion information
+--
+-- /See:/ 'imageVersion' smart constructor.
+data ImageVersion =
+  ImageVersion'
+    { _ivImageVersionId          :: !(Maybe Text)
+    , _ivSupportedPythonVersions :: !(Maybe [Text])
+    , _ivIsDefault               :: !(Maybe Bool)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ImageVersion' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ivImageVersionId'
+--
+-- * 'ivSupportedPythonVersions'
+--
+-- * 'ivIsDefault'
+imageVersion
+    :: ImageVersion
+imageVersion =
+  ImageVersion'
+    { _ivImageVersionId = Nothing
+    , _ivSupportedPythonVersions = Nothing
+    , _ivIsDefault = Nothing
+    }
+
+
+-- | The string identifier of the ImageVersion, in the form:
+-- \"composer-x.y.z-airflow-a.b(.c)\"
+ivImageVersionId :: Lens' ImageVersion (Maybe Text)
+ivImageVersionId
+  = lens _ivImageVersionId
+      (\ s a -> s{_ivImageVersionId = a})
+
+-- | supported python versions
+ivSupportedPythonVersions :: Lens' ImageVersion [Text]
+ivSupportedPythonVersions
+  = lens _ivSupportedPythonVersions
+      (\ s a -> s{_ivSupportedPythonVersions = a})
+      . _Default
+      . _Coerce
+
+-- | Whether this is the default ImageVersion used by Composer during
+-- environment creation if no input ImageVersion is specified.
+ivIsDefault :: Lens' ImageVersion (Maybe Bool)
+ivIsDefault
+  = lens _ivIsDefault (\ s a -> s{_ivIsDefault = a})
+
+instance FromJSON ImageVersion where
+        parseJSON
+          = withObject "ImageVersion"
+              (\ o ->
+                 ImageVersion' <$>
+                   (o .:? "imageVersionId") <*>
+                     (o .:? "supportedPythonVersions" .!= mempty)
+                     <*> (o .:? "isDefault"))
+
+instance ToJSON ImageVersion where
+        toJSON ImageVersion'{..}
+          = object
+              (catMaybes
+                 [("imageVersionId" .=) <$> _ivImageVersionId,
+                  ("supportedPythonVersions" .=) <$>
+                    _ivSupportedPythonVersions,
+                  ("isDefault" .=) <$> _ivIsDefault])
+
 -- | An environment for running orchestration tasks.
 --
 -- /See:/ 'environment' smart constructor.
-data Environment = Environment'
+data Environment =
+  Environment'
     { _eState      :: !(Maybe EnvironmentState)
     , _eConfig     :: !(Maybe EnvironmentConfig)
     , _eUuid       :: !(Maybe Text)
@@ -700,8 +846,10 @@
     , _eName       :: !(Maybe Text)
     , _eLabels     :: !(Maybe EnvironmentLabels)
     , _eCreateTime :: !(Maybe DateTime')
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Environment' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -722,7 +870,7 @@
 environment
     :: Environment
 environment =
-    Environment'
+  Environment'
     { _eState = Nothing
     , _eConfig = Nothing
     , _eUuid = Nothing
@@ -732,6 +880,7 @@
     , _eCreateTime = Nothing
     }
 
+
 -- | The current state of the environment.
 eState :: Lens' Environment (Maybe EnvironmentState)
 eState = lens _eState (\ s a -> s{_eState = a})
@@ -809,10 +958,13 @@
 -- and cannot be overridden.
 --
 -- /See:/ 'softwareConfigAirflowConfigOverrides' smart constructor.
-newtype SoftwareConfigAirflowConfigOverrides = SoftwareConfigAirflowConfigOverrides'
+newtype SoftwareConfigAirflowConfigOverrides =
+  SoftwareConfigAirflowConfigOverrides'
     { _scacoAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SoftwareConfigAirflowConfigOverrides' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -822,10 +974,10 @@
     :: HashMap Text Text -- ^ 'scacoAddtional'
     -> SoftwareConfigAirflowConfigOverrides
 softwareConfigAirflowConfigOverrides pScacoAddtional_ =
-    SoftwareConfigAirflowConfigOverrides'
-    { _scacoAddtional = _Coerce # pScacoAddtional_
-    }
+  SoftwareConfigAirflowConfigOverrides'
+    {_scacoAddtional = _Coerce # pScacoAddtional_}
 
+
 scacoAddtional :: Lens' SoftwareConfigAirflowConfigOverrides (HashMap Text Text)
 scacoAddtional
   = lens _scacoAddtional
@@ -833,7 +985,8 @@
       . _Coerce
 
 instance FromJSON
-         SoftwareConfigAirflowConfigOverrides where
+           SoftwareConfigAirflowConfigOverrides
+         where
         parseJSON
           = withObject "SoftwareConfigAirflowConfigOverrides"
               (\ o ->
@@ -846,10 +999,13 @@
 
 --
 -- /See:/ 'statusDetailsItem' smart constructor.
-newtype StatusDetailsItem = StatusDetailsItem'
+newtype StatusDetailsItem =
+  StatusDetailsItem'
     { _sdiAddtional :: HashMap Text JSONValue
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -859,10 +1015,9 @@
     :: HashMap Text JSONValue -- ^ 'sdiAddtional'
     -> StatusDetailsItem
 statusDetailsItem pSdiAddtional_ =
-    StatusDetailsItem'
-    { _sdiAddtional = _Coerce # pSdiAddtional_
-    }
+  StatusDetailsItem' {_sdiAddtional = _Coerce # pSdiAddtional_}
 
+
 -- | Properties of the object. Contains field \'type with type URL.
 sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)
 sdiAddtional
@@ -885,10 +1040,13 @@
 -- empty string as the value.
 --
 -- /See:/ 'softwareConfigPypiPackages' smart constructor.
-newtype SoftwareConfigPypiPackages = SoftwareConfigPypiPackages'
+newtype SoftwareConfigPypiPackages =
+  SoftwareConfigPypiPackages'
     { _scppAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SoftwareConfigPypiPackages' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -898,10 +1056,9 @@
     :: HashMap Text Text -- ^ 'scppAddtional'
     -> SoftwareConfigPypiPackages
 softwareConfigPypiPackages pScppAddtional_ =
-    SoftwareConfigPypiPackages'
-    { _scppAddtional = _Coerce # pScppAddtional_
-    }
+  SoftwareConfigPypiPackages' {_scppAddtional = _Coerce # pScppAddtional_}
 
+
 scppAddtional :: Lens' SoftwareConfigPypiPackages (HashMap Text Text)
 scppAddtional
   = lens _scppAddtional
@@ -921,14 +1078,17 @@
 -- environment.
 --
 -- /See:/ 'softwareConfig' smart constructor.
-data SoftwareConfig = SoftwareConfig'
+data SoftwareConfig =
+  SoftwareConfig'
     { _scImageVersion           :: !(Maybe Text)
     , _scPythonVersion          :: !(Maybe Text)
     , _scPypiPackages           :: !(Maybe SoftwareConfigPypiPackages)
     , _scAirflowConfigOverrides :: !(Maybe SoftwareConfigAirflowConfigOverrides)
     , _scEnvVariables           :: !(Maybe SoftwareConfigEnvVariables)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SoftwareConfig' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -945,7 +1105,7 @@
 softwareConfig
     :: SoftwareConfig
 softwareConfig =
-    SoftwareConfig'
+  SoftwareConfig'
     { _scImageVersion = Nothing
     , _scPythonVersion = Nothing
     , _scPypiPackages = Nothing
@@ -953,15 +1113,24 @@
     , _scEnvVariables = Nothing
     }
 
--- | Output only. The version of the software running in the environment.
--- This encapsulates both the version of Cloud Composer functionality and
--- the version of Apache Airflow. It must match the regular expression
--- \`composer-[0-9]+\\.[0-9]+(\\.[0-9]+)?-airflow-[0-9]+\\.[0-9]+(\\.[0-9]+.*)?\`.
--- The Cloud Composer portion of the version is a [semantic
--- version](https:\/\/semver.org). The portion of the image version
--- following _airflow-_ is an official Apache Airflow repository [release
+
+-- | The version of the software running in the environment. This
+-- encapsulates both the version of Cloud Composer functionality and the
+-- version of Apache Airflow. It must match the regular expression
+-- \`composer-([0-9]+\\.[0-9]+\\.[0-9]+|latest)-airflow-[0-9]+\\.[0-9]+(\\.[0-9]+.*)?\`.
+-- When used as input, the server also checks if the provided version is
+-- supported and denies the request for an unsupported version. The Cloud
+-- Composer portion of the version is a [semantic
+-- version](https:\/\/semver.org) or \`latest\`. When the patch version is
+-- omitted, the current Cloud Composer patch version is selected. When
+-- \`latest\` is provided instead of an explicit version number, the server
+-- replaces \`latest\` with the current Cloud Composer version and stores
+-- that version number in the same field. The portion of the image version
+-- that follows /airflow-/ is an official Apache Airflow repository
+-- [release
 -- name](https:\/\/github.com\/apache\/incubator-airflow\/releases). See
--- also [Release Notes](\/composer\/docs\/release-notes).
+-- also [Version
+-- List](\/composer\/docs\/concepts\/versioning\/composer-versions).
 scImageVersion :: Lens' SoftwareConfig (Maybe Text)
 scImageVersion
   = lens _scImageVersion
@@ -1048,10 +1217,13 @@
 -- constrained to be \<= 128 bytes in size.
 --
 -- /See:/ 'environmentLabels' smart constructor.
-newtype EnvironmentLabels = EnvironmentLabels'
+newtype EnvironmentLabels =
+  EnvironmentLabels'
     { _elAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'EnvironmentLabels' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1061,10 +1233,9 @@
     :: HashMap Text Text -- ^ 'elAddtional'
     -> EnvironmentLabels
 environmentLabels pElAddtional_ =
-    EnvironmentLabels'
-    { _elAddtional = _Coerce # pElAddtional_
-    }
+  EnvironmentLabels' {_elAddtional = _Coerce # pElAddtional_}
 
+
 elAddtional :: Lens' EnvironmentLabels (HashMap Text Text)
 elAddtional
   = lens _elAddtional (\ s a -> s{_elAddtional = a}) .
@@ -1081,15 +1252,18 @@
 -- | Metadata describing an operation.
 --
 -- /See:/ 'operationMetadata' smart constructor.
-data OperationMetadata = OperationMetadata'
+data OperationMetadata =
+  OperationMetadata'
     { _omState         :: !(Maybe OperationMetadataState)
     , _omResourceUuid  :: !(Maybe Text)
     , _omResource      :: !(Maybe Text)
     , _omEndTime       :: !(Maybe DateTime')
     , _omOperationType :: !(Maybe OperationMetadataOperationType)
     , _omCreateTime    :: !(Maybe DateTime')
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'OperationMetadata' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1108,7 +1282,7 @@
 operationMetadata
     :: OperationMetadata
 operationMetadata =
-    OperationMetadata'
+  OperationMetadata'
     { _omState = Nothing
     , _omResourceUuid = Nothing
     , _omResource = Nothing
@@ -1117,6 +1291,7 @@
     , _omCreateTime = Nothing
     }
 
+
 -- | Output only. The current operation state.
 omState :: Lens' OperationMetadata (Maybe OperationMetadataState)
 omState = lens _omState (\ s a -> s{_omState = a})
@@ -1184,10 +1359,13 @@
 -- \`TakeSnapshotResponse\`.
 --
 -- /See:/ 'operationResponse' smart constructor.
-newtype OperationResponse = OperationResponse'
+newtype OperationResponse =
+  OperationResponse'
     { _orAddtional :: HashMap Text JSONValue
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'OperationResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1197,9 +1375,8 @@
     :: HashMap Text JSONValue -- ^ 'orAddtional'
     -> OperationResponse
 operationResponse pOrAddtional_ =
-    OperationResponse'
-    { _orAddtional = _Coerce # pOrAddtional_
-    }
+  OperationResponse' {_orAddtional = _Coerce # pOrAddtional_}
+
 
 -- | Properties of the object. Contains field \'type with type URL.
 orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Create.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Create.hs
--- a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Create.hs
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Create.hs
@@ -62,7 +62,8 @@
 -- | Create a new environment.
 --
 -- /See:/ 'projectsLocationsEnvironmentsCreate' smart constructor.
-data ProjectsLocationsEnvironmentsCreate = ProjectsLocationsEnvironmentsCreate'
+data ProjectsLocationsEnvironmentsCreate =
+  ProjectsLocationsEnvironmentsCreate'
     { _plecParent         :: !Text
     , _plecXgafv          :: !(Maybe Xgafv)
     , _plecUploadProtocol :: !(Maybe Text)
@@ -70,8 +71,10 @@
     , _plecUploadType     :: !(Maybe Text)
     , _plecPayload        :: !Environment
     , _plecCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProjectsLocationsEnvironmentsCreate' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -94,7 +97,7 @@
     -> Environment -- ^ 'plecPayload'
     -> ProjectsLocationsEnvironmentsCreate
 projectsLocationsEnvironmentsCreate pPlecParent_ pPlecPayload_ =
-    ProjectsLocationsEnvironmentsCreate'
+  ProjectsLocationsEnvironmentsCreate'
     { _plecParent = pPlecParent_
     , _plecXgafv = Nothing
     , _plecUploadProtocol = Nothing
@@ -104,6 +107,7 @@
     , _plecCallback = Nothing
     }
 
+
 -- | The parent must be of the form
 -- \"projects\/{projectId}\/locations\/{locationId}\".
 plecParent :: Lens' ProjectsLocationsEnvironmentsCreate Text
@@ -144,7 +148,8 @@
   = lens _plecCallback (\ s a -> s{_plecCallback = a})
 
 instance GoogleRequest
-         ProjectsLocationsEnvironmentsCreate where
+           ProjectsLocationsEnvironmentsCreate
+         where
         type Rs ProjectsLocationsEnvironmentsCreate =
              Operation
         type Scopes ProjectsLocationsEnvironmentsCreate =
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Delete.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Delete.hs
--- a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Delete.hs
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Delete.hs
@@ -59,15 +59,18 @@
 -- | Delete an environment.
 --
 -- /See:/ 'projectsLocationsEnvironmentsDelete' smart constructor.
-data ProjectsLocationsEnvironmentsDelete = ProjectsLocationsEnvironmentsDelete'
+data ProjectsLocationsEnvironmentsDelete =
+  ProjectsLocationsEnvironmentsDelete'
     { _pledXgafv          :: !(Maybe Xgafv)
     , _pledUploadProtocol :: !(Maybe Text)
     , _pledAccessToken    :: !(Maybe Text)
     , _pledUploadType     :: !(Maybe Text)
     , _pledName           :: !Text
     , _pledCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProjectsLocationsEnvironmentsDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,7 +90,7 @@
     :: Text -- ^ 'pledName'
     -> ProjectsLocationsEnvironmentsDelete
 projectsLocationsEnvironmentsDelete pPledName_ =
-    ProjectsLocationsEnvironmentsDelete'
+  ProjectsLocationsEnvironmentsDelete'
     { _pledXgafv = Nothing
     , _pledUploadProtocol = Nothing
     , _pledAccessToken = Nothing
@@ -96,6 +99,7 @@
     , _pledCallback = Nothing
     }
 
+
 -- | V1 error format.
 pledXgafv :: Lens' ProjectsLocationsEnvironmentsDelete (Maybe Xgafv)
 pledXgafv
@@ -130,7 +134,8 @@
   = lens _pledCallback (\ s a -> s{_pledCallback = a})
 
 instance GoogleRequest
-         ProjectsLocationsEnvironmentsDelete where
+           ProjectsLocationsEnvironmentsDelete
+         where
         type Rs ProjectsLocationsEnvironmentsDelete =
              Operation
         type Scopes ProjectsLocationsEnvironmentsDelete =
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Get.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Get.hs
--- a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Get.hs
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Get.hs
@@ -59,15 +59,18 @@
 -- | Get an existing environment.
 --
 -- /See:/ 'projectsLocationsEnvironmentsGet' smart constructor.
-data ProjectsLocationsEnvironmentsGet = ProjectsLocationsEnvironmentsGet'
+data ProjectsLocationsEnvironmentsGet =
+  ProjectsLocationsEnvironmentsGet'
     { _plegXgafv          :: !(Maybe Xgafv)
     , _plegUploadProtocol :: !(Maybe Text)
     , _plegAccessToken    :: !(Maybe Text)
     , _plegUploadType     :: !(Maybe Text)
     , _plegName           :: !Text
     , _plegCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProjectsLocationsEnvironmentsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,7 +90,7 @@
     :: Text -- ^ 'plegName'
     -> ProjectsLocationsEnvironmentsGet
 projectsLocationsEnvironmentsGet pPlegName_ =
-    ProjectsLocationsEnvironmentsGet'
+  ProjectsLocationsEnvironmentsGet'
     { _plegXgafv = Nothing
     , _plegUploadProtocol = Nothing
     , _plegAccessToken = Nothing
@@ -96,6 +99,7 @@
     , _plegCallback = Nothing
     }
 
+
 -- | V1 error format.
 plegXgafv :: Lens' ProjectsLocationsEnvironmentsGet (Maybe Xgafv)
 plegXgafv
@@ -130,7 +134,8 @@
   = lens _plegCallback (\ s a -> s{_plegCallback = a})
 
 instance GoogleRequest
-         ProjectsLocationsEnvironmentsGet where
+           ProjectsLocationsEnvironmentsGet
+         where
         type Rs ProjectsLocationsEnvironmentsGet =
              Environment
         type Scopes ProjectsLocationsEnvironmentsGet =
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/List.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/List.hs
--- a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/List.hs
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/List.hs
@@ -65,7 +65,8 @@
 -- | List environments.
 --
 -- /See:/ 'projectsLocationsEnvironmentsList' smart constructor.
-data ProjectsLocationsEnvironmentsList = ProjectsLocationsEnvironmentsList'
+data ProjectsLocationsEnvironmentsList =
+  ProjectsLocationsEnvironmentsList'
     { _plelParent         :: !Text
     , _plelXgafv          :: !(Maybe Xgafv)
     , _plelUploadProtocol :: !(Maybe Text)
@@ -74,8 +75,10 @@
     , _plelPageToken      :: !(Maybe Text)
     , _plelPageSize       :: !(Maybe (Textual Int32))
     , _plelCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProjectsLocationsEnvironmentsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -99,7 +102,7 @@
     :: Text -- ^ 'plelParent'
     -> ProjectsLocationsEnvironmentsList
 projectsLocationsEnvironmentsList pPlelParent_ =
-    ProjectsLocationsEnvironmentsList'
+  ProjectsLocationsEnvironmentsList'
     { _plelParent = pPlelParent_
     , _plelXgafv = Nothing
     , _plelUploadProtocol = Nothing
@@ -110,6 +113,7 @@
     , _plelCallback = Nothing
     }
 
+
 -- | List environments in the given project and location, in the form:
 -- \"projects\/{projectId}\/locations\/{locationId}\"
 plelParent :: Lens' ProjectsLocationsEnvironmentsList Text
@@ -157,7 +161,8 @@
   = lens _plelCallback (\ s a -> s{_plelCallback = a})
 
 instance GoogleRequest
-         ProjectsLocationsEnvironmentsList where
+           ProjectsLocationsEnvironmentsList
+         where
         type Rs ProjectsLocationsEnvironmentsList =
              ListEnvironmentsResponse
         type Scopes ProjectsLocationsEnvironmentsList =
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Patch.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Patch.hs
--- a/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Patch.hs
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/Environments/Patch.hs
@@ -64,7 +64,8 @@
 -- | Update an environment.
 --
 -- /See:/ 'projectsLocationsEnvironmentsPatch' smart constructor.
-data ProjectsLocationsEnvironmentsPatch = ProjectsLocationsEnvironmentsPatch'
+data ProjectsLocationsEnvironmentsPatch =
+  ProjectsLocationsEnvironmentsPatch'
     { _plepXgafv          :: !(Maybe Xgafv)
     , _plepUploadProtocol :: !(Maybe Text)
     , _plepUpdateMask     :: !(Maybe GFieldMask)
@@ -73,8 +74,10 @@
     , _plepPayload        :: !Environment
     , _plepName           :: !Text
     , _plepCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProjectsLocationsEnvironmentsPatch' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -99,7 +102,7 @@
     -> Text -- ^ 'plepName'
     -> ProjectsLocationsEnvironmentsPatch
 projectsLocationsEnvironmentsPatch pPlepPayload_ pPlepName_ =
-    ProjectsLocationsEnvironmentsPatch'
+  ProjectsLocationsEnvironmentsPatch'
     { _plepXgafv = Nothing
     , _plepUploadProtocol = Nothing
     , _plepUpdateMask = Nothing
@@ -110,6 +113,7 @@
     , _plepCallback = Nothing
     }
 
+
 -- | V1 error format.
 plepXgafv :: Lens' ProjectsLocationsEnvironmentsPatch (Maybe Xgafv)
 plepXgafv
@@ -152,17 +156,89 @@
 -- be the following: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{
 -- \"botocore\":\"==1.7.14\" } } } } **Note:** Only the following fields
 -- can be updated:
--- >   ----------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--- >   __Mask__                                                    __Purpose__
--- >   config.softwareConfig.pypiPackages                          Replace all custom custom PyPI packages. If a replacement package map is not included in \`environment\`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package.
--- >   config.softwareConfig.pypiPackages.packagename              Update the custom PyPI package packagename, preserving other packages. To delete the package, include it in \`updateMask\`, and omit the mapping for it in \`environment.config.softwareConfig.pypiPackages\`. It is an error to provide both a mask of this form and the \"config.softwareConfig.pypiPackages\" mask.
--- >   labels                                                      Replace all environment labels. If a replacement labels map is not included in \`environment\`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels.
--- >   labels.labelName                                            Set the label named labelName, while preserving other labels. To delete the label, include it in \`updateMask\` and omit its mapping in \`environment.labels\`. It is an error to provide both a mask of this form and the \"labels\" mask.
--- >   config.nodeCount                                            Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the \`config.nodeCount\` field.
--- >   config.softwareConfig.airflowConfigOverrides                Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in \`environment\`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides.
--- >   config.softwareConfig.airflowConfigOverrides.section-name   Override the Apache Airflow config property name in the section named section, preserving other properties. To delete the property override, include it in \`updateMask\` and omit its mapping in \`environment.config.softwareConfig.airflowConfigOverrides\`. It is an error to provide both a mask of this form and the \"config.softwareConfig.airflowConfigOverrides\" mask.
--- >   config.softwareConfig.envVariables                          Replace all environment variables. If a replacement environment variable map is not included in \`environment\`, all custom environment variables are cleared. It is an error to provide both this mask and a mask specifying one or more individual environment variables.
--- >   ----------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+-- > +-----------------------------------+-----------------------------------+
+-- > | __Mask__                          | __Purpose__                       |
+-- > +-----------------------------------+-----------------------------------+
+-- > | config.softwareConfig.pypiPackage | Replace all custom custom PyPI    |
+-- > | s                                 | packages. If a replacement        |
+-- > |                                   | package map is not included in    |
+-- > |                                   | \`environment\`, all custom PyPI  |
+-- > |                                   | packages are cleared. It is an    |
+-- > |                                   | error to provide both this mask   |
+-- > |                                   | and a mask specifying an          |
+-- > |                                   | individual package.               |
+-- > +-----------------------------------+-----------------------------------+
+-- > | config.softwareConfig.pypiPackage | Update the custom PyPI package    |
+-- > | s.packagename                     | packagename, preserving other     |
+-- > |                                   | packages. To delete the package,  |
+-- > |                                   | include it in \`updateMask\`, and |
+-- > |                                   | omit the mapping for it in        |
+-- > |                                   | \`environment.config.softwareConf |
+-- > |                                   | ig.pypiPackages\`.                |
+-- > |                                   | It is an error to provide both a  |
+-- > |                                   | mask of this form and the         |
+-- > |                                   | \"config.softwareConfig.pypiPacka |
+-- > |                                   | ges\"                             |
+-- > |                                   | mask.                             |
+-- > +-----------------------------------+-----------------------------------+
+-- > | labels                            | Replace all environment labels.   |
+-- > |                                   | If a replacement labels map is    |
+-- > |                                   | not included in \`environment\`,  |
+-- > |                                   | all labels are cleared. It is an  |
+-- > |                                   | error to provide both this mask   |
+-- > |                                   | and a mask specifying one or more |
+-- > |                                   | individual labels.                |
+-- > +-----------------------------------+-----------------------------------+
+-- > | labels.labelName                  | Set the label named labelName,    |
+-- > |                                   | while preserving other labels. To |
+-- > |                                   | delete the label, include it in   |
+-- > |                                   | \`updateMask\` and omit its       |
+-- > |                                   | mapping in                        |
+-- > |                                   | \`environment.labels\`. It is an  |
+-- > |                                   | error to provide both a mask of   |
+-- > |                                   | this form and the \"labels\"      |
+-- > |                                   | mask.                             |
+-- > +-----------------------------------+-----------------------------------+
+-- > | config.nodeCount                  | Horizontally scale the number of  |
+-- > |                                   | nodes in the environment. An      |
+-- > |                                   | integer greater than or equal to  |
+-- > |                                   | 3 must be provided in the         |
+-- > |                                   | \`config.nodeCount\` field.       |
+-- > +-----------------------------------+-----------------------------------+
+-- > | config.softwareConfig.airflowConf | Replace all Apache Airflow config |
+-- > | igOverrides                       | overrides. If a replacement       |
+-- > |                                   | config overrides map is not       |
+-- > |                                   | included in \`environment\`, all  |
+-- > |                                   | config overrides are cleared. It  |
+-- > |                                   | is an error to provide both this  |
+-- > |                                   | mask and a mask specifying one or |
+-- > |                                   | more individual config overrides. |
+-- > +-----------------------------------+-----------------------------------+
+-- > | config.softwareConfig.airflowConf | Override the Apache Airflow       |
+-- > | igOverrides.section-name          | config property name in the       |
+-- > |                                   | section named section, preserving |
+-- > |                                   | other properties. To delete the   |
+-- > |                                   | property override, include it in  |
+-- > |                                   | \`updateMask\` and omit its       |
+-- > |                                   | mapping in                        |
+-- > |                                   | \`environment.config.softwareConf |
+-- > |                                   | ig.airflowConfigOverrides\`.      |
+-- > |                                   | It is an error to provide both a  |
+-- > |                                   | mask of this form and the         |
+-- > |                                   | \"config.softwareConfig.airflowCo |
+-- > |                                   | nfigOverrides\"                   |
+-- > |                                   | mask.                             |
+-- > +-----------------------------------+-----------------------------------+
+-- > | config.softwareConfig.envVariable | Replace all environment           |
+-- > | s                                 | variables. If a replacement       |
+-- > |                                   | environment variable map is not   |
+-- > |                                   | included in \`environment\`, all  |
+-- > |                                   | custom environment variables are  |
+-- > |                                   | cleared. It is an error to        |
+-- > |                                   | provide both this mask and a mask |
+-- > |                                   | specifying one or more individual |
+-- > |                                   | environment variables.            |
+-- > +-----------------------------------+-----------------------------------+
 plepUpdateMask :: Lens' ProjectsLocationsEnvironmentsPatch (Maybe GFieldMask)
 plepUpdateMask
   = lens _plepUpdateMask
@@ -196,7 +272,8 @@
   = lens _plepCallback (\ s a -> s{_plepCallback = a})
 
 instance GoogleRequest
-         ProjectsLocationsEnvironmentsPatch where
+           ProjectsLocationsEnvironmentsPatch
+         where
         type Rs ProjectsLocationsEnvironmentsPatch =
              Operation
         type Scopes ProjectsLocationsEnvironmentsPatch =
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/ImageVersions/List.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/ImageVersions/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/ImageVersions/List.hs
@@ -0,0 +1,185 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.Composer.Projects.Locations.ImageVersions.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List ImageVersions for provided location.
+--
+-- /See:/ <https://cloud.google.com/composer/ Cloud Composer API Reference> for @composer.projects.locations.imageVersions.list@.
+module Network.Google.Resource.Composer.Projects.Locations.ImageVersions.List
+    (
+    -- * REST Resource
+      ProjectsLocationsImageVersionsListResource
+
+    -- * Creating a Request
+    , projectsLocationsImageVersionsList
+    , ProjectsLocationsImageVersionsList
+
+    -- * Request Lenses
+    , plivlParent
+    , plivlXgafv
+    , plivlUploadProtocol
+    , plivlAccessToken
+    , plivlUploadType
+    , plivlPageToken
+    , plivlPageSize
+    , plivlCallback
+    ) where
+
+import           Network.Google.Composer.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @composer.projects.locations.imageVersions.list@ method which the
+-- 'ProjectsLocationsImageVersionsList' request conforms to.
+type ProjectsLocationsImageVersionsListResource =
+     "v1" :>
+       Capture "parent" Text :>
+         "imageVersions" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "pageSize" (Textual Int32) :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Get '[JSON] ListImageVersionsResponse
+
+-- | List ImageVersions for provided location.
+--
+-- /See:/ 'projectsLocationsImageVersionsList' smart constructor.
+data ProjectsLocationsImageVersionsList =
+  ProjectsLocationsImageVersionsList'
+    { _plivlParent         :: !Text
+    , _plivlXgafv          :: !(Maybe Xgafv)
+    , _plivlUploadProtocol :: !(Maybe Text)
+    , _plivlAccessToken    :: !(Maybe Text)
+    , _plivlUploadType     :: !(Maybe Text)
+    , _plivlPageToken      :: !(Maybe Text)
+    , _plivlPageSize       :: !(Maybe (Textual Int32))
+    , _plivlCallback       :: !(Maybe Text)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ProjectsLocationsImageVersionsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plivlParent'
+--
+-- * 'plivlXgafv'
+--
+-- * 'plivlUploadProtocol'
+--
+-- * 'plivlAccessToken'
+--
+-- * 'plivlUploadType'
+--
+-- * 'plivlPageToken'
+--
+-- * 'plivlPageSize'
+--
+-- * 'plivlCallback'
+projectsLocationsImageVersionsList
+    :: Text -- ^ 'plivlParent'
+    -> ProjectsLocationsImageVersionsList
+projectsLocationsImageVersionsList pPlivlParent_ =
+  ProjectsLocationsImageVersionsList'
+    { _plivlParent = pPlivlParent_
+    , _plivlXgafv = Nothing
+    , _plivlUploadProtocol = Nothing
+    , _plivlAccessToken = Nothing
+    , _plivlUploadType = Nothing
+    , _plivlPageToken = Nothing
+    , _plivlPageSize = Nothing
+    , _plivlCallback = Nothing
+    }
+
+
+-- | List ImageVersions in the given project and location, in the form:
+-- \"projects\/{projectId}\/locations\/{locationId}\"
+plivlParent :: Lens' ProjectsLocationsImageVersionsList Text
+plivlParent
+  = lens _plivlParent (\ s a -> s{_plivlParent = a})
+
+-- | V1 error format.
+plivlXgafv :: Lens' ProjectsLocationsImageVersionsList (Maybe Xgafv)
+plivlXgafv
+  = lens _plivlXgafv (\ s a -> s{_plivlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plivlUploadProtocol :: Lens' ProjectsLocationsImageVersionsList (Maybe Text)
+plivlUploadProtocol
+  = lens _plivlUploadProtocol
+      (\ s a -> s{_plivlUploadProtocol = a})
+
+-- | OAuth access token.
+plivlAccessToken :: Lens' ProjectsLocationsImageVersionsList (Maybe Text)
+plivlAccessToken
+  = lens _plivlAccessToken
+      (\ s a -> s{_plivlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plivlUploadType :: Lens' ProjectsLocationsImageVersionsList (Maybe Text)
+plivlUploadType
+  = lens _plivlUploadType
+      (\ s a -> s{_plivlUploadType = a})
+
+-- | The next_page_token value returned from a previous List request, if any.
+plivlPageToken :: Lens' ProjectsLocationsImageVersionsList (Maybe Text)
+plivlPageToken
+  = lens _plivlPageToken
+      (\ s a -> s{_plivlPageToken = a})
+
+-- | The maximum number of image_versions to return.
+plivlPageSize :: Lens' ProjectsLocationsImageVersionsList (Maybe Int32)
+plivlPageSize
+  = lens _plivlPageSize
+      (\ s a -> s{_plivlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+plivlCallback :: Lens' ProjectsLocationsImageVersionsList (Maybe Text)
+plivlCallback
+  = lens _plivlCallback
+      (\ s a -> s{_plivlCallback = a})
+
+instance GoogleRequest
+           ProjectsLocationsImageVersionsList
+         where
+        type Rs ProjectsLocationsImageVersionsList =
+             ListImageVersionsResponse
+        type Scopes ProjectsLocationsImageVersionsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsImageVersionsList'{..}
+          = go _plivlParent _plivlXgafv _plivlUploadProtocol
+              _plivlAccessToken
+              _plivlUploadType
+              _plivlPageToken
+              _plivlPageSize
+              _plivlCallback
+              (Just AltJSON)
+              composerService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsImageVersionsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/Delete.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/Delete.hs
--- a/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/Delete.hs
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/Delete.hs
@@ -65,15 +65,18 @@
 -- \`google.rpc.Code.UNIMPLEMENTED\`.
 --
 -- /See:/ 'projectsLocationsOperationsDelete' smart constructor.
-data ProjectsLocationsOperationsDelete = ProjectsLocationsOperationsDelete'
+data ProjectsLocationsOperationsDelete =
+  ProjectsLocationsOperationsDelete'
     { _plodXgafv          :: !(Maybe Xgafv)
     , _plodUploadProtocol :: !(Maybe Text)
     , _plodAccessToken    :: !(Maybe Text)
     , _plodUploadType     :: !(Maybe Text)
     , _plodName           :: !Text
     , _plodCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProjectsLocationsOperationsDelete' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -93,7 +96,7 @@
     :: Text -- ^ 'plodName'
     -> ProjectsLocationsOperationsDelete
 projectsLocationsOperationsDelete pPlodName_ =
-    ProjectsLocationsOperationsDelete'
+  ProjectsLocationsOperationsDelete'
     { _plodXgafv = Nothing
     , _plodUploadProtocol = Nothing
     , _plodAccessToken = Nothing
@@ -102,6 +105,7 @@
     , _plodCallback = Nothing
     }
 
+
 -- | V1 error format.
 plodXgafv :: Lens' ProjectsLocationsOperationsDelete (Maybe Xgafv)
 plodXgafv
@@ -135,7 +139,8 @@
   = lens _plodCallback (\ s a -> s{_plodCallback = a})
 
 instance GoogleRequest
-         ProjectsLocationsOperationsDelete where
+           ProjectsLocationsOperationsDelete
+         where
         type Rs ProjectsLocationsOperationsDelete = Empty
         type Scopes ProjectsLocationsOperationsDelete =
              '["https://www.googleapis.com/auth/cloud-platform"]
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/Get.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/Get.hs
--- a/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/Get.hs
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/Get.hs
@@ -63,15 +63,18 @@
 -- API service.
 --
 -- /See:/ 'projectsLocationsOperationsGet' smart constructor.
-data ProjectsLocationsOperationsGet = ProjectsLocationsOperationsGet'
+data ProjectsLocationsOperationsGet =
+  ProjectsLocationsOperationsGet'
     { _plogXgafv          :: !(Maybe Xgafv)
     , _plogUploadProtocol :: !(Maybe Text)
     , _plogAccessToken    :: !(Maybe Text)
     , _plogUploadType     :: !(Maybe Text)
     , _plogName           :: !Text
     , _plogCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProjectsLocationsOperationsGet' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -91,7 +94,7 @@
     :: Text -- ^ 'plogName'
     -> ProjectsLocationsOperationsGet
 projectsLocationsOperationsGet pPlogName_ =
-    ProjectsLocationsOperationsGet'
+  ProjectsLocationsOperationsGet'
     { _plogXgafv = Nothing
     , _plogUploadProtocol = Nothing
     , _plogAccessToken = Nothing
@@ -99,6 +102,7 @@
     , _plogName = pPlogName_
     , _plogCallback = Nothing
     }
+
 
 -- | V1 error format.
 plogXgafv :: Lens' ProjectsLocationsOperationsGet (Maybe Xgafv)
diff --git a/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/List.hs b/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/List.hs
--- a/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/List.hs
+++ b/gen/Network/Google/Resource/Composer/Projects/Locations/Operations/List.hs
@@ -85,7 +85,8 @@
 -- id.
 --
 -- /See:/ 'projectsLocationsOperationsList' smart constructor.
-data ProjectsLocationsOperationsList = ProjectsLocationsOperationsList'
+data ProjectsLocationsOperationsList =
+  ProjectsLocationsOperationsList'
     { _plolXgafv          :: !(Maybe Xgafv)
     , _plolUploadProtocol :: !(Maybe Text)
     , _plolAccessToken    :: !(Maybe Text)
@@ -95,8 +96,10 @@
     , _plolPageToken      :: !(Maybe Text)
     , _plolPageSize       :: !(Maybe (Textual Int32))
     , _plolCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
+    }
+  deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ProjectsLocationsOperationsList' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -122,7 +125,7 @@
     :: Text -- ^ 'plolName'
     -> ProjectsLocationsOperationsList
 projectsLocationsOperationsList pPlolName_ =
-    ProjectsLocationsOperationsList'
+  ProjectsLocationsOperationsList'
     { _plolXgafv = Nothing
     , _plolUploadProtocol = Nothing
     , _plolAccessToken = Nothing
@@ -134,6 +137,7 @@
     , _plolCallback = Nothing
     }
 
+
 -- | V1 error format.
 plolXgafv :: Lens' ProjectsLocationsOperationsList (Maybe Xgafv)
 plolXgafv
@@ -184,7 +188,8 @@
   = lens _plolCallback (\ s a -> s{_plolCallback = a})
 
 instance GoogleRequest
-         ProjectsLocationsOperationsList where
+           ProjectsLocationsOperationsList
+         where
         type Rs ProjectsLocationsOperationsList =
              ListOperationsResponse
         type Scopes ProjectsLocationsOperationsList =
diff --git a/gogol-composer.cabal b/gogol-composer.cabal
--- a/gogol-composer.cabal
+++ b/gogol-composer.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-composer
-version:               0.4.0
+version:               0.5.0
 synopsis:              Google Cloud Composer SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -40,6 +40,7 @@
         , Network.Google.Resource.Composer.Projects.Locations.Environments.Get
         , Network.Google.Resource.Composer.Projects.Locations.Environments.List
         , Network.Google.Resource.Composer.Projects.Locations.Environments.Patch
+        , Network.Google.Resource.Composer.Projects.Locations.ImageVersions.List
         , Network.Google.Resource.Composer.Projects.Locations.Operations.Delete
         , Network.Google.Resource.Composer.Projects.Locations.Operations.Get
         , Network.Google.Resource.Composer.Projects.Locations.Operations.List
@@ -49,5 +50,5 @@
         , Network.Google.Composer.Types.Sum
 
     build-depends:
-          gogol-core == 0.4.0.*
+          gogol-core == 0.5.0.*
         , base       >= 4.7 && < 5
