diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.0.1`
+`0.1.0`
 
 
 ## Description
@@ -18,9 +18,9 @@
 
 ## Contribute
 
-For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).
 
-> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.
 
 
 ## Licence
diff --git a/gen/Network/Google/AppEngine.hs b/gen/Network/Google/AppEngine.hs
--- a/gen/Network/Google/AppEngine.hs
+++ b/gen/Network/Google/AppEngine.hs
@@ -7,21 +7,23 @@
 
 -- |
 -- Module      : Network.Google.AppEngine
--- Copyright   : (c) 2015 Brendan Hay
+-- 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)
 --
--- The Google App Engine Admin API enables developers to provision and
--- manage their App Engine applications.
+-- Provisions and manages App Engine applications.
 --
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference>
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference>
 module Network.Google.AppEngine
     (
     -- * Service Configuration
       appEngineService
 
+    -- * OAuth Scopes
+    , cloudPlatformScope
+
     -- * API Declaration
     , AppEngineAPI
 
@@ -30,38 +32,52 @@
     -- ** appengine.apps.get
     , module Network.Google.Resource.AppEngine.Apps.Get
 
-    -- ** appengine.apps.modules.delete
-    , module Network.Google.Resource.AppEngine.Apps.Modules.Delete
+    -- ** appengine.apps.operations.get
+    , module Network.Google.Resource.AppEngine.Apps.Operations.Get
 
-    -- ** appengine.apps.modules.get
-    , module Network.Google.Resource.AppEngine.Apps.Modules.Get
+    -- ** appengine.apps.operations.list
+    , module Network.Google.Resource.AppEngine.Apps.Operations.List
 
-    -- ** appengine.apps.modules.list
-    , module Network.Google.Resource.AppEngine.Apps.Modules.List
+    -- ** appengine.apps.services.delete
+    , module Network.Google.Resource.AppEngine.Apps.Services.Delete
 
-    -- ** appengine.apps.modules.patch
-    , module Network.Google.Resource.AppEngine.Apps.Modules.Patch
+    -- ** appengine.apps.services.get
+    , module Network.Google.Resource.AppEngine.Apps.Services.Get
 
-    -- ** appengine.apps.modules.versions.create
-    , module Network.Google.Resource.AppEngine.Apps.Modules.Versions.Create
+    -- ** appengine.apps.services.list
+    , module Network.Google.Resource.AppEngine.Apps.Services.List
 
-    -- ** appengine.apps.modules.versions.delete
-    , module Network.Google.Resource.AppEngine.Apps.Modules.Versions.Delete
+    -- ** appengine.apps.services.patch
+    , module Network.Google.Resource.AppEngine.Apps.Services.Patch
 
-    -- ** appengine.apps.modules.versions.get
-    , module Network.Google.Resource.AppEngine.Apps.Modules.Versions.Get
+    -- ** appengine.apps.services.versions.create
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Create
 
-    -- ** appengine.apps.modules.versions.list
-    , module Network.Google.Resource.AppEngine.Apps.Modules.Versions.List
+    -- ** appengine.apps.services.versions.delete
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Delete
 
-    -- ** appengine.apps.operations.get
-    , module Network.Google.Resource.AppEngine.Apps.Operations.Get
+    -- ** appengine.apps.services.versions.get
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Get
 
-    -- ** appengine.apps.operations.list
-    , module Network.Google.Resource.AppEngine.Apps.Operations.List
+    -- ** appengine.apps.services.versions.instances.list
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.List
 
+    -- ** appengine.apps.services.versions.list
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.List
+
+    -- ** appengine.apps.services.versions.patch
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Patch
+
     -- * Types
 
+    -- ** NetworkUtilization
+    , NetworkUtilization
+    , networkUtilization
+    , nuTargetReceivedBytesPerSec
+    , nuTargetSentPacketsPerSec
+    , nuTargetReceivedPacketsPerSec
+    , nuTargetSentBytesPerSec
+
     -- ** Status
     , Status
     , status
@@ -85,6 +101,12 @@
     , scriptHandler
     , shScriptPath
 
+    -- ** ListServicesResponse
+    , ListServicesResponse
+    , listServicesResponse
+    , lsrNextPageToken
+    , lsrServices
+
     -- ** URLMap
     , URLMap
     , urlMap
@@ -96,7 +118,6 @@
     , umAuthFailAction
     , umStaticFiles
     , umLogin
-    , umStaticDirectory
 
     -- ** Library
     , Library
@@ -104,6 +125,14 @@
     , lName
     , lVersion
 
+    -- ** DiskUtilization
+    , DiskUtilization
+    , diskUtilization
+    , duTargetWriteOpsPerSec
+    , duTargetReadOpsPerSec
+    , duTargetWriteBytesPerSec
+    , duTargetReadBytesPerSec
+
     -- ** ListOperationsResponse
     , ListOperationsResponse
     , listOperationsResponse
@@ -138,10 +167,14 @@
     -- ** Application
     , Application
     , application
+    , aDefaultHostname
+    , aDefaultCookieExpiration
     , aLocation
+    , aAuthDomain
     , aCodeBucket
     , aName
     , aDispatchRules
+    , aDefaultBucket
     , aId
 
     -- ** VersionBetaSettings
@@ -149,6 +182,13 @@
     , versionBetaSettings
     , vbsAddtional
 
+    -- ** Service
+    , Service
+    , service
+    , sSplit
+    , sName
+    , sId
+
     -- ** Operation
     , Operation
     , operation
@@ -162,14 +202,9 @@
     , URLDispatchRule
     , urlDispatchRule
     , udrPath
+    , udrService
     , udrDomain
-    , udrModule
 
-    -- ** StaticDirectoryHandlerHTTPHeaders
-    , StaticDirectoryHandlerHTTPHeaders
-    , staticDirectoryHandlerHTTPHeaders
-    , sdhhttphAddtional
-
     -- ** ListVersionsResponse
     , ListVersionsResponse
     , listVersionsResponse
@@ -186,21 +221,27 @@
     -- ** AutomaticScaling
     , AutomaticScaling
     , automaticScaling
+    , asNetworkUtilization
     , asMaxTotalInstances
     , asMinIdleInstances
+    , asDiskUtilization
     , asMinPendingLatency
     , asCPUUtilization
     , asMaxIdleInstances
     , asMinTotalInstances
     , asMaxConcurrentRequests
     , asCoolDownPeriod
+    , asRequestUtilization
     , asMaxPendingLatency
 
-    -- ** ListModulesResponse
-    , ListModulesResponse
-    , listModulesResponse
-    , lmrNextPageToken
-    , lmrModules
+    -- ** OperationMetadataV1Beta5
+    , OperationMetadataV1Beta5
+    , operationMetadataV1Beta5
+    , omvbInsertTime
+    , omvbUser
+    , omvbMethod
+    , omvbEndTime
+    , omvbTarget
 
     -- ** APIEndpointHandler
     , APIEndpointHandler
@@ -285,16 +326,10 @@
     , vId
     , vEnvVariables
     , vServingStatus
+    , vDiskUsageBytes
     , vLibraries
     , vDeployment
 
-    -- ** Module
-    , Module
-    , module'
-    , mSplit
-    , mName
-    , mId
-
     -- ** StaticFilesHandler
     , StaticFilesHandler
     , staticFilesHandler
@@ -323,6 +358,18 @@
     , omOperationType
     , omTarget
 
+    -- ** ListInstancesResponse
+    , ListInstancesResponse
+    , listInstancesResponse
+    , lirNextPageToken
+    , lirInstances
+
+    -- ** RequestUtilization
+    , RequestUtilization
+    , requestUtilization
+    , ruTargetConcurrentRequests
+    , ruTargetRequestCountPerSec
+
     -- ** SourceReference
     , SourceReference
     , sourceReference
@@ -339,37 +386,48 @@
     , containerInfo
     , ciImage
 
+    -- ** Instance
+    , Instance
+    , instance'
+    , iMemoryUsage
+    , iVMStatus
+    , iVMZoneName
+    , iVMId
+    , iAvailability
+    , iVMName
+    , iName
+    , iVMUnlocked
+    , iRequests
+    , iQps
+    , iId
+    , iErrors
+    , iAverageLatency
+    , iStartTimestamp
+    , iAppEngineRelease
+
     -- ** Deployment
     , Deployment
     , deployment
     , dContainer
     , dFiles
     , dSourceReferences
-
-    -- ** StaticDirectoryHandler
-    , StaticDirectoryHandler
-    , staticDirectoryHandler
-    , sdhHTTPHeaders
-    , sdhRequireMatchingFile
-    , sdhExpiration
-    , sdhMimeType
-    , sdhApplicationReadable
-    , sdhDirectory
     ) where
 
 import           Network.Google.AppEngine.Types
 import           Network.Google.Prelude
 import           Network.Google.Resource.AppEngine.Apps.Get
-import           Network.Google.Resource.AppEngine.Apps.Modules.Delete
-import           Network.Google.Resource.AppEngine.Apps.Modules.Get
-import           Network.Google.Resource.AppEngine.Apps.Modules.List
-import           Network.Google.Resource.AppEngine.Apps.Modules.Patch
-import           Network.Google.Resource.AppEngine.Apps.Modules.Versions.Create
-import           Network.Google.Resource.AppEngine.Apps.Modules.Versions.Delete
-import           Network.Google.Resource.AppEngine.Apps.Modules.Versions.Get
-import           Network.Google.Resource.AppEngine.Apps.Modules.Versions.List
 import           Network.Google.Resource.AppEngine.Apps.Operations.Get
 import           Network.Google.Resource.AppEngine.Apps.Operations.List
+import           Network.Google.Resource.AppEngine.Apps.Services.Delete
+import           Network.Google.Resource.AppEngine.Apps.Services.Get
+import           Network.Google.Resource.AppEngine.Apps.Services.List
+import           Network.Google.Resource.AppEngine.Apps.Services.Patch
+import           Network.Google.Resource.AppEngine.Apps.Services.Versions.Create
+import           Network.Google.Resource.AppEngine.Apps.Services.Versions.Delete
+import           Network.Google.Resource.AppEngine.Apps.Services.Versions.Get
+import           Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.List
+import           Network.Google.Resource.AppEngine.Apps.Services.Versions.List
+import           Network.Google.Resource.AppEngine.Apps.Services.Versions.Patch
 
 {- $resources
 TODO
@@ -377,14 +435,16 @@
 
 -- | Represents the entirety of the methods and resources available for the Google App Engine Admin API service.
 type AppEngineAPI =
-     AppsModulesVersionsListResource :<|>
-       AppsModulesVersionsGetResource
-       :<|> AppsModulesVersionsCreateResource
-       :<|> AppsModulesVersionsDeleteResource
-       :<|> AppsModulesListResource
-       :<|> AppsModulesPatchResource
-       :<|> AppsModulesGetResource
-       :<|> AppsModulesDeleteResource
-       :<|> AppsOperationsListResource
-       :<|> AppsOperationsGetResource
+     AppsOperationsListResource :<|>
+       AppsOperationsGetResource
+       :<|> AppsServicesVersionsInstancesListResource
+       :<|> AppsServicesVersionsListResource
+       :<|> AppsServicesVersionsPatchResource
+       :<|> AppsServicesVersionsGetResource
+       :<|> AppsServicesVersionsCreateResource
+       :<|> AppsServicesVersionsDeleteResource
+       :<|> AppsServicesListResource
+       :<|> AppsServicesPatchResource
+       :<|> AppsServicesGetResource
+       :<|> AppsServicesDeleteResource
        :<|> AppsGetResource
diff --git a/gen/Network/Google/AppEngine/Types.hs b/gen/Network/Google/AppEngine/Types.hs
--- a/gen/Network/Google/AppEngine/Types.hs
+++ b/gen/Network/Google/AppEngine/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DataKinds          #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE NoImplicitPrelude  #-}
@@ -7,7 +8,7 @@
 
 -- |
 -- Module      : Network.Google.AppEngine.Types
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,6 +22,14 @@
     -- * OAuth Scopes
     , cloudPlatformScope
 
+    -- * NetworkUtilization
+    , NetworkUtilization
+    , networkUtilization
+    , nuTargetReceivedBytesPerSec
+    , nuTargetSentPacketsPerSec
+    , nuTargetReceivedPacketsPerSec
+    , nuTargetSentBytesPerSec
+
     -- * Status
     , Status
     , status
@@ -44,6 +53,12 @@
     , scriptHandler
     , shScriptPath
 
+    -- * ListServicesResponse
+    , ListServicesResponse
+    , listServicesResponse
+    , lsrNextPageToken
+    , lsrServices
+
     -- * URLMap
     , URLMap
     , urlMap
@@ -55,7 +70,6 @@
     , umAuthFailAction
     , umStaticFiles
     , umLogin
-    , umStaticDirectory
 
     -- * Library
     , Library
@@ -63,6 +77,14 @@
     , lName
     , lVersion
 
+    -- * DiskUtilization
+    , DiskUtilization
+    , diskUtilization
+    , duTargetWriteOpsPerSec
+    , duTargetReadOpsPerSec
+    , duTargetWriteBytesPerSec
+    , duTargetReadBytesPerSec
+
     -- * ListOperationsResponse
     , ListOperationsResponse
     , listOperationsResponse
@@ -97,10 +119,14 @@
     -- * Application
     , Application
     , application
+    , aDefaultHostname
+    , aDefaultCookieExpiration
     , aLocation
+    , aAuthDomain
     , aCodeBucket
     , aName
     , aDispatchRules
+    , aDefaultBucket
     , aId
 
     -- * VersionBetaSettings
@@ -108,6 +134,13 @@
     , versionBetaSettings
     , vbsAddtional
 
+    -- * Service
+    , Service
+    , service
+    , sSplit
+    , sName
+    , sId
+
     -- * Operation
     , Operation
     , operation
@@ -121,14 +154,9 @@
     , URLDispatchRule
     , urlDispatchRule
     , udrPath
+    , udrService
     , udrDomain
-    , udrModule
 
-    -- * StaticDirectoryHandlerHTTPHeaders
-    , StaticDirectoryHandlerHTTPHeaders
-    , staticDirectoryHandlerHTTPHeaders
-    , sdhhttphAddtional
-
     -- * ListVersionsResponse
     , ListVersionsResponse
     , listVersionsResponse
@@ -145,21 +173,27 @@
     -- * AutomaticScaling
     , AutomaticScaling
     , automaticScaling
+    , asNetworkUtilization
     , asMaxTotalInstances
     , asMinIdleInstances
+    , asDiskUtilization
     , asMinPendingLatency
     , asCPUUtilization
     , asMaxIdleInstances
     , asMinTotalInstances
     , asMaxConcurrentRequests
     , asCoolDownPeriod
+    , asRequestUtilization
     , asMaxPendingLatency
 
-    -- * ListModulesResponse
-    , ListModulesResponse
-    , listModulesResponse
-    , lmrNextPageToken
-    , lmrModules
+    -- * OperationMetadataV1Beta5
+    , OperationMetadataV1Beta5
+    , operationMetadataV1Beta5
+    , omvbInsertTime
+    , omvbUser
+    , omvbMethod
+    , omvbEndTime
+    , omvbTarget
 
     -- * APIEndpointHandler
     , APIEndpointHandler
@@ -244,16 +278,10 @@
     , vId
     , vEnvVariables
     , vServingStatus
+    , vDiskUsageBytes
     , vLibraries
     , vDeployment
 
-    -- * Module
-    , Module
-    , module'
-    , mSplit
-    , mName
-    , mId
-
     -- * StaticFilesHandler
     , StaticFilesHandler
     , staticFilesHandler
@@ -282,6 +310,18 @@
     , omOperationType
     , omTarget
 
+    -- * ListInstancesResponse
+    , ListInstancesResponse
+    , listInstancesResponse
+    , lirNextPageToken
+    , lirInstances
+
+    -- * RequestUtilization
+    , RequestUtilization
+    , requestUtilization
+    , ruTargetConcurrentRequests
+    , ruTargetRequestCountPerSec
+
     -- * SourceReference
     , SourceReference
     , sourceReference
@@ -298,34 +338,43 @@
     , containerInfo
     , ciImage
 
+    -- * Instance
+    , Instance
+    , instance'
+    , iMemoryUsage
+    , iVMStatus
+    , iVMZoneName
+    , iVMId
+    , iAvailability
+    , iVMName
+    , iName
+    , iVMUnlocked
+    , iRequests
+    , iQps
+    , iId
+    , iErrors
+    , iAverageLatency
+    , iStartTimestamp
+    , iAppEngineRelease
+
     -- * Deployment
     , Deployment
     , deployment
     , dContainer
     , dFiles
     , dSourceReferences
-
-    -- * StaticDirectoryHandler
-    , StaticDirectoryHandler
-    , staticDirectoryHandler
-    , sdhHTTPHeaders
-    , sdhRequireMatchingFile
-    , sdhExpiration
-    , sdhMimeType
-    , sdhApplicationReadable
-    , sdhDirectory
     ) where
 
 import           Network.Google.AppEngine.Types.Product
 import           Network.Google.AppEngine.Types.Sum
 import           Network.Google.Prelude
 
--- | Default request referring to version 'v1beta4' of the Google App Engine Admin API. This contains the host and root path used as a starting point for constructing service requests.
-appEngineService :: Service
+-- | Default request referring to version 'v1beta5' of the Google App Engine Admin API. This contains the host and root path used as a starting point for constructing service requests.
+appEngineService :: ServiceConfig
 appEngineService
-  = defaultService (ServiceId "appengine:v1beta4")
+  = defaultService (ServiceId "appengine:v1beta5")
       "appengine.googleapis.com"
 
 -- | View and manage your data across Google Cloud Platform services
-cloudPlatformScope :: OAuthScope
-cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";
+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]
+cloudPlatformScope = Proxy;
diff --git a/gen/Network/Google/AppEngine/Types/Product.hs b/gen/Network/Google/AppEngine/Types/Product.hs
--- a/gen/Network/Google/AppEngine/Types/Product.hs
+++ b/gen/Network/Google/AppEngine/Types/Product.hs
@@ -9,2796 +9,3285 @@
 
 -- |
 -- Module      : Network.Google.AppEngine.Types.Product
--- Copyright   : (c) 2015 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)
---
-module Network.Google.AppEngine.Types.Product where
-
-import           Network.Google.AppEngine.Types.Sum
-import           Network.Google.Prelude
-
--- | The \`Status\` type defines a logical error model that is suitable for
--- different programming environments, including REST APIs and RPC APIs. It
--- is used by [gRPC](https:\/\/github.com\/grpc). The error model is
--- designed to be: - Simple to use and understand for most users - Flexible
--- enough to meet unexpected needs # Overview The \`Status\` message
--- contains three pieces of data: error code, error message, and error
--- details. The error code should be an enum value of
--- [google.rpc.Code][google.rpc.Code], but it may accept additional error
--- codes if needed. The error message should be a developer-facing English
--- message that helps developers *understand* and *resolve* the error. If a
--- localized user-facing error message is needed, put the localized message
--- in the error details or localize it in the client. The optional error
--- details may contain arbitrary information about the error. There is a
--- predefined set of error detail types in the package \`google.rpc\` which
--- can be used for common error conditions. # Language mapping The
--- \`Status\` message is the logical representation of the error model, but
--- it is not necessarily the actual wire format. When the \`Status\`
--- message is exposed in different client libraries and different wire
--- protocols, it can be mapped differently. For example, it will likely be
--- mapped to some exceptions in Java, but more likely mapped to some error
--- codes in C. # Other uses The error model and the \`Status\` message can
--- be used in a variety of environments, either with or without APIs, to
--- provide a consistent developer experience across different environments.
--- Example uses of this error model include: - Partial errors. If a service
--- needs to return partial errors to the client, it may embed the
--- \`Status\` in the normal response to indicate the partial errors. -
--- Workflow errors. A typical workflow has multiple steps. Each step may
--- have a \`Status\` message for error reporting purpose. - Batch
--- operations. If a client uses batch request and batch response, the
--- \`Status\` message should be used directly inside batch response, one
--- for each error sub-response. - Asynchronous operations. If an API call
--- embeds asynchronous operation results in its response, the status of
--- those operations should be represented directly using the \`Status\`
--- message. - Logging. If some API errors are stored in logs, the message
--- \`Status\` could be used directly after any stripping needed for
--- security\/privacy reasons.
---
--- /See:/ 'status' smart constructor.
-data Status = Status
-    { _sDetails :: !(Maybe [StatusDetailsItem])
-    , _sCode    :: !(Maybe (Textual Int32))
-    , _sMessage :: !(Maybe Text)
-    } 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:
---
--- * 'sDetails'
---
--- * 'sCode'
---
--- * 'sMessage'
-status
-    :: Status
-status =
-    Status
-    { _sDetails = Nothing
-    , _sCode = Nothing
-    , _sMessage = Nothing
-    }
-
--- | A list of messages that carry the error details. There will be a common
--- set of message types for APIs to use.
-sDetails :: Lens' Status [StatusDetailsItem]
-sDetails
-  = lens _sDetails (\ s a -> s{_sDetails = a}) .
-      _Default
-      . _Coerce
-
--- | The status code, which should be an enum value of
--- [google.rpc.Code][google.rpc.Code].
-sCode :: Lens' Status (Maybe Int32)
-sCode
-  = lens _sCode (\ s a -> s{_sCode = a}) .
-      mapping _Coerce
-
--- | A developer-facing error message, which should be in English. Any
--- user-facing error message should be localized and sent in the
--- [google.rpc.Status.details][google.rpc.Status.details] field, or
--- localized by the client.
-sMessage :: Lens' Status (Maybe Text)
-sMessage = lens _sMessage (\ s a -> s{_sMessage = a})
-
-instance FromJSON Status where
-        parseJSON
-          = withObject "Status"
-              (\ o ->
-                 Status <$>
-                   (o .:? "details" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON Status where
-        toJSON Status{..}
-          = object
-              (catMaybes
-                 [("details" .=) <$> _sDetails,
-                  ("code" .=) <$> _sCode,
-                  ("message" .=) <$> _sMessage])
-
--- | Service-specific metadata associated with the operation. It typically
--- contains progress information and common metadata such as create time.
--- Some services might not provide such metadata. Any method that returns a
--- long-running operation should document the metadata type, if any.
---
--- /See:/ 'operationSchema' smart constructor.
-newtype OperationSchema = OperationSchema
-    { _osAddtional :: HashMap Text JSONValue
-    } 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:
---
--- * 'osAddtional'
-operationSchema
-    :: HashMap Text JSONValue -- ^ 'osAddtional'
-    -> OperationSchema
-operationSchema pOsAddtional_ =
-    OperationSchema
-    { _osAddtional = _Coerce # pOsAddtional_
-    }
-
--- | Properties of the object. Contains field \'ype with type URL.
-osAddtional :: Lens' OperationSchema (HashMap Text JSONValue)
-osAddtional
-  = lens _osAddtional (\ s a -> s{_osAddtional = a}) .
-      _Coerce
-
-instance FromJSON OperationSchema where
-        parseJSON
-          = withObject "OperationSchema"
-              (\ o -> OperationSchema <$> (parseJSONObject o))
-
-instance ToJSON OperationSchema where
-        toJSON = toJSON . _osAddtional
-
--- | Configuration for traffic splitting for versions within a single module.
--- Traffic splitting allows traffic directed to the module to be assigned
--- to one of several versions in a fractional way, enabling experiments and
--- canarying new builds, for example.
---
--- /See:/ 'trafficSplit' smart constructor.
-data TrafficSplit = TrafficSplit
-    { _tsShardBy     :: !(Maybe Text)
-    , _tsAllocations :: !(Maybe TrafficSplitAllocations)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TrafficSplit' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tsShardBy'
---
--- * 'tsAllocations'
-trafficSplit
-    :: TrafficSplit
-trafficSplit =
-    TrafficSplit
-    { _tsShardBy = Nothing
-    , _tsAllocations = Nothing
-    }
-
--- | Which mechanism should be used as a selector when choosing a version to
--- send a request to. The traffic selection algorithm will be stable for
--- either type until allocations are changed.
-tsShardBy :: Lens' TrafficSplit (Maybe Text)
-tsShardBy
-  = lens _tsShardBy (\ s a -> s{_tsShardBy = a})
-
--- | Mapping from module version IDs within the module to fractional (0.000,
--- 1] allocations of traffic for that version. Each version may only be
--- specified once, but some versions in the module may not have any traffic
--- allocation. Modules that have traffic allocated in this field may not be
--- deleted until the module is deleted, or their traffic allocation is
--- removed. Allocations must sum to 1. Supports precision up to two decimal
--- places for IP-based splits and up to three decimal places for
--- cookie-based splits.
-tsAllocations :: Lens' TrafficSplit (Maybe TrafficSplitAllocations)
-tsAllocations
-  = lens _tsAllocations
-      (\ s a -> s{_tsAllocations = a})
-
-instance FromJSON TrafficSplit where
-        parseJSON
-          = withObject "TrafficSplit"
-              (\ o ->
-                 TrafficSplit <$>
-                   (o .:? "shardBy") <*> (o .:? "allocations"))
-
-instance ToJSON TrafficSplit where
-        toJSON TrafficSplit{..}
-          = object
-              (catMaybes
-                 [("shardBy" .=) <$> _tsShardBy,
-                  ("allocations" .=) <$> _tsAllocations])
-
--- | Executes a script to handle the request that matches the URL pattern.
---
--- /See:/ 'scriptHandler' smart constructor.
-newtype ScriptHandler = ScriptHandler
-    { _shScriptPath :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ScriptHandler' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'shScriptPath'
-scriptHandler
-    :: ScriptHandler
-scriptHandler =
-    ScriptHandler
-    { _shScriptPath = Nothing
-    }
-
--- | Specifies the path to the script from the application root directory.
-shScriptPath :: Lens' ScriptHandler (Maybe Text)
-shScriptPath
-  = lens _shScriptPath (\ s a -> s{_shScriptPath = a})
-
-instance FromJSON ScriptHandler where
-        parseJSON
-          = withObject "ScriptHandler"
-              (\ o -> ScriptHandler <$> (o .:? "scriptPath"))
-
-instance ToJSON ScriptHandler where
-        toJSON ScriptHandler{..}
-          = object
-              (catMaybes [("scriptPath" .=) <$> _shScriptPath])
-
--- | A URL pattern and description of how it should be handled. App Engine
--- can handle URLs by executing application code, or by serving static
--- files uploaded with the code, such as images, CSS or JavaScript.
---
--- /See:/ 'urlMap' smart constructor.
-data URLMap = URLMap
-    { _umScript                   :: !(Maybe ScriptHandler)
-    , _umSecurityLevel            :: !(Maybe Text)
-    , _umAPIEndpoint              :: !(Maybe APIEndpointHandler)
-    , _umURLRegex                 :: !(Maybe Text)
-    , _umRedirectHTTPResponseCode :: !(Maybe Text)
-    , _umAuthFailAction           :: !(Maybe Text)
-    , _umStaticFiles              :: !(Maybe StaticFilesHandler)
-    , _umLogin                    :: !(Maybe Text)
-    , _umStaticDirectory          :: !(Maybe StaticDirectoryHandler)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'URLMap' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umScript'
---
--- * 'umSecurityLevel'
---
--- * 'umAPIEndpoint'
---
--- * 'umURLRegex'
---
--- * 'umRedirectHTTPResponseCode'
---
--- * 'umAuthFailAction'
---
--- * 'umStaticFiles'
---
--- * 'umLogin'
---
--- * 'umStaticDirectory'
-urlMap
-    :: URLMap
-urlMap =
-    URLMap
-    { _umScript = Nothing
-    , _umSecurityLevel = Nothing
-    , _umAPIEndpoint = Nothing
-    , _umURLRegex = Nothing
-    , _umRedirectHTTPResponseCode = Nothing
-    , _umAuthFailAction = Nothing
-    , _umStaticFiles = Nothing
-    , _umLogin = Nothing
-    , _umStaticDirectory = Nothing
-    }
-
--- | Executes a script to handle the request that matches the URL pattern.
-umScript :: Lens' URLMap (Maybe ScriptHandler)
-umScript = lens _umScript (\ s a -> s{_umScript = a})
-
--- | Configures whether security (HTTPS) should be enforced for this URL.
-umSecurityLevel :: Lens' URLMap (Maybe Text)
-umSecurityLevel
-  = lens _umSecurityLevel
-      (\ s a -> s{_umSecurityLevel = a})
-
--- | Use API Endpoints to handle requests.
-umAPIEndpoint :: Lens' URLMap (Maybe APIEndpointHandler)
-umAPIEndpoint
-  = lens _umAPIEndpoint
-      (\ s a -> s{_umAPIEndpoint = a})
-
--- | A URL prefix. This value uses regular expression syntax (and so regexp
--- special characters must be escaped), but it should not contain
--- groupings. All URLs that begin with this prefix are handled by this
--- handler, using the portion of the URL after the prefix as part of the
--- file path. This is always required.
-umURLRegex :: Lens' URLMap (Maybe Text)
-umURLRegex
-  = lens _umURLRegex (\ s a -> s{_umURLRegex = a})
-
--- | \`30x\` code to use when performing redirects for the \`secure\` field.
--- A \`302\` is used by default.
-umRedirectHTTPResponseCode :: Lens' URLMap (Maybe Text)
-umRedirectHTTPResponseCode
-  = lens _umRedirectHTTPResponseCode
-      (\ s a -> s{_umRedirectHTTPResponseCode = a})
-
--- | For users not logged in, how to handle access to resources with required
--- login. Defaults to \"redirect\".
-umAuthFailAction :: Lens' URLMap (Maybe Text)
-umAuthFailAction
-  = lens _umAuthFailAction
-      (\ s a -> s{_umAuthFailAction = a})
-
--- | Returns the contents of a file, such as an image, as the response.
-umStaticFiles :: Lens' URLMap (Maybe StaticFilesHandler)
-umStaticFiles
-  = lens _umStaticFiles
-      (\ s a -> s{_umStaticFiles = a})
-
--- | What level of login is required to access this resource.
-umLogin :: Lens' URLMap (Maybe Text)
-umLogin = lens _umLogin (\ s a -> s{_umLogin = a})
-
--- | Serves the entire contents of a directory as static files. This
--- attribute is deprecated. You can mimic the behavior of static
--- directories using static files.
-umStaticDirectory :: Lens' URLMap (Maybe StaticDirectoryHandler)
-umStaticDirectory
-  = lens _umStaticDirectory
-      (\ s a -> s{_umStaticDirectory = a})
-
-instance FromJSON URLMap where
-        parseJSON
-          = withObject "URLMap"
-              (\ o ->
-                 URLMap <$>
-                   (o .:? "script") <*> (o .:? "securityLevel") <*>
-                     (o .:? "apiEndpoint")
-                     <*> (o .:? "urlRegex")
-                     <*> (o .:? "redirectHttpResponseCode")
-                     <*> (o .:? "authFailAction")
-                     <*> (o .:? "staticFiles")
-                     <*> (o .:? "login")
-                     <*> (o .:? "staticDirectory"))
-
-instance ToJSON URLMap where
-        toJSON URLMap{..}
-          = object
-              (catMaybes
-                 [("script" .=) <$> _umScript,
-                  ("securityLevel" .=) <$> _umSecurityLevel,
-                  ("apiEndpoint" .=) <$> _umAPIEndpoint,
-                  ("urlRegex" .=) <$> _umURLRegex,
-                  ("redirectHttpResponseCode" .=) <$>
-                    _umRedirectHTTPResponseCode,
-                  ("authFailAction" .=) <$> _umAuthFailAction,
-                  ("staticFiles" .=) <$> _umStaticFiles,
-                  ("login" .=) <$> _umLogin,
-                  ("staticDirectory" .=) <$> _umStaticDirectory])
-
--- | A Python runtime third-party library required by the application.
---
--- /See:/ 'library' smart constructor.
-data Library = Library
-    { _lName    :: !(Maybe Text)
-    , _lVersion :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Library' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lName'
---
--- * 'lVersion'
-library
-    :: Library
-library =
-    Library
-    { _lName = Nothing
-    , _lVersion = Nothing
-    }
-
--- | The name of the library, e.g. \"PIL\" or \"django\".
-lName :: Lens' Library (Maybe Text)
-lName = lens _lName (\ s a -> s{_lName = a})
-
--- | The version of the library to select, or \"latest\".
-lVersion :: Lens' Library (Maybe Text)
-lVersion = lens _lVersion (\ s a -> s{_lVersion = a})
-
-instance FromJSON Library where
-        parseJSON
-          = withObject "Library"
-              (\ o ->
-                 Library <$> (o .:? "name") <*> (o .:? "version"))
-
-instance ToJSON Library where
-        toJSON Library{..}
-          = object
-              (catMaybes
-                 [("name" .=) <$> _lName,
-                  ("version" .=) <$> _lVersion])
-
--- | The response message for
--- [Operations.ListOperations][google.longrunning.Operations.ListOperations].
---
--- /See:/ 'listOperationsResponse' smart constructor.
-data ListOperationsResponse = ListOperationsResponse
-    { _lorNextPageToken :: !(Maybe Text)
-    , _lorOperations    :: !(Maybe [Operation])
-    } 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:
---
--- * 'lorNextPageToken'
---
--- * 'lorOperations'
-listOperationsResponse
-    :: ListOperationsResponse
-listOperationsResponse =
-    ListOperationsResponse
-    { _lorNextPageToken = Nothing
-    , _lorOperations = Nothing
-    }
-
--- | The standard List next-page token.
-lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)
-lorNextPageToken
-  = lens _lorNextPageToken
-      (\ s a -> s{_lorNextPageToken = a})
-
--- | A list of operations that matches the specified filter in the request.
-lorOperations :: Lens' ListOperationsResponse [Operation]
-lorOperations
-  = lens _lorOperations
-      (\ s a -> s{_lorOperations = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ListOperationsResponse where
-        parseJSON
-          = withObject "ListOperationsResponse"
-              (\ o ->
-                 ListOperationsResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "operations" .!= mempty))
-
-instance ToJSON ListOperationsResponse where
-        toJSON ListOperationsResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _lorNextPageToken,
-                  ("operations" .=) <$> _lorOperations])
-
--- | Configure health checking for the VM instances. Unhealthy VM instances
--- will be killed and replaced with new instances.
---
--- /See:/ 'healthCheck' smart constructor.
-data HealthCheck = HealthCheck
-    { _hcHealthyThreshold   :: !(Maybe (Textual Word32))
-    , _hcDisableHealthCheck :: !(Maybe Bool)
-    , _hcCheckInterval      :: !(Maybe Text)
-    , _hcRestartThreshold   :: !(Maybe (Textual Word32))
-    , _hcHost               :: !(Maybe Text)
-    , _hcTimeout            :: !(Maybe Text)
-    , _hcUnhealthyThreshold :: !(Maybe (Textual Word32))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'HealthCheck' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hcHealthyThreshold'
---
--- * 'hcDisableHealthCheck'
---
--- * 'hcCheckInterval'
---
--- * 'hcRestartThreshold'
---
--- * 'hcHost'
---
--- * 'hcTimeout'
---
--- * 'hcUnhealthyThreshold'
-healthCheck
-    :: HealthCheck
-healthCheck =
-    HealthCheck
-    { _hcHealthyThreshold = Nothing
-    , _hcDisableHealthCheck = Nothing
-    , _hcCheckInterval = Nothing
-    , _hcRestartThreshold = Nothing
-    , _hcHost = Nothing
-    , _hcTimeout = Nothing
-    , _hcUnhealthyThreshold = Nothing
-    }
-
--- | The number of consecutive successful health checks before receiving
--- traffic.
-hcHealthyThreshold :: Lens' HealthCheck (Maybe Word32)
-hcHealthyThreshold
-  = lens _hcHealthyThreshold
-      (\ s a -> s{_hcHealthyThreshold = a})
-      . mapping _Coerce
-
--- | Whether to explicitly disable health checks for this instance.
-hcDisableHealthCheck :: Lens' HealthCheck (Maybe Bool)
-hcDisableHealthCheck
-  = lens _hcDisableHealthCheck
-      (\ s a -> s{_hcDisableHealthCheck = a})
-
--- | The interval between health checks.
-hcCheckInterval :: Lens' HealthCheck (Maybe Text)
-hcCheckInterval
-  = lens _hcCheckInterval
-      (\ s a -> s{_hcCheckInterval = a})
-
--- | The number of consecutive failed health checks before an instance is
--- restarted.
-hcRestartThreshold :: Lens' HealthCheck (Maybe Word32)
-hcRestartThreshold
-  = lens _hcRestartThreshold
-      (\ s a -> s{_hcRestartThreshold = a})
-      . mapping _Coerce
-
--- | The host header to send when performing an HTTP health check (e.g.
--- myapp.appspot.com)
-hcHost :: Lens' HealthCheck (Maybe Text)
-hcHost = lens _hcHost (\ s a -> s{_hcHost = a})
-
--- | The amount of time before the health check is considered failed.
-hcTimeout :: Lens' HealthCheck (Maybe Text)
-hcTimeout
-  = lens _hcTimeout (\ s a -> s{_hcTimeout = a})
-
--- | The number of consecutive failed health checks before removing traffic.
-hcUnhealthyThreshold :: Lens' HealthCheck (Maybe Word32)
-hcUnhealthyThreshold
-  = lens _hcUnhealthyThreshold
-      (\ s a -> s{_hcUnhealthyThreshold = a})
-      . mapping _Coerce
-
-instance FromJSON HealthCheck where
-        parseJSON
-          = withObject "HealthCheck"
-              (\ o ->
-                 HealthCheck <$>
-                   (o .:? "healthyThreshold") <*>
-                     (o .:? "disableHealthCheck")
-                     <*> (o .:? "checkInterval")
-                     <*> (o .:? "restartThreshold")
-                     <*> (o .:? "host")
-                     <*> (o .:? "timeout")
-                     <*> (o .:? "unhealthyThreshold"))
-
-instance ToJSON HealthCheck where
-        toJSON HealthCheck{..}
-          = object
-              (catMaybes
-                 [("healthyThreshold" .=) <$> _hcHealthyThreshold,
-                  ("disableHealthCheck" .=) <$> _hcDisableHealthCheck,
-                  ("checkInterval" .=) <$> _hcCheckInterval,
-                  ("restartThreshold" .=) <$> _hcRestartThreshold,
-                  ("host" .=) <$> _hcHost,
-                  ("timeout" .=) <$> _hcTimeout,
-                  ("unhealthyThreshold" .=) <$> _hcUnhealthyThreshold])
-
--- | API Serving configuration for Cloud Endpoints.
---
--- /See:/ 'apiConfigHandler' smart constructor.
-data APIConfigHandler = APIConfigHandler
-    { _achScript         :: !(Maybe Text)
-    , _achSecurityLevel  :: !(Maybe Text)
-    , _achURL            :: !(Maybe Text)
-    , _achAuthFailAction :: !(Maybe Text)
-    , _achLogin          :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'APIConfigHandler' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'achScript'
---
--- * 'achSecurityLevel'
---
--- * 'achURL'
---
--- * 'achAuthFailAction'
---
--- * 'achLogin'
-apiConfigHandler
-    :: APIConfigHandler
-apiConfigHandler =
-    APIConfigHandler
-    { _achScript = Nothing
-    , _achSecurityLevel = Nothing
-    , _achURL = Nothing
-    , _achAuthFailAction = Nothing
-    , _achLogin = Nothing
-    }
-
--- | Specifies the path to the script from the application root directory.
-achScript :: Lens' APIConfigHandler (Maybe Text)
-achScript
-  = lens _achScript (\ s a -> s{_achScript = a})
-
--- | Configures whether security (HTTPS) should be enforced for this URL.
-achSecurityLevel :: Lens' APIConfigHandler (Maybe Text)
-achSecurityLevel
-  = lens _achSecurityLevel
-      (\ s a -> s{_achSecurityLevel = a})
-
--- | URL to serve the endpoint at.
-achURL :: Lens' APIConfigHandler (Maybe Text)
-achURL = lens _achURL (\ s a -> s{_achURL = a})
-
--- | For users not logged in, how to handle access to resources with required
--- login. Defaults to \"redirect\".
-achAuthFailAction :: Lens' APIConfigHandler (Maybe Text)
-achAuthFailAction
-  = lens _achAuthFailAction
-      (\ s a -> s{_achAuthFailAction = a})
-
--- | What level of login is required to access this resource. Default is
--- \"optional\".
-achLogin :: Lens' APIConfigHandler (Maybe Text)
-achLogin = lens _achLogin (\ s a -> s{_achLogin = a})
-
-instance FromJSON APIConfigHandler where
-        parseJSON
-          = withObject "APIConfigHandler"
-              (\ o ->
-                 APIConfigHandler <$>
-                   (o .:? "script") <*> (o .:? "securityLevel") <*>
-                     (o .:? "url")
-                     <*> (o .:? "authFailAction")
-                     <*> (o .:? "login"))
-
-instance ToJSON APIConfigHandler where
-        toJSON APIConfigHandler{..}
-          = object
-              (catMaybes
-                 [("script" .=) <$> _achScript,
-                  ("securityLevel" .=) <$> _achSecurityLevel,
-                  ("url" .=) <$> _achURL,
-                  ("authFailAction" .=) <$> _achAuthFailAction,
-                  ("login" .=) <$> _achLogin])
-
--- | Environment variables made available to the application. Only returned
--- in \`GET\` requests if \`view=FULL\` is set. May only be set on create
--- requests; once created, is immutable.
---
--- /See:/ 'versionEnvVariables' smart constructor.
-newtype VersionEnvVariables = VersionEnvVariables
-    { _vevAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'VersionEnvVariables' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vevAddtional'
-versionEnvVariables
-    :: HashMap Text Text -- ^ 'vevAddtional'
-    -> VersionEnvVariables
-versionEnvVariables pVevAddtional_ =
-    VersionEnvVariables
-    { _vevAddtional = _Coerce # pVevAddtional_
-    }
-
-vevAddtional :: Lens' VersionEnvVariables (HashMap Text Text)
-vevAddtional
-  = lens _vevAddtional (\ s a -> s{_vevAddtional = a})
-      . _Coerce
-
-instance FromJSON VersionEnvVariables where
-        parseJSON
-          = withObject "VersionEnvVariables"
-              (\ o -> VersionEnvVariables <$> (parseJSONObject o))
-
-instance ToJSON VersionEnvVariables where
-        toJSON = toJSON . _vevAddtional
-
--- | An Application contains the top-level configuration of an App Engine
--- application.
---
--- /See:/ 'application' smart constructor.
-data Application = Application
-    { _aLocation      :: !(Maybe Text)
-    , _aCodeBucket    :: !(Maybe Text)
-    , _aName          :: !(Maybe Text)
-    , _aDispatchRules :: !(Maybe [URLDispatchRule])
-    , _aId            :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Application' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aLocation'
---
--- * 'aCodeBucket'
---
--- * 'aName'
---
--- * 'aDispatchRules'
---
--- * 'aId'
-application
-    :: Application
-application =
-    Application
-    { _aLocation = Nothing
-    , _aCodeBucket = Nothing
-    , _aName = Nothing
-    , _aDispatchRules = Nothing
-    , _aId = Nothing
-    }
-
--- | The location from which the application will be run. Choices are
--- \"us-central\" for United States and \"europe-west\" for European Union.
--- Application instances will run out of data centers in the chosen
--- location and all of the application\'s End User Content will be stored
--- at rest in the chosen location. The default is \"us-central\".
-aLocation :: Lens' Application (Maybe Text)
-aLocation
-  = lens _aLocation (\ s a -> s{_aLocation = a})
-
--- | A Google Cloud Storage bucket which can be used for storing files
--- associated with an application. This bucket is associated with the
--- application and can be used by the gcloud deployment commands.
--- \'OutputOnly
-aCodeBucket :: Lens' Application (Maybe Text)
-aCodeBucket
-  = lens _aCodeBucket (\ s a -> s{_aCodeBucket = a})
-
--- | The full path to the application in the API. Example: \"apps\/myapp\".
--- \'OutputOnly
-aName :: Lens' Application (Maybe Text)
-aName = lens _aName (\ s a -> s{_aName = a})
-
--- | HTTP path dispatch rules for requests to the app that do not explicitly
--- target a module or version. The rules are order-dependent.
-aDispatchRules :: Lens' Application [URLDispatchRule]
-aDispatchRules
-  = lens _aDispatchRules
-      (\ s a -> s{_aDispatchRules = a})
-      . _Default
-      . _Coerce
-
--- | The relative name\/path of the application. Example: \"myapp\".
--- \'OutputOnly
-aId :: Lens' Application (Maybe Text)
-aId = lens _aId (\ s a -> s{_aId = a})
-
-instance FromJSON Application where
-        parseJSON
-          = withObject "Application"
-              (\ o ->
-                 Application <$>
-                   (o .:? "location") <*> (o .:? "codeBucket") <*>
-                     (o .:? "name")
-                     <*> (o .:? "dispatchRules" .!= mempty)
-                     <*> (o .:? "id"))
-
-instance ToJSON Application where
-        toJSON Application{..}
-          = object
-              (catMaybes
-                 [("location" .=) <$> _aLocation,
-                  ("codeBucket" .=) <$> _aCodeBucket,
-                  ("name" .=) <$> _aName,
-                  ("dispatchRules" .=) <$> _aDispatchRules,
-                  ("id" .=) <$> _aId])
-
--- | Beta settings supplied to the application via metadata.
---
--- /See:/ 'versionBetaSettings' smart constructor.
-newtype VersionBetaSettings = VersionBetaSettings
-    { _vbsAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'VersionBetaSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vbsAddtional'
-versionBetaSettings
-    :: HashMap Text Text -- ^ 'vbsAddtional'
-    -> VersionBetaSettings
-versionBetaSettings pVbsAddtional_ =
-    VersionBetaSettings
-    { _vbsAddtional = _Coerce # pVbsAddtional_
-    }
-
-vbsAddtional :: Lens' VersionBetaSettings (HashMap Text Text)
-vbsAddtional
-  = lens _vbsAddtional (\ s a -> s{_vbsAddtional = a})
-      . _Coerce
-
-instance FromJSON VersionBetaSettings where
-        parseJSON
-          = withObject "VersionBetaSettings"
-              (\ o -> VersionBetaSettings <$> (parseJSONObject o))
-
-instance ToJSON VersionBetaSettings where
-        toJSON = toJSON . _vbsAddtional
-
--- | This resource represents a long-running operation that is the result of
--- a network API call.
---
--- /See:/ 'operation' smart constructor.
-data Operation = Operation
-    { _oDone     :: !(Maybe Bool)
-    , _oError    :: !(Maybe Status)
-    , _oResponse :: !(Maybe OperationResponse)
-    , _oName     :: !(Maybe Text)
-    , _oMetadata :: !(Maybe OperationSchema)
-    } 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:
---
--- * 'oDone'
---
--- * 'oError'
---
--- * 'oResponse'
---
--- * 'oName'
---
--- * 'oMetadata'
-operation
-    :: Operation
-operation =
-    Operation
-    { _oDone = Nothing
-    , _oError = Nothing
-    , _oResponse = Nothing
-    , _oName = Nothing
-    , _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.
-oDone :: Lens' Operation (Maybe Bool)
-oDone = lens _oDone (\ s a -> s{_oDone = a})
-
--- | The error result of the operation in case of failure.
-oError :: Lens' Operation (Maybe Status)
-oError = lens _oError (\ s a -> s{_oError = a})
-
--- | The normal response of the operation in case of success. If the original
--- method returns no data on success, such as \`Delete\`, the response is
--- \`google.protobuf.Empty\`. If the original method is standard
--- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.
--- For other methods, the response should have the type \`XxxResponse\`,
--- where \`Xxx\` is the original method name. For example, if the original
--- method name is \`TakeSnapshot()\`, the inferred response type is
--- \`TakeSnapshotResponse\`.
-oResponse :: Lens' Operation (Maybe OperationResponse)
-oResponse
-  = lens _oResponse (\ s a -> s{_oResponse = a})
-
--- | The server-assigned name, which is only unique within the same service
--- that originally returns it. If you use the default HTTP mapping above,
--- the \`name\` should have the format of
--- \`operations\/some\/unique\/name\`.
-oName :: Lens' Operation (Maybe Text)
-oName = lens _oName (\ s a -> s{_oName = a})
-
--- | Service-specific metadata associated with the operation. It typically
--- contains progress information and common metadata such as create time.
--- Some services might not provide such metadata. Any method that returns a
--- long-running operation should document the metadata type, if any.
-oMetadata :: Lens' Operation (Maybe OperationSchema)
-oMetadata
-  = lens _oMetadata (\ s a -> s{_oMetadata = a})
-
-instance FromJSON Operation where
-        parseJSON
-          = withObject "Operation"
-              (\ o ->
-                 Operation <$>
-                   (o .:? "done") <*> (o .:? "error") <*>
-                     (o .:? "response")
-                     <*> (o .:? "name")
-                     <*> (o .:? "metadata"))
-
-instance ToJSON Operation where
-        toJSON Operation{..}
-          = object
-              (catMaybes
-                 [("done" .=) <$> _oDone, ("error" .=) <$> _oError,
-                  ("response" .=) <$> _oResponse,
-                  ("name" .=) <$> _oName,
-                  ("metadata" .=) <$> _oMetadata])
-
--- | Rules to match an HTTP request and dispatch that request to a module.
---
--- /See:/ 'urlDispatchRule' smart constructor.
-data URLDispatchRule = URLDispatchRule
-    { _udrPath   :: !(Maybe Text)
-    , _udrDomain :: !(Maybe Text)
-    , _udrModule :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'URLDispatchRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'udrPath'
---
--- * 'udrDomain'
---
--- * 'udrModule'
-urlDispatchRule
-    :: URLDispatchRule
-urlDispatchRule =
-    URLDispatchRule
-    { _udrPath = Nothing
-    , _udrDomain = Nothing
-    , _udrModule = Nothing
-    }
-
--- | The pathname within the host. This must start with a \'\/\'. A single
--- \'*\' (glob) can be included at the end of the path. The sum of the
--- lengths of the domain and path may not exceed 100 characters.
-udrPath :: Lens' URLDispatchRule (Maybe Text)
-udrPath = lens _udrPath (\ s a -> s{_udrPath = a})
-
--- | The domain name to match on. Supports \'*\' (glob) wildcarding on the
--- left-hand side of a \'.\'. If empty, all domains will be matched (the
--- same as \'*\').
-udrDomain :: Lens' URLDispatchRule (Maybe Text)
-udrDomain
-  = lens _udrDomain (\ s a -> s{_udrDomain = a})
-
--- | The resource id of a Module in this application that should service the
--- matched request. The Module must already exist. Example: \"default\".
-udrModule :: Lens' URLDispatchRule (Maybe Text)
-udrModule
-  = lens _udrModule (\ s a -> s{_udrModule = a})
-
-instance FromJSON URLDispatchRule where
-        parseJSON
-          = withObject "URLDispatchRule"
-              (\ o ->
-                 URLDispatchRule <$>
-                   (o .:? "path") <*> (o .:? "domain") <*>
-                     (o .:? "module"))
-
-instance ToJSON URLDispatchRule where
-        toJSON URLDispatchRule{..}
-          = object
-              (catMaybes
-                 [("path" .=) <$> _udrPath,
-                  ("domain" .=) <$> _udrDomain,
-                  ("module" .=) <$> _udrModule])
-
--- | HTTP headers to use for all responses from these URLs.
---
--- /See:/ 'staticDirectoryHandlerHTTPHeaders' smart constructor.
-newtype StaticDirectoryHandlerHTTPHeaders = StaticDirectoryHandlerHTTPHeaders
-    { _sdhhttphAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'StaticDirectoryHandlerHTTPHeaders' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sdhhttphAddtional'
-staticDirectoryHandlerHTTPHeaders
-    :: HashMap Text Text -- ^ 'sdhhttphAddtional'
-    -> StaticDirectoryHandlerHTTPHeaders
-staticDirectoryHandlerHTTPHeaders pSdhhttphAddtional_ =
-    StaticDirectoryHandlerHTTPHeaders
-    { _sdhhttphAddtional = _Coerce # pSdhhttphAddtional_
-    }
-
-sdhhttphAddtional :: Lens' StaticDirectoryHandlerHTTPHeaders (HashMap Text Text)
-sdhhttphAddtional
-  = lens _sdhhttphAddtional
-      (\ s a -> s{_sdhhttphAddtional = a})
-      . _Coerce
-
-instance FromJSON StaticDirectoryHandlerHTTPHeaders
-         where
-        parseJSON
-          = withObject "StaticDirectoryHandlerHTTPHeaders"
-              (\ o ->
-                 StaticDirectoryHandlerHTTPHeaders <$>
-                   (parseJSONObject o))
-
-instance ToJSON StaticDirectoryHandlerHTTPHeaders
-         where
-        toJSON = toJSON . _sdhhttphAddtional
-
--- | Response message for \`Versions.ListVersions\`.
---
--- /See:/ 'listVersionsResponse' smart constructor.
-data ListVersionsResponse = ListVersionsResponse
-    { _lvrNextPageToken :: !(Maybe Text)
-    , _lvrVersions      :: !(Maybe [Version])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListVersionsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lvrNextPageToken'
---
--- * 'lvrVersions'
-listVersionsResponse
-    :: ListVersionsResponse
-listVersionsResponse =
-    ListVersionsResponse
-    { _lvrNextPageToken = Nothing
-    , _lvrVersions = Nothing
-    }
-
--- | Continuation token for fetching the next page of results.
-lvrNextPageToken :: Lens' ListVersionsResponse (Maybe Text)
-lvrNextPageToken
-  = lens _lvrNextPageToken
-      (\ s a -> s{_lvrNextPageToken = a})
-
--- | The versions belonging to the requested application module.
-lvrVersions :: Lens' ListVersionsResponse [Version]
-lvrVersions
-  = lens _lvrVersions (\ s a -> s{_lvrVersions = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ListVersionsResponse where
-        parseJSON
-          = withObject "ListVersionsResponse"
-              (\ o ->
-                 ListVersionsResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "versions" .!= mempty))
-
-instance ToJSON ListVersionsResponse where
-        toJSON ListVersionsResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _lvrNextPageToken,
-                  ("versions" .=) <$> _lvrVersions])
-
--- | A single source file which is part of the application to be deployed.
---
--- /See:/ 'fileInfo' smart constructor.
-data FileInfo = FileInfo
-    { _fiSha1Sum   :: !(Maybe Text)
-    , _fiMimeType  :: !(Maybe Text)
-    , _fiSourceURL :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FileInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fiSha1Sum'
---
--- * 'fiMimeType'
---
--- * 'fiSourceURL'
-fileInfo
-    :: FileInfo
-fileInfo =
-    FileInfo
-    { _fiSha1Sum = Nothing
-    , _fiMimeType = Nothing
-    , _fiSourceURL = Nothing
-    }
-
--- | The SHA1 (160 bits) hash of the file in hex.
-fiSha1Sum :: Lens' FileInfo (Maybe Text)
-fiSha1Sum
-  = lens _fiSha1Sum (\ s a -> s{_fiSha1Sum = a})
-
--- | The MIME type of the file; if unspecified, the value from Google Cloud
--- Storage will be used.
-fiMimeType :: Lens' FileInfo (Maybe Text)
-fiMimeType
-  = lens _fiMimeType (\ s a -> s{_fiMimeType = a})
-
--- | The URL source to use to fetch this file. Must be a URL to a resource in
--- Google Cloud Storage.
-fiSourceURL :: Lens' FileInfo (Maybe Text)
-fiSourceURL
-  = lens _fiSourceURL (\ s a -> s{_fiSourceURL = a})
-
-instance FromJSON FileInfo where
-        parseJSON
-          = withObject "FileInfo"
-              (\ o ->
-                 FileInfo <$>
-                   (o .:? "sha1Sum") <*> (o .:? "mimeType") <*>
-                     (o .:? "sourceUrl"))
-
-instance ToJSON FileInfo where
-        toJSON FileInfo{..}
-          = object
-              (catMaybes
-                 [("sha1Sum" .=) <$> _fiSha1Sum,
-                  ("mimeType" .=) <$> _fiMimeType,
-                  ("sourceUrl" .=) <$> _fiSourceURL])
-
--- | Automatic scaling is the scaling policy that App Engine has used since
--- its inception. It is based on request rate, response latencies, and
--- other application metrics.
---
--- /See:/ 'automaticScaling' smart constructor.
-data AutomaticScaling = AutomaticScaling
-    { _asMaxTotalInstances     :: !(Maybe (Textual Int32))
-    , _asMinIdleInstances      :: !(Maybe (Textual Int32))
-    , _asMinPendingLatency     :: !(Maybe Text)
-    , _asCPUUtilization        :: !(Maybe CPUUtilization)
-    , _asMaxIdleInstances      :: !(Maybe (Textual Int32))
-    , _asMinTotalInstances     :: !(Maybe (Textual Int32))
-    , _asMaxConcurrentRequests :: !(Maybe (Textual Int32))
-    , _asCoolDownPeriod        :: !(Maybe Text)
-    , _asMaxPendingLatency     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AutomaticScaling' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'asMaxTotalInstances'
---
--- * 'asMinIdleInstances'
---
--- * 'asMinPendingLatency'
---
--- * 'asCPUUtilization'
---
--- * 'asMaxIdleInstances'
---
--- * 'asMinTotalInstances'
---
--- * 'asMaxConcurrentRequests'
---
--- * 'asCoolDownPeriod'
---
--- * 'asMaxPendingLatency'
-automaticScaling
-    :: AutomaticScaling
-automaticScaling =
-    AutomaticScaling
-    { _asMaxTotalInstances = Nothing
-    , _asMinIdleInstances = Nothing
-    , _asMinPendingLatency = Nothing
-    , _asCPUUtilization = Nothing
-    , _asMaxIdleInstances = Nothing
-    , _asMinTotalInstances = Nothing
-    , _asMaxConcurrentRequests = Nothing
-    , _asCoolDownPeriod = Nothing
-    , _asMaxPendingLatency = Nothing
-    }
-
--- | Max number of instances that App Engine should start to handle requests.
-asMaxTotalInstances :: Lens' AutomaticScaling (Maybe Int32)
-asMaxTotalInstances
-  = lens _asMaxTotalInstances
-      (\ s a -> s{_asMaxTotalInstances = a})
-      . mapping _Coerce
-
--- | The minimum number of idle instances that App Engine should maintain for
--- this version. Only applies to the default version of a module, since
--- other versions are not expected to receive significant traffic.
-asMinIdleInstances :: Lens' AutomaticScaling (Maybe Int32)
-asMinIdleInstances
-  = lens _asMinIdleInstances
-      (\ s a -> s{_asMinIdleInstances = a})
-      . mapping _Coerce
-
--- | The minimum amount of time that App Engine should allow a request to
--- wait in the pending queue before starting a new instance to handle it.
-asMinPendingLatency :: Lens' AutomaticScaling (Maybe Text)
-asMinPendingLatency
-  = lens _asMinPendingLatency
-      (\ s a -> s{_asMinPendingLatency = a})
-
--- | Target scaling by CPU usage.
-asCPUUtilization :: Lens' AutomaticScaling (Maybe CPUUtilization)
-asCPUUtilization
-  = lens _asCPUUtilization
-      (\ s a -> s{_asCPUUtilization = a})
-
--- | The maximum number of idle instances that App Engine should maintain for
--- this version.
-asMaxIdleInstances :: Lens' AutomaticScaling (Maybe Int32)
-asMaxIdleInstances
-  = lens _asMaxIdleInstances
-      (\ s a -> s{_asMaxIdleInstances = a})
-      . mapping _Coerce
-
--- | Minimum number of instances that App Engine should maintain.
-asMinTotalInstances :: Lens' AutomaticScaling (Maybe Int32)
-asMinTotalInstances
-  = lens _asMinTotalInstances
-      (\ s a -> s{_asMinTotalInstances = a})
-      . mapping _Coerce
-
--- | The number of concurrent requests an automatic scaling instance can
--- accept before the scheduler spawns a new instance. Default value is
--- chosen based on the runtime.
-asMaxConcurrentRequests :: Lens' AutomaticScaling (Maybe Int32)
-asMaxConcurrentRequests
-  = lens _asMaxConcurrentRequests
-      (\ s a -> s{_asMaxConcurrentRequests = a})
-      . mapping _Coerce
-
--- | The amount of time that the
--- [Autoscaler](https:\/\/cloud.google.com\/compute\/docs\/autoscaler\/)
--- should wait between changes to the number of virtual machines. Applies
--- only to the VM runtime.
-asCoolDownPeriod :: Lens' AutomaticScaling (Maybe Text)
-asCoolDownPeriod
-  = lens _asCoolDownPeriod
-      (\ s a -> s{_asCoolDownPeriod = a})
-
--- | The maximum amount of time that App Engine should allow a request to
--- wait in the pending queue before starting a new instance to handle it.
-asMaxPendingLatency :: Lens' AutomaticScaling (Maybe Text)
-asMaxPendingLatency
-  = lens _asMaxPendingLatency
-      (\ s a -> s{_asMaxPendingLatency = a})
-
-instance FromJSON AutomaticScaling where
-        parseJSON
-          = withObject "AutomaticScaling"
-              (\ o ->
-                 AutomaticScaling <$>
-                   (o .:? "maxTotalInstances") <*>
-                     (o .:? "minIdleInstances")
-                     <*> (o .:? "minPendingLatency")
-                     <*> (o .:? "cpuUtilization")
-                     <*> (o .:? "maxIdleInstances")
-                     <*> (o .:? "minTotalInstances")
-                     <*> (o .:? "maxConcurrentRequests")
-                     <*> (o .:? "coolDownPeriod")
-                     <*> (o .:? "maxPendingLatency"))
-
-instance ToJSON AutomaticScaling where
-        toJSON AutomaticScaling{..}
-          = object
-              (catMaybes
-                 [("maxTotalInstances" .=) <$> _asMaxTotalInstances,
-                  ("minIdleInstances" .=) <$> _asMinIdleInstances,
-                  ("minPendingLatency" .=) <$> _asMinPendingLatency,
-                  ("cpuUtilization" .=) <$> _asCPUUtilization,
-                  ("maxIdleInstances" .=) <$> _asMaxIdleInstances,
-                  ("minTotalInstances" .=) <$> _asMinTotalInstances,
-                  ("maxConcurrentRequests" .=) <$>
-                    _asMaxConcurrentRequests,
-                  ("coolDownPeriod" .=) <$> _asCoolDownPeriod,
-                  ("maxPendingLatency" .=) <$> _asMaxPendingLatency])
-
--- | Response message for \`Modules.ListModules\`.
---
--- /See:/ 'listModulesResponse' smart constructor.
-data ListModulesResponse = ListModulesResponse
-    { _lmrNextPageToken :: !(Maybe Text)
-    , _lmrModules       :: !(Maybe [Module])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListModulesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lmrNextPageToken'
---
--- * 'lmrModules'
-listModulesResponse
-    :: ListModulesResponse
-listModulesResponse =
-    ListModulesResponse
-    { _lmrNextPageToken = Nothing
-    , _lmrModules = Nothing
-    }
-
--- | Continuation token for fetching the next page of results.
-lmrNextPageToken :: Lens' ListModulesResponse (Maybe Text)
-lmrNextPageToken
-  = lens _lmrNextPageToken
-      (\ s a -> s{_lmrNextPageToken = a})
-
--- | The modules belonging to the requested application.
-lmrModules :: Lens' ListModulesResponse [Module]
-lmrModules
-  = lens _lmrModules (\ s a -> s{_lmrModules = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ListModulesResponse where
-        parseJSON
-          = withObject "ListModulesResponse"
-              (\ o ->
-                 ListModulesResponse <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "modules" .!= mempty))
-
-instance ToJSON ListModulesResponse where
-        toJSON ListModulesResponse{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _lmrNextPageToken,
-                  ("modules" .=) <$> _lmrModules])
-
--- | Use Google Cloud Endpoints to handle requests.
---
--- /See:/ 'apiEndpointHandler' smart constructor.
-newtype APIEndpointHandler = APIEndpointHandler
-    { _aehScriptPath :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'APIEndpointHandler' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aehScriptPath'
-apiEndpointHandler
-    :: APIEndpointHandler
-apiEndpointHandler =
-    APIEndpointHandler
-    { _aehScriptPath = Nothing
-    }
-
--- | Specifies the path to the script from the application root directory.
-aehScriptPath :: Lens' APIEndpointHandler (Maybe Text)
-aehScriptPath
-  = lens _aehScriptPath
-      (\ s a -> s{_aehScriptPath = a})
-
-instance FromJSON APIEndpointHandler where
-        parseJSON
-          = withObject "APIEndpointHandler"
-              (\ o -> APIEndpointHandler <$> (o .:? "scriptPath"))
-
-instance ToJSON APIEndpointHandler where
-        toJSON APIEndpointHandler{..}
-          = object
-              (catMaybes [("scriptPath" .=) <$> _aehScriptPath])
-
---
--- /See:/ 'statusDetailsItem' smart constructor.
-newtype StatusDetailsItem = StatusDetailsItem
-    { _sdiAddtional :: HashMap Text JSONValue
-    } 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:
---
--- * 'sdiAddtional'
-statusDetailsItem
-    :: HashMap Text JSONValue -- ^ 'sdiAddtional'
-    -> StatusDetailsItem
-statusDetailsItem pSdiAddtional_ =
-    StatusDetailsItem
-    { _sdiAddtional = _Coerce # pSdiAddtional_
-    }
-
--- | Properties of the object. Contains field \'ype with type URL.
-sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)
-sdiAddtional
-  = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})
-      . _Coerce
-
-instance FromJSON StatusDetailsItem where
-        parseJSON
-          = withObject "StatusDetailsItem"
-              (\ o -> StatusDetailsItem <$> (parseJSONObject o))
-
-instance ToJSON StatusDetailsItem where
-        toJSON = toJSON . _sdiAddtional
-
--- | Used to specify extra network settings (for VM runtimes only).
---
--- /See:/ 'network' smart constructor.
-data Network = Network
-    { _nForwardedPorts :: !(Maybe [Text])
-    , _nInstanceTag    :: !(Maybe Text)
-    , _nName           :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Network' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nForwardedPorts'
---
--- * 'nInstanceTag'
---
--- * 'nName'
-network
-    :: Network
-network =
-    Network
-    { _nForwardedPorts = Nothing
-    , _nInstanceTag = Nothing
-    , _nName = Nothing
-    }
-
--- | A list of ports (or port pairs) to forward from the VM into the app
--- container.
-nForwardedPorts :: Lens' Network [Text]
-nForwardedPorts
-  = lens _nForwardedPorts
-      (\ s a -> s{_nForwardedPorts = a})
-      . _Default
-      . _Coerce
-
--- | A tag to apply to the VM instance during creation.
-nInstanceTag :: Lens' Network (Maybe Text)
-nInstanceTag
-  = lens _nInstanceTag (\ s a -> s{_nInstanceTag = a})
-
--- | The Google Compute Engine network where the VMs will be created. If not
--- specified, or empty, the network named \"default\" will be used. (The
--- short name should be specified, not the resource path.)
-nName :: Lens' Network (Maybe Text)
-nName = lens _nName (\ s a -> s{_nName = a})
-
-instance FromJSON Network where
-        parseJSON
-          = withObject "Network"
-              (\ o ->
-                 Network <$>
-                   (o .:? "forwardedPorts" .!= mempty) <*>
-                     (o .:? "instanceTag")
-                     <*> (o .:? "name"))
-
-instance ToJSON Network where
-        toJSON Network{..}
-          = object
-              (catMaybes
-                 [("forwardedPorts" .=) <$> _nForwardedPorts,
-                  ("instanceTag" .=) <$> _nInstanceTag,
-                  ("name" .=) <$> _nName])
-
--- | HTTP headers to use for all responses from these URLs.
---
--- /See:/ 'staticFilesHandlerHTTPHeaders' smart constructor.
-newtype StaticFilesHandlerHTTPHeaders = StaticFilesHandlerHTTPHeaders
-    { _sfhhttphAddtional :: HashMap Text Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'StaticFilesHandlerHTTPHeaders' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sfhhttphAddtional'
-staticFilesHandlerHTTPHeaders
-    :: HashMap Text Text -- ^ 'sfhhttphAddtional'
-    -> StaticFilesHandlerHTTPHeaders
-staticFilesHandlerHTTPHeaders pSfhhttphAddtional_ =
-    StaticFilesHandlerHTTPHeaders
-    { _sfhhttphAddtional = _Coerce # pSfhhttphAddtional_
-    }
-
-sfhhttphAddtional :: Lens' StaticFilesHandlerHTTPHeaders (HashMap Text Text)
-sfhhttphAddtional
-  = lens _sfhhttphAddtional
-      (\ s a -> s{_sfhhttphAddtional = a})
-      . _Coerce
-
-instance FromJSON StaticFilesHandlerHTTPHeaders where
-        parseJSON
-          = withObject "StaticFilesHandlerHTTPHeaders"
-              (\ o ->
-                 StaticFilesHandlerHTTPHeaders <$>
-                   (parseJSONObject o))
-
-instance ToJSON StaticFilesHandlerHTTPHeaders where
-        toJSON = toJSON . _sfhhttphAddtional
-
--- | Used to specify how many machine resources an app version needs.
---
--- /See:/ 'resources' smart constructor.
-data Resources = Resources
-    { _rMemoryGb :: !(Maybe (Textual Double))
-    , _rDiskGb   :: !(Maybe (Textual Double))
-    , _rCPU      :: !(Maybe (Textual Double))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Resources' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rMemoryGb'
---
--- * 'rDiskGb'
---
--- * 'rCPU'
-resources
-    :: Resources
-resources =
-    Resources
-    { _rMemoryGb = Nothing
-    , _rDiskGb = Nothing
-    , _rCPU = Nothing
-    }
-
--- | How much memory, in GB, an app version needs.
-rMemoryGb :: Lens' Resources (Maybe Double)
-rMemoryGb
-  = lens _rMemoryGb (\ s a -> s{_rMemoryGb = a}) .
-      mapping _Coerce
-
--- | How much disk size, in GB, an app version needs.
-rDiskGb :: Lens' Resources (Maybe Double)
-rDiskGb
-  = lens _rDiskGb (\ s a -> s{_rDiskGb = a}) .
-      mapping _Coerce
-
--- | How many CPU cores an app version needs.
-rCPU :: Lens' Resources (Maybe Double)
-rCPU
-  = lens _rCPU (\ s a -> s{_rCPU = a}) .
-      mapping _Coerce
-
-instance FromJSON Resources where
-        parseJSON
-          = withObject "Resources"
-              (\ o ->
-                 Resources <$>
-                   (o .:? "memoryGb") <*> (o .:? "diskGb") <*>
-                     (o .:? "cpu"))
-
-instance ToJSON Resources where
-        toJSON Resources{..}
-          = object
-              (catMaybes
-                 [("memoryGb" .=) <$> _rMemoryGb,
-                  ("diskGb" .=) <$> _rDiskGb, ("cpu" .=) <$> _rCPU])
-
--- | A manifest of files stored in Google Cloud Storage which should be
--- included as part of this application. All files must be readable using
--- the credentials supplied with this call.
---
--- /See:/ 'deploymentFiles' smart constructor.
-newtype DeploymentFiles = DeploymentFiles
-    { _dfAddtional :: HashMap Text FileInfo
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeploymentFiles' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dfAddtional'
-deploymentFiles
-    :: HashMap Text FileInfo -- ^ 'dfAddtional'
-    -> DeploymentFiles
-deploymentFiles pDfAddtional_ =
-    DeploymentFiles
-    { _dfAddtional = _Coerce # pDfAddtional_
-    }
-
-dfAddtional :: Lens' DeploymentFiles (HashMap Text FileInfo)
-dfAddtional
-  = lens _dfAddtional (\ s a -> s{_dfAddtional = a}) .
-      _Coerce
-
-instance FromJSON DeploymentFiles where
-        parseJSON
-          = withObject "DeploymentFiles"
-              (\ o -> DeploymentFiles <$> (parseJSONObject o))
-
-instance ToJSON DeploymentFiles where
-        toJSON = toJSON . _dfAddtional
-
--- | Target scaling by CPU usage.
---
--- /See:/ 'cpuUtilization' smart constructor.
-data CPUUtilization = CPUUtilization
-    { _cuAggregationWindowLength :: !(Maybe Text)
-    , _cuTargetUtilization       :: !(Maybe (Textual Double))
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CPUUtilization' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cuAggregationWindowLength'
---
--- * 'cuTargetUtilization'
-cpuUtilization
-    :: CPUUtilization
-cpuUtilization =
-    CPUUtilization
-    { _cuAggregationWindowLength = Nothing
-    , _cuTargetUtilization = Nothing
-    }
-
--- | The period of time over which CPU utilization is calculated.
-cuAggregationWindowLength :: Lens' CPUUtilization (Maybe Text)
-cuAggregationWindowLength
-  = lens _cuAggregationWindowLength
-      (\ s a -> s{_cuAggregationWindowLength = a})
-
--- | Target (0-1) CPU utilization ratio to maintain when scaling.
-cuTargetUtilization :: Lens' CPUUtilization (Maybe Double)
-cuTargetUtilization
-  = lens _cuTargetUtilization
-      (\ s a -> s{_cuTargetUtilization = a})
-      . mapping _Coerce
-
-instance FromJSON CPUUtilization where
-        parseJSON
-          = withObject "CPUUtilization"
-              (\ o ->
-                 CPUUtilization <$>
-                   (o .:? "aggregationWindowLength") <*>
-                     (o .:? "targetUtilization"))
-
-instance ToJSON CPUUtilization where
-        toJSON CPUUtilization{..}
-          = object
-              (catMaybes
-                 [("aggregationWindowLength" .=) <$>
-                    _cuAggregationWindowLength,
-                  ("targetUtilization" .=) <$> _cuTargetUtilization])
-
--- | Mapping from module version IDs within the module to fractional (0.000,
--- 1] allocations of traffic for that version. Each version may only be
--- specified once, but some versions in the module may not have any traffic
--- allocation. Modules that have traffic allocated in this field may not be
--- deleted until the module is deleted, or their traffic allocation is
--- removed. Allocations must sum to 1. Supports precision up to two decimal
--- places for IP-based splits and up to three decimal places for
--- cookie-based splits.
---
--- /See:/ 'trafficSplitAllocations' smart constructor.
-newtype TrafficSplitAllocations = TrafficSplitAllocations
-    { _tsaAddtional :: HashMap Text (Textual Double)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TrafficSplitAllocations' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tsaAddtional'
-trafficSplitAllocations
-    :: HashMap Text Double -- ^ 'tsaAddtional'
-    -> TrafficSplitAllocations
-trafficSplitAllocations pTsaAddtional_ =
-    TrafficSplitAllocations
-    { _tsaAddtional = _Coerce # pTsaAddtional_
-    }
-
-tsaAddtional :: Lens' TrafficSplitAllocations (HashMap Text Double)
-tsaAddtional
-  = lens _tsaAddtional (\ s a -> s{_tsaAddtional = a})
-      . _Coerce
-
-instance FromJSON TrafficSplitAllocations where
-        parseJSON
-          = withObject "TrafficSplitAllocations"
-              (\ o ->
-                 TrafficSplitAllocations <$> (parseJSONObject o))
-
-instance ToJSON TrafficSplitAllocations where
-        toJSON = toJSON . _tsaAddtional
-
--- | A module with manual scaling runs continuously, allowing you to perform
--- complex initialization and rely on the state of its memory over time.
---
--- /See:/ 'manualScaling' smart constructor.
-newtype ManualScaling = ManualScaling
-    { _msInstances :: Maybe (Textual Int32)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ManualScaling' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'msInstances'
-manualScaling
-    :: ManualScaling
-manualScaling =
-    ManualScaling
-    { _msInstances = Nothing
-    }
-
--- | The number of instances to assign to the module at the start. This
--- number can later be altered by using the [Modules
--- API](https:\/\/cloud.google.com\/appengine\/docs\/python\/modules\/functions)
--- \`set_num_instances()\` function.
-msInstances :: Lens' ManualScaling (Maybe Int32)
-msInstances
-  = lens _msInstances (\ s a -> s{_msInstances = a}) .
-      mapping _Coerce
-
-instance FromJSON ManualScaling where
-        parseJSON
-          = withObject "ManualScaling"
-              (\ o -> ManualScaling <$> (o .:? "instances"))
-
-instance ToJSON ManualScaling where
-        toJSON ManualScaling{..}
-          = object
-              (catMaybes [("instances" .=) <$> _msInstances])
-
--- | A module with basic scaling will create an instance when the application
--- receives a request. The instance will be turned down when the app
--- becomes idle. Basic scaling is ideal for work that is intermittent or
--- driven by user activity.
---
--- /See:/ 'basicScaling' smart constructor.
-data BasicScaling = BasicScaling
-    { _bsMaxInstances :: !(Maybe (Textual Int32))
-    , _bsIdleTimeout  :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'BasicScaling' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsMaxInstances'
---
--- * 'bsIdleTimeout'
-basicScaling
-    :: BasicScaling
-basicScaling =
-    BasicScaling
-    { _bsMaxInstances = Nothing
-    , _bsIdleTimeout = Nothing
-    }
-
--- | The maximum number of instances for App Engine to create for this
--- version.
-bsMaxInstances :: Lens' BasicScaling (Maybe Int32)
-bsMaxInstances
-  = lens _bsMaxInstances
-      (\ s a -> s{_bsMaxInstances = a})
-      . mapping _Coerce
-
--- | The instance will be shut down this amount of time after receiving its
--- last request.
-bsIdleTimeout :: Lens' BasicScaling (Maybe Text)
-bsIdleTimeout
-  = lens _bsIdleTimeout
-      (\ s a -> s{_bsIdleTimeout = a})
-
-instance FromJSON BasicScaling where
-        parseJSON
-          = withObject "BasicScaling"
-              (\ o ->
-                 BasicScaling <$>
-                   (o .:? "maxInstances") <*> (o .:? "idleTimeout"))
-
-instance ToJSON BasicScaling where
-        toJSON BasicScaling{..}
-          = object
-              (catMaybes
-                 [("maxInstances" .=) <$> _bsMaxInstances,
-                  ("idleTimeout" .=) <$> _bsIdleTimeout])
-
--- | A Version is a specific set of source code and configuration files
--- deployed to a module.
---
--- /See:/ 'version' smart constructor.
-data Version = Version
-    { _vCreationTime      :: !(Maybe Text)
-    , _vRuntime           :: !(Maybe Text)
-    , _vDeployer          :: !(Maybe Text)
-    , _vNobuildFilesRegex :: !(Maybe Text)
-    , _vInstanceClass     :: !(Maybe Text)
-    , _vHealthCheck       :: !(Maybe HealthCheck)
-    , _vEnv               :: !(Maybe Text)
-    , _vDefaultExpiration :: !(Maybe Text)
-    , _vAutomaticScaling  :: !(Maybe AutomaticScaling)
-    , _vErrorHandlers     :: !(Maybe [ErrorHandler])
-    , _vVM                :: !(Maybe Bool)
-    , _vHandlers          :: !(Maybe [URLMap])
-    , _vInboundServices   :: !(Maybe [Text])
-    , _vNetwork           :: !(Maybe Network)
-    , _vResources         :: !(Maybe Resources)
-    , _vName              :: !(Maybe Text)
-    , _vThreadsafe        :: !(Maybe Bool)
-    , _vBetaSettings      :: !(Maybe VersionBetaSettings)
-    , _vBasicScaling      :: !(Maybe BasicScaling)
-    , _vManualScaling     :: !(Maybe ManualScaling)
-    , _vAPIConfig         :: !(Maybe APIConfigHandler)
-    , _vId                :: !(Maybe Text)
-    , _vEnvVariables      :: !(Maybe VersionEnvVariables)
-    , _vServingStatus     :: !(Maybe Text)
-    , _vLibraries         :: !(Maybe [Library])
-    , _vDeployment        :: !(Maybe Deployment)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Version' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vCreationTime'
---
--- * 'vRuntime'
---
--- * 'vDeployer'
---
--- * 'vNobuildFilesRegex'
---
--- * 'vInstanceClass'
---
--- * 'vHealthCheck'
---
--- * 'vEnv'
---
--- * 'vDefaultExpiration'
---
--- * 'vAutomaticScaling'
---
--- * 'vErrorHandlers'
---
--- * 'vVM'
---
--- * 'vHandlers'
---
--- * 'vInboundServices'
---
--- * 'vNetwork'
---
--- * 'vResources'
---
--- * 'vName'
---
--- * 'vThreadsafe'
---
--- * 'vBetaSettings'
---
--- * 'vBasicScaling'
---
--- * 'vManualScaling'
---
--- * 'vAPIConfig'
---
--- * 'vId'
---
--- * 'vEnvVariables'
---
--- * 'vServingStatus'
---
--- * 'vLibraries'
---
--- * 'vDeployment'
-version
-    :: Version
-version =
-    Version
-    { _vCreationTime = Nothing
-    , _vRuntime = Nothing
-    , _vDeployer = Nothing
-    , _vNobuildFilesRegex = Nothing
-    , _vInstanceClass = Nothing
-    , _vHealthCheck = Nothing
-    , _vEnv = Nothing
-    , _vDefaultExpiration = Nothing
-    , _vAutomaticScaling = Nothing
-    , _vErrorHandlers = Nothing
-    , _vVM = Nothing
-    , _vHandlers = Nothing
-    , _vInboundServices = Nothing
-    , _vNetwork = Nothing
-    , _vResources = Nothing
-    , _vName = Nothing
-    , _vThreadsafe = Nothing
-    , _vBetaSettings = Nothing
-    , _vBasicScaling = Nothing
-    , _vManualScaling = Nothing
-    , _vAPIConfig = Nothing
-    , _vId = Nothing
-    , _vEnvVariables = Nothing
-    , _vServingStatus = Nothing
-    , _vLibraries = Nothing
-    , _vDeployment = Nothing
-    }
-
--- | Creation time of this version. This will be between the start and end
--- times of the operation that creates this version. \'OutputOnly
-vCreationTime :: Lens' Version (Maybe Text)
-vCreationTime
-  = lens _vCreationTime
-      (\ s a -> s{_vCreationTime = a})
-
--- | The desired runtime. Values can include python27, java7, go, etc.
-vRuntime :: Lens' Version (Maybe Text)
-vRuntime = lens _vRuntime (\ s a -> s{_vRuntime = a})
-
--- | The email address of the user who created this version. \'OutputOnly
-vDeployer :: Lens' Version (Maybe Text)
-vDeployer
-  = lens _vDeployer (\ s a -> s{_vDeployer = a})
-
--- | Go only. Files that match this pattern will not be built into the app.
--- May only be set on create requests.
-vNobuildFilesRegex :: Lens' Version (Maybe Text)
-vNobuildFilesRegex
-  = lens _vNobuildFilesRegex
-      (\ s a -> s{_vNobuildFilesRegex = a})
-
--- | The frontend instance class to use to run this app. Valid values are
--- \`[F1, F2, F4, F4_1G]\`. Default: \"F1\"
-vInstanceClass :: Lens' Version (Maybe Text)
-vInstanceClass
-  = lens _vInstanceClass
-      (\ s a -> s{_vInstanceClass = a})
-
--- | Configure health checking for the VM instances. Unhealthy VM instances
--- will be stopped and replaced with new instances. Only returned in
--- \`GET\` requests if \`view=FULL\` is set. May only be set on create
--- requests; once created, is immutable.
-vHealthCheck :: Lens' Version (Maybe HealthCheck)
-vHealthCheck
-  = lens _vHealthCheck (\ s a -> s{_vHealthCheck = a})
-
--- | The App Engine execution environment to use for this version. Default:
--- \"1\"
-vEnv :: Lens' Version (Maybe Text)
-vEnv = lens _vEnv (\ s a -> s{_vEnv = a})
-
--- | The length of time a static file served by a static file handler ought
--- to be cached by web proxies and browsers, if the handler does not
--- specify its own expiration. Only returned in \`GET\` requests if
--- \`view=FULL\` is set. May only be set on create requests; once created,
--- is immutable.
-vDefaultExpiration :: Lens' Version (Maybe Text)
-vDefaultExpiration
-  = lens _vDefaultExpiration
-      (\ s a -> s{_vDefaultExpiration = a})
-
--- | Automatic scaling is the scaling policy that App Engine has used since
--- its inception. It is based on request rate, response latencies, and
--- other application metrics.
-vAutomaticScaling :: Lens' Version (Maybe AutomaticScaling)
-vAutomaticScaling
-  = lens _vAutomaticScaling
-      (\ s a -> s{_vAutomaticScaling = a})
-
--- | Custom static error pages instead of these generic error pages, (limit
--- 10 KB\/page) Only returned in \`GET\` requests if \`view=FULL\` is set.
--- May only be set on create requests; once created, is immutable.
-vErrorHandlers :: Lens' Version [ErrorHandler]
-vErrorHandlers
-  = lens _vErrorHandlers
-      (\ s a -> s{_vErrorHandlers = a})
-      . _Default
-      . _Coerce
-
--- | Whether to deploy this app in a VM container (deprecated, use
--- \"env\":\"2\").
-vVM :: Lens' Version (Maybe Bool)
-vVM = lens _vVM (\ s a -> s{_vVM = a})
-
--- | An ordered list of URL Matching patterns that should be applied to
--- incoming requests. The first matching URL consumes the request, and
--- subsequent handlers are not attempted. Only returned in \`GET\` requests
--- if \`view=FULL\` is set. May only be set on create requests; once
--- created, is immutable.
-vHandlers :: Lens' Version [URLMap]
-vHandlers
-  = lens _vHandlers (\ s a -> s{_vHandlers = a}) .
-      _Default
-      . _Coerce
-
--- | Before an application can receive email or XMPP messages, the
--- application must be configured to enable the service.
-vInboundServices :: Lens' Version [Text]
-vInboundServices
-  = lens _vInboundServices
-      (\ s a -> s{_vInboundServices = a})
-      . _Default
-      . _Coerce
-
--- | Used to specify extra network settings (for VM runtimes only).
-vNetwork :: Lens' Version (Maybe Network)
-vNetwork = lens _vNetwork (\ s a -> s{_vNetwork = a})
-
--- | Used to specify how many machine resources an app version needs (for VM
--- runtimes only).
-vResources :: Lens' Version (Maybe Resources)
-vResources
-  = lens _vResources (\ s a -> s{_vResources = a})
-
--- | The full path to the Version resource in the API. Example:
--- \"apps\/myapp\/modules\/default\/versions\/v1\". \'OutputOnly
-vName :: Lens' Version (Maybe Text)
-vName = lens _vName (\ s a -> s{_vName = a})
-
--- | If true, multiple requests can be dispatched to the app at once.
-vThreadsafe :: Lens' Version (Maybe Bool)
-vThreadsafe
-  = lens _vThreadsafe (\ s a -> s{_vThreadsafe = a})
-
--- | Beta settings supplied to the application via metadata.
-vBetaSettings :: Lens' Version (Maybe VersionBetaSettings)
-vBetaSettings
-  = lens _vBetaSettings
-      (\ s a -> s{_vBetaSettings = a})
-
--- | A module with basic scaling will create an instance when the application
--- receives a request. The instance will be turned down when the app
--- becomes idle. Basic scaling is ideal for work that is intermittent or
--- driven by user activity.
-vBasicScaling :: Lens' Version (Maybe BasicScaling)
-vBasicScaling
-  = lens _vBasicScaling
-      (\ s a -> s{_vBasicScaling = a})
-
--- | A module with manual scaling runs continuously, allowing you to perform
--- complex initialization and rely on the state of its memory over time.
-vManualScaling :: Lens' Version (Maybe ManualScaling)
-vManualScaling
-  = lens _vManualScaling
-      (\ s a -> s{_vManualScaling = a})
-
--- | Serving configuration for Google Cloud Endpoints. Only returned in
--- \`GET\` requests if \`view=FULL\` is set. May only be set on create
--- requests; once created, is immutable.
-vAPIConfig :: Lens' Version (Maybe APIConfigHandler)
-vAPIConfig
-  = lens _vAPIConfig (\ s a -> s{_vAPIConfig = a})
-
--- | The relative name\/path of the Version within the module. Example:
--- \"v1\". Version specifiers can contain lowercase letters, digits, and
--- hyphens. It cannot begin with the prefix \`ah-\` and the names
--- \`default\` and \`latest\` are reserved and cannot be used.
-vId :: Lens' Version (Maybe Text)
-vId = lens _vId (\ s a -> s{_vId = a})
-
--- | Environment variables made available to the application. Only returned
--- in \`GET\` requests if \`view=FULL\` is set. May only be set on create
--- requests; once created, is immutable.
-vEnvVariables :: Lens' Version (Maybe VersionEnvVariables)
-vEnvVariables
-  = lens _vEnvVariables
-      (\ s a -> s{_vEnvVariables = a})
-
--- | The current serving status of this version. Only \`SERVING\` versions
--- will have instances created or billed for. If this field is unset when a
--- version is created, \`SERVING\` status will be assumed. It is an error
--- to explicitly set this field to \`SERVING_STATUS_UNSPECIFIED\`.
-vServingStatus :: Lens' Version (Maybe Text)
-vServingStatus
-  = lens _vServingStatus
-      (\ s a -> s{_vServingStatus = a})
-
--- | Configuration for Python runtime third-party libraries required by the
--- application. Only returned in \`GET\` requests if \`view=FULL\` is set.
--- May only be set on create requests; once created, is immutable.
-vLibraries :: Lens' Version [Library]
-vLibraries
-  = lens _vLibraries (\ s a -> s{_vLibraries = a}) .
-      _Default
-      . _Coerce
-
--- | Code and application artifacts that make up this version. Only returned
--- in \`GET\` requests if \`view=FULL\` is set. May only be set on create
--- requests; once created, is immutable.
-vDeployment :: Lens' Version (Maybe Deployment)
-vDeployment
-  = lens _vDeployment (\ s a -> s{_vDeployment = a})
-
-instance FromJSON Version where
-        parseJSON
-          = withObject "Version"
-              (\ o ->
-                 Version <$>
-                   (o .:? "creationTime") <*> (o .:? "runtime") <*>
-                     (o .:? "deployer")
-                     <*> (o .:? "nobuildFilesRegex")
-                     <*> (o .:? "instanceClass")
-                     <*> (o .:? "healthCheck")
-                     <*> (o .:? "env")
-                     <*> (o .:? "defaultExpiration")
-                     <*> (o .:? "automaticScaling")
-                     <*> (o .:? "errorHandlers" .!= mempty)
-                     <*> (o .:? "vm")
-                     <*> (o .:? "handlers" .!= mempty)
-                     <*> (o .:? "inboundServices" .!= mempty)
-                     <*> (o .:? "network")
-                     <*> (o .:? "resources")
-                     <*> (o .:? "name")
-                     <*> (o .:? "threadsafe")
-                     <*> (o .:? "betaSettings")
-                     <*> (o .:? "basicScaling")
-                     <*> (o .:? "manualScaling")
-                     <*> (o .:? "apiConfig")
-                     <*> (o .:? "id")
-                     <*> (o .:? "envVariables")
-                     <*> (o .:? "servingStatus")
-                     <*> (o .:? "libraries" .!= mempty)
-                     <*> (o .:? "deployment"))
-
-instance ToJSON Version where
-        toJSON Version{..}
-          = object
-              (catMaybes
-                 [("creationTime" .=) <$> _vCreationTime,
-                  ("runtime" .=) <$> _vRuntime,
-                  ("deployer" .=) <$> _vDeployer,
-                  ("nobuildFilesRegex" .=) <$> _vNobuildFilesRegex,
-                  ("instanceClass" .=) <$> _vInstanceClass,
-                  ("healthCheck" .=) <$> _vHealthCheck,
-                  ("env" .=) <$> _vEnv,
-                  ("defaultExpiration" .=) <$> _vDefaultExpiration,
-                  ("automaticScaling" .=) <$> _vAutomaticScaling,
-                  ("errorHandlers" .=) <$> _vErrorHandlers,
-                  ("vm" .=) <$> _vVM, ("handlers" .=) <$> _vHandlers,
-                  ("inboundServices" .=) <$> _vInboundServices,
-                  ("network" .=) <$> _vNetwork,
-                  ("resources" .=) <$> _vResources,
-                  ("name" .=) <$> _vName,
-                  ("threadsafe" .=) <$> _vThreadsafe,
-                  ("betaSettings" .=) <$> _vBetaSettings,
-                  ("basicScaling" .=) <$> _vBasicScaling,
-                  ("manualScaling" .=) <$> _vManualScaling,
-                  ("apiConfig" .=) <$> _vAPIConfig, ("id" .=) <$> _vId,
-                  ("envVariables" .=) <$> _vEnvVariables,
-                  ("servingStatus" .=) <$> _vServingStatus,
-                  ("libraries" .=) <$> _vLibraries,
-                  ("deployment" .=) <$> _vDeployment])
-
--- | A module is a component of an application that provides a single service
--- or configuration. A module has a collection of versions that define a
--- specific set of code used to implement the functionality of that module.
---
--- /See:/ 'module'' smart constructor.
-data Module = Module
-    { _mSplit :: !(Maybe TrafficSplit)
-    , _mName  :: !(Maybe Text)
-    , _mId    :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Module' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mSplit'
---
--- * 'mName'
---
--- * 'mId'
-module'
-    :: Module
-module' =
-    Module
-    { _mSplit = Nothing
-    , _mName = Nothing
-    , _mId = Nothing
-    }
-
--- | A mapping that defines fractional HTTP traffic diversion to different
--- versions within the module.
-mSplit :: Lens' Module (Maybe TrafficSplit)
-mSplit = lens _mSplit (\ s a -> s{_mSplit = a})
-
--- | The full path to the Module resource in the API. Example:
--- \"apps\/myapp\/modules\/default\" \'OutputOnly
-mName :: Lens' Module (Maybe Text)
-mName = lens _mName (\ s a -> s{_mName = a})
-
--- | The relative name\/path of the module within the application. Example:
--- \"default\" \'OutputOnly
-mId :: Lens' Module (Maybe Text)
-mId = lens _mId (\ s a -> s{_mId = a})
-
-instance FromJSON Module where
-        parseJSON
-          = withObject "Module"
-              (\ o ->
-                 Module <$>
-                   (o .:? "split") <*> (o .:? "name") <*> (o .:? "id"))
-
-instance ToJSON Module where
-        toJSON Module{..}
-          = object
-              (catMaybes
-                 [("split" .=) <$> _mSplit, ("name" .=) <$> _mName,
-                  ("id" .=) <$> _mId])
-
--- | Files served directly to the user for a given URL, such as images, CSS
--- stylesheets, or JavaScript source files. Static file handlers describe
--- which files in the application directory are static files, and which
--- URLs serve them.
---
--- /See:/ 'staticFilesHandler' smart constructor.
-data StaticFilesHandler = StaticFilesHandler
-    { _sfhHTTPHeaders         :: !(Maybe StaticFilesHandlerHTTPHeaders)
-    , _sfhPath                :: !(Maybe Text)
-    , _sfhRequireMatchingFile :: !(Maybe Bool)
-    , _sfhExpiration          :: !(Maybe Text)
-    , _sfhMimeType            :: !(Maybe Text)
-    , _sfhApplicationReadable :: !(Maybe Bool)
-    , _sfhUploadPathRegex     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'StaticFilesHandler' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sfhHTTPHeaders'
---
--- * 'sfhPath'
---
--- * 'sfhRequireMatchingFile'
---
--- * 'sfhExpiration'
---
--- * 'sfhMimeType'
---
--- * 'sfhApplicationReadable'
---
--- * 'sfhUploadPathRegex'
-staticFilesHandler
-    :: StaticFilesHandler
-staticFilesHandler =
-    StaticFilesHandler
-    { _sfhHTTPHeaders = Nothing
-    , _sfhPath = Nothing
-    , _sfhRequireMatchingFile = Nothing
-    , _sfhExpiration = Nothing
-    , _sfhMimeType = Nothing
-    , _sfhApplicationReadable = Nothing
-    , _sfhUploadPathRegex = Nothing
-    }
-
--- | HTTP headers to use for all responses from these URLs.
-sfhHTTPHeaders :: Lens' StaticFilesHandler (Maybe StaticFilesHandlerHTTPHeaders)
-sfhHTTPHeaders
-  = lens _sfhHTTPHeaders
-      (\ s a -> s{_sfhHTTPHeaders = a})
-
--- | The path to the static files matched by the URL pattern, from the
--- application root directory. The path can refer to text matched in
--- groupings in the URL pattern.
-sfhPath :: Lens' StaticFilesHandler (Maybe Text)
-sfhPath = lens _sfhPath (\ s a -> s{_sfhPath = a})
-
--- | If true, this [UrlMap][google.appengine.v1beta4.UrlMap] entry does not
--- match the request unless the file referenced by the handler also exists.
--- If no such file exists, processing will continue with the next
--- [UrlMap][google.appengine.v1beta4.UrlMap] that matches the requested
--- URL.
-sfhRequireMatchingFile :: Lens' StaticFilesHandler (Maybe Bool)
-sfhRequireMatchingFile
-  = lens _sfhRequireMatchingFile
-      (\ s a -> s{_sfhRequireMatchingFile = a})
-
--- | The length of time a static file served by this handler ought to be
--- cached by web proxies and browsers.
-sfhExpiration :: Lens' StaticFilesHandler (Maybe Text)
-sfhExpiration
-  = lens _sfhExpiration
-      (\ s a -> s{_sfhExpiration = a})
-
--- | If specified, all files served by this handler will be served using the
--- specified MIME type. If not specified, the MIME type for a file will be
--- derived from the file\'s filename extension.
-sfhMimeType :: Lens' StaticFilesHandler (Maybe Text)
-sfhMimeType
-  = lens _sfhMimeType (\ s a -> s{_sfhMimeType = a})
-
--- | By default, files declared in static file handlers are uploaded as
--- static data and are only served to end users, they cannot be read by an
--- application. If this field is set to true, the files are also uploaded
--- as code data so your application can read them. Both uploads are charged
--- against your code and static data storage resource quotas.
-sfhApplicationReadable :: Lens' StaticFilesHandler (Maybe Bool)
-sfhApplicationReadable
-  = lens _sfhApplicationReadable
-      (\ s a -> s{_sfhApplicationReadable = a})
-
--- | A regular expression that matches the file paths for all files that will
--- be referenced by this handler.
-sfhUploadPathRegex :: Lens' StaticFilesHandler (Maybe Text)
-sfhUploadPathRegex
-  = lens _sfhUploadPathRegex
-      (\ s a -> s{_sfhUploadPathRegex = a})
-
-instance FromJSON StaticFilesHandler where
-        parseJSON
-          = withObject "StaticFilesHandler"
-              (\ o ->
-                 StaticFilesHandler <$>
-                   (o .:? "httpHeaders") <*> (o .:? "path") <*>
-                     (o .:? "requireMatchingFile")
-                     <*> (o .:? "expiration")
-                     <*> (o .:? "mimeType")
-                     <*> (o .:? "applicationReadable")
-                     <*> (o .:? "uploadPathRegex"))
-
-instance ToJSON StaticFilesHandler where
-        toJSON StaticFilesHandler{..}
-          = object
-              (catMaybes
-                 [("httpHeaders" .=) <$> _sfhHTTPHeaders,
-                  ("path" .=) <$> _sfhPath,
-                  ("requireMatchingFile" .=) <$>
-                    _sfhRequireMatchingFile,
-                  ("expiration" .=) <$> _sfhExpiration,
-                  ("mimeType" .=) <$> _sfhMimeType,
-                  ("applicationReadable" .=) <$>
-                    _sfhApplicationReadable,
-                  ("uploadPathRegex" .=) <$> _sfhUploadPathRegex])
-
--- | A custom static error page to be served when an error occurs.
---
--- /See:/ 'errorHandler' smart constructor.
-data ErrorHandler = ErrorHandler
-    { _ehMimeType   :: !(Maybe Text)
-    , _ehErrorCode  :: !(Maybe Text)
-    , _ehStaticFile :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ErrorHandler' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ehMimeType'
---
--- * 'ehErrorCode'
---
--- * 'ehStaticFile'
-errorHandler
-    :: ErrorHandler
-errorHandler =
-    ErrorHandler
-    { _ehMimeType = Nothing
-    , _ehErrorCode = Nothing
-    , _ehStaticFile = Nothing
-    }
-
--- | MIME type of file. If unspecified, \"text\/html\" is assumed.
-ehMimeType :: Lens' ErrorHandler (Maybe Text)
-ehMimeType
-  = lens _ehMimeType (\ s a -> s{_ehMimeType = a})
-
--- | The error condition this handler applies to.
-ehErrorCode :: Lens' ErrorHandler (Maybe Text)
-ehErrorCode
-  = lens _ehErrorCode (\ s a -> s{_ehErrorCode = a})
-
--- | Static file content to be served for this error.
-ehStaticFile :: Lens' ErrorHandler (Maybe Text)
-ehStaticFile
-  = lens _ehStaticFile (\ s a -> s{_ehStaticFile = a})
-
-instance FromJSON ErrorHandler where
-        parseJSON
-          = withObject "ErrorHandler"
-              (\ o ->
-                 ErrorHandler <$>
-                   (o .:? "mimeType") <*> (o .:? "errorCode") <*>
-                     (o .:? "staticFile"))
-
-instance ToJSON ErrorHandler where
-        toJSON ErrorHandler{..}
-          = object
-              (catMaybes
-                 [("mimeType" .=) <$> _ehMimeType,
-                  ("errorCode" .=) <$> _ehErrorCode,
-                  ("staticFile" .=) <$> _ehStaticFile])
-
--- | Metadata for the given
--- [google.longrunning.Operation][google.longrunning.Operation].
---
--- /See:/ 'operationMetadata' smart constructor.
-data OperationMetadata = OperationMetadata
-    { _omInsertTime    :: !(Maybe Text)
-    , _omUser          :: !(Maybe Text)
-    , _omMethod        :: !(Maybe Text)
-    , _omEndTime       :: !(Maybe Text)
-    , _omOperationType :: !(Maybe Text)
-    , _omTarget        :: !(Maybe Text)
-    } 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:
---
--- * 'omInsertTime'
---
--- * 'omUser'
---
--- * 'omMethod'
---
--- * 'omEndTime'
---
--- * 'omOperationType'
---
--- * 'omTarget'
-operationMetadata
-    :: OperationMetadata
-operationMetadata =
-    OperationMetadata
-    { _omInsertTime = Nothing
-    , _omUser = Nothing
-    , _omMethod = Nothing
-    , _omEndTime = Nothing
-    , _omOperationType = Nothing
-    , _omTarget = Nothing
-    }
-
--- | Timestamp that this operation was received. \'OutputOnly
-omInsertTime :: Lens' OperationMetadata (Maybe Text)
-omInsertTime
-  = lens _omInsertTime (\ s a -> s{_omInsertTime = a})
-
--- | The user who requested this operation. \'OutputOnly
-omUser :: Lens' OperationMetadata (Maybe Text)
-omUser = lens _omUser (\ s a -> s{_omUser = a})
-
--- | API method name that initiated the operation. Example:
--- \"google.appengine.v1beta4.Version.CreateVersion\". \'OutputOnly
-omMethod :: Lens' OperationMetadata (Maybe Text)
-omMethod = lens _omMethod (\ s a -> s{_omMethod = a})
-
--- | Timestamp that this operation was completed. (Not present if the
--- operation is still in progress.) \'OutputOnly
-omEndTime :: Lens' OperationMetadata (Maybe Text)
-omEndTime
-  = lens _omEndTime (\ s a -> s{_omEndTime = a})
-
--- | The type of the operation (deprecated, use method field instead).
--- Example: \"create_version\". \'OutputOnly
-omOperationType :: Lens' OperationMetadata (Maybe Text)
-omOperationType
-  = lens _omOperationType
-      (\ s a -> s{_omOperationType = a})
-
--- | Resource that this operation is acting on. Example:
--- \"apps\/myapp\/modules\/default\". \'OutputOnly
-omTarget :: Lens' OperationMetadata (Maybe Text)
-omTarget = lens _omTarget (\ s a -> s{_omTarget = a})
-
-instance FromJSON OperationMetadata where
-        parseJSON
-          = withObject "OperationMetadata"
-              (\ o ->
-                 OperationMetadata <$>
-                   (o .:? "insertTime") <*> (o .:? "user") <*>
-                     (o .:? "method")
-                     <*> (o .:? "endTime")
-                     <*> (o .:? "operationType")
-                     <*> (o .:? "target"))
-
-instance ToJSON OperationMetadata where
-        toJSON OperationMetadata{..}
-          = object
-              (catMaybes
-                 [("insertTime" .=) <$> _omInsertTime,
-                  ("user" .=) <$> _omUser, ("method" .=) <$> _omMethod,
-                  ("endTime" .=) <$> _omEndTime,
-                  ("operationType" .=) <$> _omOperationType,
-                  ("target" .=) <$> _omTarget])
-
--- | A reference to a particular snapshot of the source tree used to build
--- and deploy the application.
---
--- /See:/ 'sourceReference' smart constructor.
-data SourceReference = SourceReference
-    { _srRepository :: !(Maybe Text)
-    , _srRevisionId :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'SourceReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'srRepository'
---
--- * 'srRevisionId'
-sourceReference
-    :: SourceReference
-sourceReference =
-    SourceReference
-    { _srRepository = Nothing
-    , _srRevisionId = Nothing
-    }
-
--- | Optional. A URI string identifying the repository. Example:
--- \"https:\/\/source.developers.google.com\/p\/app-123\/r\/default\"
-srRepository :: Lens' SourceReference (Maybe Text)
-srRepository
-  = lens _srRepository (\ s a -> s{_srRepository = a})
-
--- | The canonical (and persistent) identifier of the deployed revision, i.e.
--- any kind of aliases including tags or branch names are not allowed.
--- Example (git): \"2198322f89e0bb2e25021667c2ed489d1fd34e6b\"
-srRevisionId :: Lens' SourceReference (Maybe Text)
-srRevisionId
-  = lens _srRevisionId (\ s a -> s{_srRevisionId = a})
-
-instance FromJSON SourceReference where
-        parseJSON
-          = withObject "SourceReference"
-              (\ o ->
-                 SourceReference <$>
-                   (o .:? "repository") <*> (o .:? "revisionId"))
-
-instance ToJSON SourceReference where
-        toJSON SourceReference{..}
-          = object
-              (catMaybes
-                 [("repository" .=) <$> _srRepository,
-                  ("revisionId" .=) <$> _srRevisionId])
-
--- | The normal response of the operation in case of success. If the original
--- method returns no data on success, such as \`Delete\`, the response is
--- \`google.protobuf.Empty\`. If the original method is standard
--- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.
--- For other methods, the response should have the type \`XxxResponse\`,
--- where \`Xxx\` is the original method name. For example, if the original
--- method name is \`TakeSnapshot()\`, the inferred response type is
--- \`TakeSnapshotResponse\`.
---
--- /See:/ 'operationResponse' smart constructor.
-newtype OperationResponse = OperationResponse
-    { _orAddtional :: HashMap Text JSONValue
-    } 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:
---
--- * 'orAddtional'
-operationResponse
-    :: HashMap Text JSONValue -- ^ 'orAddtional'
-    -> OperationResponse
-operationResponse pOrAddtional_ =
-    OperationResponse
-    { _orAddtional = _Coerce # pOrAddtional_
-    }
-
--- | Properties of the object. Contains field \'ype with type URL.
-orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)
-orAddtional
-  = lens _orAddtional (\ s a -> s{_orAddtional = a}) .
-      _Coerce
-
-instance FromJSON OperationResponse where
-        parseJSON
-          = withObject "OperationResponse"
-              (\ o -> OperationResponse <$> (parseJSONObject o))
-
-instance ToJSON OperationResponse where
-        toJSON = toJSON . _orAddtional
-
--- | A Docker (container) image which should be used to start the
--- application.
---
--- /See:/ 'containerInfo' smart constructor.
-newtype ContainerInfo = ContainerInfo
-    { _ciImage :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ContainerInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ciImage'
-containerInfo
-    :: ContainerInfo
-containerInfo =
-    ContainerInfo
-    { _ciImage = Nothing
-    }
-
--- | Reference to a hosted container image. Must be a URI to a resource in a
--- Docker repository. Must be fully qualified, including tag or digest.
--- e.g. gcr.io\/my-project\/image:tag or gcr.io\/my-project\/image\'digest
-ciImage :: Lens' ContainerInfo (Maybe Text)
-ciImage = lens _ciImage (\ s a -> s{_ciImage = a})
-
-instance FromJSON ContainerInfo where
-        parseJSON
-          = withObject "ContainerInfo"
-              (\ o -> ContainerInfo <$> (o .:? "image"))
-
-instance ToJSON ContainerInfo where
-        toJSON ContainerInfo{..}
-          = object (catMaybes [("image" .=) <$> _ciImage])
-
--- | Code and application artifacts used to deploy a version to App Engine.
---
--- /See:/ 'deployment' smart constructor.
-data Deployment = Deployment
-    { _dContainer        :: !(Maybe ContainerInfo)
-    , _dFiles            :: !(Maybe DeploymentFiles)
-    , _dSourceReferences :: !(Maybe [SourceReference])
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Deployment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dContainer'
---
--- * 'dFiles'
---
--- * 'dSourceReferences'
-deployment
-    :: Deployment
-deployment =
-    Deployment
-    { _dContainer = Nothing
-    , _dFiles = Nothing
-    , _dSourceReferences = Nothing
-    }
-
--- | If supplied, a docker (container) image which should be used to start
--- the application. Only applicable to the \'vm\' runtime.
-dContainer :: Lens' Deployment (Maybe ContainerInfo)
-dContainer
-  = lens _dContainer (\ s a -> s{_dContainer = a})
-
--- | A manifest of files stored in Google Cloud Storage which should be
--- included as part of this application. All files must be readable using
--- the credentials supplied with this call.
-dFiles :: Lens' Deployment (Maybe DeploymentFiles)
-dFiles = lens _dFiles (\ s a -> s{_dFiles = a})
-
--- | The origin of the source code for this deployment. There can be more
--- than one source reference per Version if source code is distributed
--- among multiple repositories.
-dSourceReferences :: Lens' Deployment [SourceReference]
-dSourceReferences
-  = lens _dSourceReferences
-      (\ s a -> s{_dSourceReferences = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON Deployment where
-        parseJSON
-          = withObject "Deployment"
-              (\ o ->
-                 Deployment <$>
-                   (o .:? "container") <*> (o .:? "files") <*>
-                     (o .:? "sourceReferences" .!= mempty))
-
-instance ToJSON Deployment where
-        toJSON Deployment{..}
-          = object
-              (catMaybes
-                 [("container" .=) <$> _dContainer,
-                  ("files" .=) <$> _dFiles,
-                  ("sourceReferences" .=) <$> _dSourceReferences])
-
--- | Files served directly to the user for a given URL, such as images, CSS
--- stylesheets, or JavaScript source files. Static directory handlers make
--- it easy to serve the entire contents of a directory as static files.
---
--- /See:/ 'staticDirectoryHandler' smart constructor.
-data StaticDirectoryHandler = StaticDirectoryHandler
-    { _sdhHTTPHeaders         :: !(Maybe StaticDirectoryHandlerHTTPHeaders)
-    , _sdhRequireMatchingFile :: !(Maybe Bool)
-    , _sdhExpiration          :: !(Maybe Text)
-    , _sdhMimeType            :: !(Maybe Text)
-    , _sdhApplicationReadable :: !(Maybe Bool)
-    , _sdhDirectory           :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'StaticDirectoryHandler' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sdhHTTPHeaders'
---
--- * 'sdhRequireMatchingFile'
---
--- * 'sdhExpiration'
---
--- * 'sdhMimeType'
---
--- * 'sdhApplicationReadable'
---
--- * 'sdhDirectory'
-staticDirectoryHandler
-    :: StaticDirectoryHandler
-staticDirectoryHandler =
-    StaticDirectoryHandler
-    { _sdhHTTPHeaders = Nothing
-    , _sdhRequireMatchingFile = Nothing
-    , _sdhExpiration = Nothing
-    , _sdhMimeType = Nothing
-    , _sdhApplicationReadable = Nothing
-    , _sdhDirectory = Nothing
-    }
-
--- | HTTP headers to use for all responses from these URLs.
-sdhHTTPHeaders :: Lens' StaticDirectoryHandler (Maybe StaticDirectoryHandlerHTTPHeaders)
-sdhHTTPHeaders
-  = lens _sdhHTTPHeaders
-      (\ s a -> s{_sdhHTTPHeaders = a})
-
--- | If true, this UrlMap entry does not match the request unless the file
--- referenced by the handler also exists. If no such file exists,
--- processing will continue with the next UrlMap that matches the requested
--- URL.
-sdhRequireMatchingFile :: Lens' StaticDirectoryHandler (Maybe Bool)
-sdhRequireMatchingFile
-  = lens _sdhRequireMatchingFile
-      (\ s a -> s{_sdhRequireMatchingFile = a})
-
--- | The length of time a static file served by this handler ought to be
--- cached by web proxies and browsers.
-sdhExpiration :: Lens' StaticDirectoryHandler (Maybe Text)
-sdhExpiration
-  = lens _sdhExpiration
-      (\ s a -> s{_sdhExpiration = a})
-
--- | If specified, all files served by this handler will be served using the
--- specified MIME type. If not specified, the MIME type for a file will be
--- derived from the file\'s filename extension.
-sdhMimeType :: Lens' StaticDirectoryHandler (Maybe Text)
-sdhMimeType
-  = lens _sdhMimeType (\ s a -> s{_sdhMimeType = a})
-
--- | By default, files declared in static file handlers are uploaded as
--- static data and are only served to end users, they cannot be read by an
--- application. If this field is set to true, the files are also uploaded
--- as code data so your application can read them. Both uploads are charged
--- against your code and static data storage resource quotas.
-sdhApplicationReadable :: Lens' StaticDirectoryHandler (Maybe Bool)
-sdhApplicationReadable
-  = lens _sdhApplicationReadable
-      (\ s a -> s{_sdhApplicationReadable = a})
-
--- | The path to the directory containing the static files, from the
--- application root directory. Everything after the end of the matched url
--- pattern is appended to static_dir to form the full path to the requested
--- file.
-sdhDirectory :: Lens' StaticDirectoryHandler (Maybe Text)
-sdhDirectory
-  = lens _sdhDirectory (\ s a -> s{_sdhDirectory = a})
-
-instance FromJSON StaticDirectoryHandler where
-        parseJSON
-          = withObject "StaticDirectoryHandler"
-              (\ o ->
-                 StaticDirectoryHandler <$>
-                   (o .:? "httpHeaders") <*>
-                     (o .:? "requireMatchingFile")
-                     <*> (o .:? "expiration")
-                     <*> (o .:? "mimeType")
-                     <*> (o .:? "applicationReadable")
-                     <*> (o .:? "directory"))
-
-instance ToJSON StaticDirectoryHandler where
-        toJSON StaticDirectoryHandler{..}
-          = object
-              (catMaybes
-                 [("httpHeaders" .=) <$> _sdhHTTPHeaders,
-                  ("requireMatchingFile" .=) <$>
-                    _sdhRequireMatchingFile,
-                  ("expiration" .=) <$> _sdhExpiration,
-                  ("mimeType" .=) <$> _sdhMimeType,
-                  ("applicationReadable" .=) <$>
-                    _sdhApplicationReadable,
-                  ("directory" .=) <$> _sdhDirectory])
+-- 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)
+--
+module Network.Google.AppEngine.Types.Product where
+
+import           Network.Google.AppEngine.Types.Sum
+import           Network.Google.Prelude
+
+-- | Target scaling by network usage (for VM runtimes only).
+--
+-- /See:/ 'networkUtilization' smart constructor.
+data NetworkUtilization = NetworkUtilization'
+    { _nuTargetReceivedBytesPerSec   :: !(Maybe (Textual Int32))
+    , _nuTargetSentPacketsPerSec     :: !(Maybe (Textual Int32))
+    , _nuTargetReceivedPacketsPerSec :: !(Maybe (Textual Int32))
+    , _nuTargetSentBytesPerSec       :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'NetworkUtilization' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'nuTargetReceivedBytesPerSec'
+--
+-- * 'nuTargetSentPacketsPerSec'
+--
+-- * 'nuTargetReceivedPacketsPerSec'
+--
+-- * 'nuTargetSentBytesPerSec'
+networkUtilization
+    :: NetworkUtilization
+networkUtilization =
+    NetworkUtilization'
+    { _nuTargetReceivedBytesPerSec = Nothing
+    , _nuTargetSentPacketsPerSec = Nothing
+    , _nuTargetReceivedPacketsPerSec = Nothing
+    , _nuTargetSentBytesPerSec = Nothing
+    }
+
+-- | Target bytes per second received.
+nuTargetReceivedBytesPerSec :: Lens' NetworkUtilization (Maybe Int32)
+nuTargetReceivedBytesPerSec
+  = lens _nuTargetReceivedBytesPerSec
+      (\ s a -> s{_nuTargetReceivedBytesPerSec = a})
+      . mapping _Coerce
+
+-- | Target packets per second sent.
+nuTargetSentPacketsPerSec :: Lens' NetworkUtilization (Maybe Int32)
+nuTargetSentPacketsPerSec
+  = lens _nuTargetSentPacketsPerSec
+      (\ s a -> s{_nuTargetSentPacketsPerSec = a})
+      . mapping _Coerce
+
+-- | Target packets per second received.
+nuTargetReceivedPacketsPerSec :: Lens' NetworkUtilization (Maybe Int32)
+nuTargetReceivedPacketsPerSec
+  = lens _nuTargetReceivedPacketsPerSec
+      (\ s a -> s{_nuTargetReceivedPacketsPerSec = a})
+      . mapping _Coerce
+
+-- | Target bytes per second sent.
+nuTargetSentBytesPerSec :: Lens' NetworkUtilization (Maybe Int32)
+nuTargetSentBytesPerSec
+  = lens _nuTargetSentBytesPerSec
+      (\ s a -> s{_nuTargetSentBytesPerSec = a})
+      . mapping _Coerce
+
+instance FromJSON NetworkUtilization where
+        parseJSON
+          = withObject "NetworkUtilization"
+              (\ o ->
+                 NetworkUtilization' <$>
+                   (o .:? "targetReceivedBytesPerSec") <*>
+                     (o .:? "targetSentPacketsPerSec")
+                     <*> (o .:? "targetReceivedPacketsPerSec")
+                     <*> (o .:? "targetSentBytesPerSec"))
+
+instance ToJSON NetworkUtilization where
+        toJSON NetworkUtilization'{..}
+          = object
+              (catMaybes
+                 [("targetReceivedBytesPerSec" .=) <$>
+                    _nuTargetReceivedBytesPerSec,
+                  ("targetSentPacketsPerSec" .=) <$>
+                    _nuTargetSentPacketsPerSec,
+                  ("targetReceivedPacketsPerSec" .=) <$>
+                    _nuTargetReceivedPacketsPerSec,
+                  ("targetSentBytesPerSec" .=) <$>
+                    _nuTargetSentBytesPerSec])
+
+-- | The \`Status\` type defines a logical error model that is suitable for
+-- different programming environments, including REST APIs and RPC APIs. It
+-- is used by [gRPC](https:\/\/github.com\/grpc). The error model is
+-- designed to be: - Simple to use and understand for most users - Flexible
+-- enough to meet unexpected needs # Overview The \`Status\` message
+-- contains three pieces of data: error code, error message, and error
+-- details. The error code should be an enum value of google.rpc.Code, but
+-- it may accept additional error codes if needed. The error message should
+-- be a developer-facing English message that helps developers *understand*
+-- and *resolve* the error. If a localized user-facing error message is
+-- needed, put the localized message in the error details or localize it in
+-- the client. The optional error details may contain arbitrary information
+-- about the error. There is a predefined set of error detail types in the
+-- package \`google.rpc\` which can be used for common error conditions. #
+-- Language mapping The \`Status\` message is the logical representation of
+-- the error model, but it is not necessarily the actual wire format. When
+-- the \`Status\` message is exposed in different client libraries and
+-- different wire protocols, it can be mapped differently. For example, it
+-- will likely be mapped to some exceptions in Java, but more likely mapped
+-- to some error codes in C. # Other uses The error model and the
+-- \`Status\` message can be used in a variety of environments, either with
+-- or without APIs, to provide a consistent developer experience across
+-- different environments. Example uses of this error model include: -
+-- Partial errors. If a service needs to return partial errors to the
+-- client, it may embed the \`Status\` in the normal response to indicate
+-- the partial errors. - Workflow errors. A typical workflow has multiple
+-- steps. Each step may have a \`Status\` message for error reporting
+-- purpose. - Batch operations. If a client uses batch request and batch
+-- response, the \`Status\` message should be used directly inside batch
+-- response, one for each error sub-response. - Asynchronous operations. If
+-- an API call embeds asynchronous operation results in its response, the
+-- status of those operations should be represented directly using the
+-- \`Status\` message. - Logging. If some API errors are stored in logs,
+-- the message \`Status\` could be used directly after any stripping needed
+-- for security\/privacy reasons.
+--
+-- /See:/ 'status' smart constructor.
+data Status = Status'
+    { _sDetails :: !(Maybe [StatusDetailsItem])
+    , _sCode    :: !(Maybe (Textual Int32))
+    , _sMessage :: !(Maybe Text)
+    } 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:
+--
+-- * 'sDetails'
+--
+-- * 'sCode'
+--
+-- * 'sMessage'
+status
+    :: Status
+status =
+    Status'
+    { _sDetails = Nothing
+    , _sCode = Nothing
+    , _sMessage = Nothing
+    }
+
+-- | A list of messages that carry the error details. There will be a common
+-- set of message types for APIs to use.
+sDetails :: Lens' Status [StatusDetailsItem]
+sDetails
+  = lens _sDetails (\ s a -> s{_sDetails = a}) .
+      _Default
+      . _Coerce
+
+-- | The status code, which should be an enum value of google.rpc.Code.
+sCode :: Lens' Status (Maybe Int32)
+sCode
+  = lens _sCode (\ s a -> s{_sCode = a}) .
+      mapping _Coerce
+
+-- | A developer-facing error message, which should be in English. Any
+-- user-facing error message should be localized and sent in the
+-- google.rpc.Status.details field, or localized by the client.
+sMessage :: Lens' Status (Maybe Text)
+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})
+
+instance FromJSON Status where
+        parseJSON
+          = withObject "Status"
+              (\ o ->
+                 Status' <$>
+                   (o .:? "details" .!= mempty) <*> (o .:? "code") <*>
+                     (o .:? "message"))
+
+instance ToJSON Status where
+        toJSON Status'{..}
+          = object
+              (catMaybes
+                 [("details" .=) <$> _sDetails,
+                  ("code" .=) <$> _sCode,
+                  ("message" .=) <$> _sMessage])
+
+-- | Service-specific metadata associated with the operation. It typically
+-- contains progress information and common metadata such as create time.
+-- Some services might not provide such metadata. Any method that returns a
+-- long-running operation should document the metadata type, if any.
+--
+-- /See:/ 'operationSchema' smart constructor.
+newtype OperationSchema = OperationSchema'
+    { _osAddtional :: HashMap Text JSONValue
+    } 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:
+--
+-- * 'osAddtional'
+operationSchema
+    :: HashMap Text JSONValue -- ^ 'osAddtional'
+    -> OperationSchema
+operationSchema pOsAddtional_ =
+    OperationSchema'
+    { _osAddtional = _Coerce # pOsAddtional_
+    }
+
+-- | Properties of the object. Contains field \'ype with type URL.
+osAddtional :: Lens' OperationSchema (HashMap Text JSONValue)
+osAddtional
+  = lens _osAddtional (\ s a -> s{_osAddtional = a}) .
+      _Coerce
+
+instance FromJSON OperationSchema where
+        parseJSON
+          = withObject "OperationSchema"
+              (\ o -> OperationSchema' <$> (parseJSONObject o))
+
+instance ToJSON OperationSchema where
+        toJSON = toJSON . _osAddtional
+
+-- | Configuration for traffic splitting for versions within a single
+-- service. Traffic splitting allows traffic directed to the service to be
+-- assigned to one of several versions in a fractional way, enabling
+-- experiments and canarying new builds, for example.
+--
+-- /See:/ 'trafficSplit' smart constructor.
+data TrafficSplit = TrafficSplit'
+    { _tsShardBy     :: !(Maybe Text)
+    , _tsAllocations :: !(Maybe TrafficSplitAllocations)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TrafficSplit' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tsShardBy'
+--
+-- * 'tsAllocations'
+trafficSplit
+    :: TrafficSplit
+trafficSplit =
+    TrafficSplit'
+    { _tsShardBy = Nothing
+    , _tsAllocations = Nothing
+    }
+
+-- | Which mechanism should be used as a selector when choosing a version to
+-- send a request to. The traffic selection algorithm will be stable for
+-- either type until allocations are changed.
+tsShardBy :: Lens' TrafficSplit (Maybe Text)
+tsShardBy
+  = lens _tsShardBy (\ s a -> s{_tsShardBy = a})
+
+-- | Mapping from service version IDs within the service to fractional
+-- (0.000, 1] allocations of traffic for that version. Each version may
+-- only be specified once, but some versions in the service may not have
+-- any traffic allocation. Services that have traffic allocated in this
+-- field may not be deleted until the service is deleted, or their traffic
+-- allocation is removed. Allocations must sum to 1. Supports precision up
+-- to two decimal places for IP-based splits and up to three decimal places
+-- for cookie-based splits.
+tsAllocations :: Lens' TrafficSplit (Maybe TrafficSplitAllocations)
+tsAllocations
+  = lens _tsAllocations
+      (\ s a -> s{_tsAllocations = a})
+
+instance FromJSON TrafficSplit where
+        parseJSON
+          = withObject "TrafficSplit"
+              (\ o ->
+                 TrafficSplit' <$>
+                   (o .:? "shardBy") <*> (o .:? "allocations"))
+
+instance ToJSON TrafficSplit where
+        toJSON TrafficSplit'{..}
+          = object
+              (catMaybes
+                 [("shardBy" .=) <$> _tsShardBy,
+                  ("allocations" .=) <$> _tsAllocations])
+
+-- | Executes a script to handle the request that matches the URL pattern.
+--
+-- /See:/ 'scriptHandler' smart constructor.
+newtype ScriptHandler = ScriptHandler'
+    { _shScriptPath :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ScriptHandler' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'shScriptPath'
+scriptHandler
+    :: ScriptHandler
+scriptHandler =
+    ScriptHandler'
+    { _shScriptPath = Nothing
+    }
+
+-- | Specifies the path to the script from the application root directory.
+shScriptPath :: Lens' ScriptHandler (Maybe Text)
+shScriptPath
+  = lens _shScriptPath (\ s a -> s{_shScriptPath = a})
+
+instance FromJSON ScriptHandler where
+        parseJSON
+          = withObject "ScriptHandler"
+              (\ o -> ScriptHandler' <$> (o .:? "scriptPath"))
+
+instance ToJSON ScriptHandler where
+        toJSON ScriptHandler'{..}
+          = object
+              (catMaybes [("scriptPath" .=) <$> _shScriptPath])
+
+-- | Response message for \`Services.ListServices\`.
+--
+-- /See:/ 'listServicesResponse' smart constructor.
+data ListServicesResponse = ListServicesResponse'
+    { _lsrNextPageToken :: !(Maybe Text)
+    , _lsrServices      :: !(Maybe [Service])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListServicesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lsrNextPageToken'
+--
+-- * 'lsrServices'
+listServicesResponse
+    :: ListServicesResponse
+listServicesResponse =
+    ListServicesResponse'
+    { _lsrNextPageToken = Nothing
+    , _lsrServices = Nothing
+    }
+
+-- | Continuation token for fetching the next page of results.
+lsrNextPageToken :: Lens' ListServicesResponse (Maybe Text)
+lsrNextPageToken
+  = lens _lsrNextPageToken
+      (\ s a -> s{_lsrNextPageToken = a})
+
+-- | The services belonging to the requested application.
+lsrServices :: Lens' ListServicesResponse [Service]
+lsrServices
+  = lens _lsrServices (\ s a -> s{_lsrServices = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListServicesResponse where
+        parseJSON
+          = withObject "ListServicesResponse"
+              (\ o ->
+                 ListServicesResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "services" .!= mempty))
+
+instance ToJSON ListServicesResponse where
+        toJSON ListServicesResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lsrNextPageToken,
+                  ("services" .=) <$> _lsrServices])
+
+-- | A URL pattern and description of how it should be handled. App Engine
+-- can handle URLs by executing application code, or by serving static
+-- files uploaded with the code, such as images, CSS or JavaScript.
+--
+-- /See:/ 'urlMap' smart constructor.
+data URLMap = URLMap'
+    { _umScript                   :: !(Maybe ScriptHandler)
+    , _umSecurityLevel            :: !(Maybe Text)
+    , _umAPIEndpoint              :: !(Maybe APIEndpointHandler)
+    , _umURLRegex                 :: !(Maybe Text)
+    , _umRedirectHTTPResponseCode :: !(Maybe Text)
+    , _umAuthFailAction           :: !(Maybe Text)
+    , _umStaticFiles              :: !(Maybe StaticFilesHandler)
+    , _umLogin                    :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'URLMap' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'umScript'
+--
+-- * 'umSecurityLevel'
+--
+-- * 'umAPIEndpoint'
+--
+-- * 'umURLRegex'
+--
+-- * 'umRedirectHTTPResponseCode'
+--
+-- * 'umAuthFailAction'
+--
+-- * 'umStaticFiles'
+--
+-- * 'umLogin'
+urlMap
+    :: URLMap
+urlMap =
+    URLMap'
+    { _umScript = Nothing
+    , _umSecurityLevel = Nothing
+    , _umAPIEndpoint = Nothing
+    , _umURLRegex = Nothing
+    , _umRedirectHTTPResponseCode = Nothing
+    , _umAuthFailAction = Nothing
+    , _umStaticFiles = Nothing
+    , _umLogin = Nothing
+    }
+
+-- | Executes a script to handle the request that matches the URL pattern.
+umScript :: Lens' URLMap (Maybe ScriptHandler)
+umScript = lens _umScript (\ s a -> s{_umScript = a})
+
+-- | Configures whether security (HTTPS) should be enforced for this URL.
+umSecurityLevel :: Lens' URLMap (Maybe Text)
+umSecurityLevel
+  = lens _umSecurityLevel
+      (\ s a -> s{_umSecurityLevel = a})
+
+-- | Use API Endpoints to handle requests.
+umAPIEndpoint :: Lens' URLMap (Maybe APIEndpointHandler)
+umAPIEndpoint
+  = lens _umAPIEndpoint
+      (\ s a -> s{_umAPIEndpoint = a})
+
+-- | A URL prefix. This value uses regular expression syntax (and so regexp
+-- special characters must be escaped), but it should not contain
+-- groupings. All URLs that begin with this prefix are handled by this
+-- handler, using the portion of the URL after the prefix as part of the
+-- file path. This is always required.
+umURLRegex :: Lens' URLMap (Maybe Text)
+umURLRegex
+  = lens _umURLRegex (\ s a -> s{_umURLRegex = a})
+
+-- | \`30x\` code to use when performing redirects for the \`secure\` field.
+-- A \`302\` is used by default.
+umRedirectHTTPResponseCode :: Lens' URLMap (Maybe Text)
+umRedirectHTTPResponseCode
+  = lens _umRedirectHTTPResponseCode
+      (\ s a -> s{_umRedirectHTTPResponseCode = a})
+
+-- | For users not logged in, how to handle access to resources with required
+-- login. Defaults to \"redirect\".
+umAuthFailAction :: Lens' URLMap (Maybe Text)
+umAuthFailAction
+  = lens _umAuthFailAction
+      (\ s a -> s{_umAuthFailAction = a})
+
+-- | Returns the contents of a file, such as an image, as the response.
+umStaticFiles :: Lens' URLMap (Maybe StaticFilesHandler)
+umStaticFiles
+  = lens _umStaticFiles
+      (\ s a -> s{_umStaticFiles = a})
+
+-- | What level of login is required to access this resource.
+umLogin :: Lens' URLMap (Maybe Text)
+umLogin = lens _umLogin (\ s a -> s{_umLogin = a})
+
+instance FromJSON URLMap where
+        parseJSON
+          = withObject "URLMap"
+              (\ o ->
+                 URLMap' <$>
+                   (o .:? "script") <*> (o .:? "securityLevel") <*>
+                     (o .:? "apiEndpoint")
+                     <*> (o .:? "urlRegex")
+                     <*> (o .:? "redirectHttpResponseCode")
+                     <*> (o .:? "authFailAction")
+                     <*> (o .:? "staticFiles")
+                     <*> (o .:? "login"))
+
+instance ToJSON URLMap where
+        toJSON URLMap'{..}
+          = object
+              (catMaybes
+                 [("script" .=) <$> _umScript,
+                  ("securityLevel" .=) <$> _umSecurityLevel,
+                  ("apiEndpoint" .=) <$> _umAPIEndpoint,
+                  ("urlRegex" .=) <$> _umURLRegex,
+                  ("redirectHttpResponseCode" .=) <$>
+                    _umRedirectHTTPResponseCode,
+                  ("authFailAction" .=) <$> _umAuthFailAction,
+                  ("staticFiles" .=) <$> _umStaticFiles,
+                  ("login" .=) <$> _umLogin])
+
+-- | A Python runtime third-party library required by the application.
+--
+-- /See:/ 'library' smart constructor.
+data Library = Library'
+    { _lName    :: !(Maybe Text)
+    , _lVersion :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Library' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lName'
+--
+-- * 'lVersion'
+library
+    :: Library
+library =
+    Library'
+    { _lName = Nothing
+    , _lVersion = Nothing
+    }
+
+-- | The name of the library, e.g. \"PIL\" or \"django\".
+lName :: Lens' Library (Maybe Text)
+lName = lens _lName (\ s a -> s{_lName = a})
+
+-- | The version of the library to select, or \"latest\".
+lVersion :: Lens' Library (Maybe Text)
+lVersion = lens _lVersion (\ s a -> s{_lVersion = a})
+
+instance FromJSON Library where
+        parseJSON
+          = withObject "Library"
+              (\ o ->
+                 Library' <$> (o .:? "name") <*> (o .:? "version"))
+
+instance ToJSON Library where
+        toJSON Library'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _lName,
+                  ("version" .=) <$> _lVersion])
+
+-- | Target scaling by disk usage (for VM runtimes only).
+--
+-- /See:/ 'diskUtilization' smart constructor.
+data DiskUtilization = DiskUtilization'
+    { _duTargetWriteOpsPerSec   :: !(Maybe (Textual Int32))
+    , _duTargetReadOpsPerSec    :: !(Maybe (Textual Int32))
+    , _duTargetWriteBytesPerSec :: !(Maybe (Textual Int32))
+    , _duTargetReadBytesPerSec  :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DiskUtilization' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'duTargetWriteOpsPerSec'
+--
+-- * 'duTargetReadOpsPerSec'
+--
+-- * 'duTargetWriteBytesPerSec'
+--
+-- * 'duTargetReadBytesPerSec'
+diskUtilization
+    :: DiskUtilization
+diskUtilization =
+    DiskUtilization'
+    { _duTargetWriteOpsPerSec = Nothing
+    , _duTargetReadOpsPerSec = Nothing
+    , _duTargetWriteBytesPerSec = Nothing
+    , _duTargetReadBytesPerSec = Nothing
+    }
+
+-- | Target ops per second written.
+duTargetWriteOpsPerSec :: Lens' DiskUtilization (Maybe Int32)
+duTargetWriteOpsPerSec
+  = lens _duTargetWriteOpsPerSec
+      (\ s a -> s{_duTargetWriteOpsPerSec = a})
+      . mapping _Coerce
+
+-- | Target ops per second read.
+duTargetReadOpsPerSec :: Lens' DiskUtilization (Maybe Int32)
+duTargetReadOpsPerSec
+  = lens _duTargetReadOpsPerSec
+      (\ s a -> s{_duTargetReadOpsPerSec = a})
+      . mapping _Coerce
+
+-- | Target bytes per second written.
+duTargetWriteBytesPerSec :: Lens' DiskUtilization (Maybe Int32)
+duTargetWriteBytesPerSec
+  = lens _duTargetWriteBytesPerSec
+      (\ s a -> s{_duTargetWriteBytesPerSec = a})
+      . mapping _Coerce
+
+-- | Target bytes per second read.
+duTargetReadBytesPerSec :: Lens' DiskUtilization (Maybe Int32)
+duTargetReadBytesPerSec
+  = lens _duTargetReadBytesPerSec
+      (\ s a -> s{_duTargetReadBytesPerSec = a})
+      . mapping _Coerce
+
+instance FromJSON DiskUtilization where
+        parseJSON
+          = withObject "DiskUtilization"
+              (\ o ->
+                 DiskUtilization' <$>
+                   (o .:? "targetWriteOpsPerSec") <*>
+                     (o .:? "targetReadOpsPerSec")
+                     <*> (o .:? "targetWriteBytesPerSec")
+                     <*> (o .:? "targetReadBytesPerSec"))
+
+instance ToJSON DiskUtilization where
+        toJSON DiskUtilization'{..}
+          = object
+              (catMaybes
+                 [("targetWriteOpsPerSec" .=) <$>
+                    _duTargetWriteOpsPerSec,
+                  ("targetReadOpsPerSec" .=) <$>
+                    _duTargetReadOpsPerSec,
+                  ("targetWriteBytesPerSec" .=) <$>
+                    _duTargetWriteBytesPerSec,
+                  ("targetReadBytesPerSec" .=) <$>
+                    _duTargetReadBytesPerSec])
+
+-- | The response message for Operations.ListOperations.
+--
+-- /See:/ 'listOperationsResponse' smart constructor.
+data ListOperationsResponse = ListOperationsResponse'
+    { _lorNextPageToken :: !(Maybe Text)
+    , _lorOperations    :: !(Maybe [Operation])
+    } 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:
+--
+-- * 'lorNextPageToken'
+--
+-- * 'lorOperations'
+listOperationsResponse
+    :: ListOperationsResponse
+listOperationsResponse =
+    ListOperationsResponse'
+    { _lorNextPageToken = Nothing
+    , _lorOperations = Nothing
+    }
+
+-- | The standard List next-page token.
+lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)
+lorNextPageToken
+  = lens _lorNextPageToken
+      (\ s a -> s{_lorNextPageToken = a})
+
+-- | A list of operations that matches the specified filter in the request.
+lorOperations :: Lens' ListOperationsResponse [Operation]
+lorOperations
+  = lens _lorOperations
+      (\ s a -> s{_lorOperations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListOperationsResponse where
+        parseJSON
+          = withObject "ListOperationsResponse"
+              (\ o ->
+                 ListOperationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "operations" .!= mempty))
+
+instance ToJSON ListOperationsResponse where
+        toJSON ListOperationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lorNextPageToken,
+                  ("operations" .=) <$> _lorOperations])
+
+-- | Configure health checking for the VM instances. Unhealthy VM instances
+-- will be killed and replaced with new instances.
+--
+-- /See:/ 'healthCheck' smart constructor.
+data HealthCheck = HealthCheck'
+    { _hcHealthyThreshold   :: !(Maybe (Textual Word32))
+    , _hcDisableHealthCheck :: !(Maybe Bool)
+    , _hcCheckInterval      :: !(Maybe Text)
+    , _hcRestartThreshold   :: !(Maybe (Textual Word32))
+    , _hcHost               :: !(Maybe Text)
+    , _hcTimeout            :: !(Maybe Text)
+    , _hcUnhealthyThreshold :: !(Maybe (Textual Word32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'HealthCheck' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'hcHealthyThreshold'
+--
+-- * 'hcDisableHealthCheck'
+--
+-- * 'hcCheckInterval'
+--
+-- * 'hcRestartThreshold'
+--
+-- * 'hcHost'
+--
+-- * 'hcTimeout'
+--
+-- * 'hcUnhealthyThreshold'
+healthCheck
+    :: HealthCheck
+healthCheck =
+    HealthCheck'
+    { _hcHealthyThreshold = Nothing
+    , _hcDisableHealthCheck = Nothing
+    , _hcCheckInterval = Nothing
+    , _hcRestartThreshold = Nothing
+    , _hcHost = Nothing
+    , _hcTimeout = Nothing
+    , _hcUnhealthyThreshold = Nothing
+    }
+
+-- | The number of consecutive successful health checks before receiving
+-- traffic.
+hcHealthyThreshold :: Lens' HealthCheck (Maybe Word32)
+hcHealthyThreshold
+  = lens _hcHealthyThreshold
+      (\ s a -> s{_hcHealthyThreshold = a})
+      . mapping _Coerce
+
+-- | Whether to explicitly disable health checks for this instance.
+hcDisableHealthCheck :: Lens' HealthCheck (Maybe Bool)
+hcDisableHealthCheck
+  = lens _hcDisableHealthCheck
+      (\ s a -> s{_hcDisableHealthCheck = a})
+
+-- | The interval between health checks.
+hcCheckInterval :: Lens' HealthCheck (Maybe Text)
+hcCheckInterval
+  = lens _hcCheckInterval
+      (\ s a -> s{_hcCheckInterval = a})
+
+-- | The number of consecutive failed health checks before an instance is
+-- restarted.
+hcRestartThreshold :: Lens' HealthCheck (Maybe Word32)
+hcRestartThreshold
+  = lens _hcRestartThreshold
+      (\ s a -> s{_hcRestartThreshold = a})
+      . mapping _Coerce
+
+-- | The host header to send when performing an HTTP health check (e.g.
+-- myapp.appspot.com)
+hcHost :: Lens' HealthCheck (Maybe Text)
+hcHost = lens _hcHost (\ s a -> s{_hcHost = a})
+
+-- | The amount of time before the health check is considered failed.
+hcTimeout :: Lens' HealthCheck (Maybe Text)
+hcTimeout
+  = lens _hcTimeout (\ s a -> s{_hcTimeout = a})
+
+-- | The number of consecutive failed health checks before removing traffic.
+hcUnhealthyThreshold :: Lens' HealthCheck (Maybe Word32)
+hcUnhealthyThreshold
+  = lens _hcUnhealthyThreshold
+      (\ s a -> s{_hcUnhealthyThreshold = a})
+      . mapping _Coerce
+
+instance FromJSON HealthCheck where
+        parseJSON
+          = withObject "HealthCheck"
+              (\ o ->
+                 HealthCheck' <$>
+                   (o .:? "healthyThreshold") <*>
+                     (o .:? "disableHealthCheck")
+                     <*> (o .:? "checkInterval")
+                     <*> (o .:? "restartThreshold")
+                     <*> (o .:? "host")
+                     <*> (o .:? "timeout")
+                     <*> (o .:? "unhealthyThreshold"))
+
+instance ToJSON HealthCheck where
+        toJSON HealthCheck'{..}
+          = object
+              (catMaybes
+                 [("healthyThreshold" .=) <$> _hcHealthyThreshold,
+                  ("disableHealthCheck" .=) <$> _hcDisableHealthCheck,
+                  ("checkInterval" .=) <$> _hcCheckInterval,
+                  ("restartThreshold" .=) <$> _hcRestartThreshold,
+                  ("host" .=) <$> _hcHost,
+                  ("timeout" .=) <$> _hcTimeout,
+                  ("unhealthyThreshold" .=) <$> _hcUnhealthyThreshold])
+
+-- | API Serving configuration for Cloud Endpoints.
+--
+-- /See:/ 'apiConfigHandler' smart constructor.
+data APIConfigHandler = APIConfigHandler'
+    { _achScript         :: !(Maybe Text)
+    , _achSecurityLevel  :: !(Maybe Text)
+    , _achURL            :: !(Maybe Text)
+    , _achAuthFailAction :: !(Maybe Text)
+    , _achLogin          :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'APIConfigHandler' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'achScript'
+--
+-- * 'achSecurityLevel'
+--
+-- * 'achURL'
+--
+-- * 'achAuthFailAction'
+--
+-- * 'achLogin'
+apiConfigHandler
+    :: APIConfigHandler
+apiConfigHandler =
+    APIConfigHandler'
+    { _achScript = Nothing
+    , _achSecurityLevel = Nothing
+    , _achURL = Nothing
+    , _achAuthFailAction = Nothing
+    , _achLogin = Nothing
+    }
+
+-- | Specifies the path to the script from the application root directory.
+achScript :: Lens' APIConfigHandler (Maybe Text)
+achScript
+  = lens _achScript (\ s a -> s{_achScript = a})
+
+-- | Configures whether security (HTTPS) should be enforced for this URL.
+achSecurityLevel :: Lens' APIConfigHandler (Maybe Text)
+achSecurityLevel
+  = lens _achSecurityLevel
+      (\ s a -> s{_achSecurityLevel = a})
+
+-- | URL to serve the endpoint at.
+achURL :: Lens' APIConfigHandler (Maybe Text)
+achURL = lens _achURL (\ s a -> s{_achURL = a})
+
+-- | For users not logged in, how to handle access to resources with required
+-- login. Defaults to \"redirect\".
+achAuthFailAction :: Lens' APIConfigHandler (Maybe Text)
+achAuthFailAction
+  = lens _achAuthFailAction
+      (\ s a -> s{_achAuthFailAction = a})
+
+-- | What level of login is required to access this resource. Default is
+-- \"optional\".
+achLogin :: Lens' APIConfigHandler (Maybe Text)
+achLogin = lens _achLogin (\ s a -> s{_achLogin = a})
+
+instance FromJSON APIConfigHandler where
+        parseJSON
+          = withObject "APIConfigHandler"
+              (\ o ->
+                 APIConfigHandler' <$>
+                   (o .:? "script") <*> (o .:? "securityLevel") <*>
+                     (o .:? "url")
+                     <*> (o .:? "authFailAction")
+                     <*> (o .:? "login"))
+
+instance ToJSON APIConfigHandler where
+        toJSON APIConfigHandler'{..}
+          = object
+              (catMaybes
+                 [("script" .=) <$> _achScript,
+                  ("securityLevel" .=) <$> _achSecurityLevel,
+                  ("url" .=) <$> _achURL,
+                  ("authFailAction" .=) <$> _achAuthFailAction,
+                  ("login" .=) <$> _achLogin])
+
+-- | Environment variables made available to the application. Only returned
+-- in \`GET\` requests if \`view=FULL\` is set. May only be set on create
+-- requests; once created, is immutable.
+--
+-- /See:/ 'versionEnvVariables' smart constructor.
+newtype VersionEnvVariables = VersionEnvVariables'
+    { _vevAddtional :: HashMap Text Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VersionEnvVariables' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vevAddtional'
+versionEnvVariables
+    :: HashMap Text Text -- ^ 'vevAddtional'
+    -> VersionEnvVariables
+versionEnvVariables pVevAddtional_ =
+    VersionEnvVariables'
+    { _vevAddtional = _Coerce # pVevAddtional_
+    }
+
+vevAddtional :: Lens' VersionEnvVariables (HashMap Text Text)
+vevAddtional
+  = lens _vevAddtional (\ s a -> s{_vevAddtional = a})
+      . _Coerce
+
+instance FromJSON VersionEnvVariables where
+        parseJSON
+          = withObject "VersionEnvVariables"
+              (\ o -> VersionEnvVariables' <$> (parseJSONObject o))
+
+instance ToJSON VersionEnvVariables where
+        toJSON = toJSON . _vevAddtional
+
+-- | An Application contains the top-level configuration of an App Engine
+-- application.
+--
+-- /See:/ 'application' smart constructor.
+data Application = Application'
+    { _aDefaultHostname         :: !(Maybe Text)
+    , _aDefaultCookieExpiration :: !(Maybe Text)
+    , _aLocation                :: !(Maybe Text)
+    , _aAuthDomain              :: !(Maybe Text)
+    , _aCodeBucket              :: !(Maybe Text)
+    , _aName                    :: !(Maybe Text)
+    , _aDispatchRules           :: !(Maybe [URLDispatchRule])
+    , _aDefaultBucket           :: !(Maybe Text)
+    , _aId                      :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Application' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aDefaultHostname'
+--
+-- * 'aDefaultCookieExpiration'
+--
+-- * 'aLocation'
+--
+-- * 'aAuthDomain'
+--
+-- * 'aCodeBucket'
+--
+-- * 'aName'
+--
+-- * 'aDispatchRules'
+--
+-- * 'aDefaultBucket'
+--
+-- * 'aId'
+application
+    :: Application
+application =
+    Application'
+    { _aDefaultHostname = Nothing
+    , _aDefaultCookieExpiration = Nothing
+    , _aLocation = Nothing
+    , _aAuthDomain = Nothing
+    , _aCodeBucket = Nothing
+    , _aName = Nothing
+    , _aDispatchRules = Nothing
+    , _aDefaultBucket = Nothing
+    , _aId = Nothing
+    }
+
+-- | The hostname used to reach the application, as resolved by App Engine.
+-- \'OutputOnly
+aDefaultHostname :: Lens' Application (Maybe Text)
+aDefaultHostname
+  = lens _aDefaultHostname
+      (\ s a -> s{_aDefaultHostname = a})
+
+-- | Determines the cookie expiration policy for the application.
+-- \'OutputOnly
+aDefaultCookieExpiration :: Lens' Application (Maybe Text)
+aDefaultCookieExpiration
+  = lens _aDefaultCookieExpiration
+      (\ s a -> s{_aDefaultCookieExpiration = a})
+
+-- | The location from which the application will be run. Application
+-- instances will run out of data centers in the chosen location and all of
+-- the application\'s End User Content will be stored at rest. The default
+-- is \"us-central\". Choices are: \"us-central\" - Central US
+-- \"europe-west\" - Western Europe \"us-east1\" - Eastern US
+aLocation :: Lens' Application (Maybe Text)
+aLocation
+  = lens _aLocation (\ s a -> s{_aLocation = a})
+
+-- | If set, only users from the specified Google Apps authentication domain
+-- may access the application. If not set, any Google Account may access
+-- the application.
+aAuthDomain :: Lens' Application (Maybe Text)
+aAuthDomain
+  = lens _aAuthDomain (\ s a -> s{_aAuthDomain = a})
+
+-- | A Google Cloud Storage bucket which can be used for storing files
+-- associated with an application. This bucket is associated with the
+-- application and can be used by the gcloud deployment commands.
+-- \'OutputOnly
+aCodeBucket :: Lens' Application (Maybe Text)
+aCodeBucket
+  = lens _aCodeBucket (\ s a -> s{_aCodeBucket = a})
+
+-- | The full path to the application in the API. Example: \"apps\/myapp\".
+-- \'OutputOnly
+aName :: Lens' Application (Maybe Text)
+aName = lens _aName (\ s a -> s{_aName = a})
+
+-- | HTTP path dispatch rules for requests to the app that do not explicitly
+-- target a service or version. The rules are order-dependent. \'OutputOnly
+aDispatchRules :: Lens' Application [URLDispatchRule]
+aDispatchRules
+  = lens _aDispatchRules
+      (\ s a -> s{_aDispatchRules = a})
+      . _Default
+      . _Coerce
+
+-- | A Google Cloud Storage bucket which can be used by the application to
+-- store content. \'OutputOnly
+aDefaultBucket :: Lens' Application (Maybe Text)
+aDefaultBucket
+  = lens _aDefaultBucket
+      (\ s a -> s{_aDefaultBucket = a})
+
+-- | The relative name\/path of the application. Example: \"myapp\".
+aId :: Lens' Application (Maybe Text)
+aId = lens _aId (\ s a -> s{_aId = a})
+
+instance FromJSON Application where
+        parseJSON
+          = withObject "Application"
+              (\ o ->
+                 Application' <$>
+                   (o .:? "defaultHostname") <*>
+                     (o .:? "defaultCookieExpiration")
+                     <*> (o .:? "location")
+                     <*> (o .:? "authDomain")
+                     <*> (o .:? "codeBucket")
+                     <*> (o .:? "name")
+                     <*> (o .:? "dispatchRules" .!= mempty)
+                     <*> (o .:? "defaultBucket")
+                     <*> (o .:? "id"))
+
+instance ToJSON Application where
+        toJSON Application'{..}
+          = object
+              (catMaybes
+                 [("defaultHostname" .=) <$> _aDefaultHostname,
+                  ("defaultCookieExpiration" .=) <$>
+                    _aDefaultCookieExpiration,
+                  ("location" .=) <$> _aLocation,
+                  ("authDomain" .=) <$> _aAuthDomain,
+                  ("codeBucket" .=) <$> _aCodeBucket,
+                  ("name" .=) <$> _aName,
+                  ("dispatchRules" .=) <$> _aDispatchRules,
+                  ("defaultBucket" .=) <$> _aDefaultBucket,
+                  ("id" .=) <$> _aId])
+
+-- | Beta settings supplied to the application via metadata.
+--
+-- /See:/ 'versionBetaSettings' smart constructor.
+newtype VersionBetaSettings = VersionBetaSettings'
+    { _vbsAddtional :: HashMap Text Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VersionBetaSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vbsAddtional'
+versionBetaSettings
+    :: HashMap Text Text -- ^ 'vbsAddtional'
+    -> VersionBetaSettings
+versionBetaSettings pVbsAddtional_ =
+    VersionBetaSettings'
+    { _vbsAddtional = _Coerce # pVbsAddtional_
+    }
+
+vbsAddtional :: Lens' VersionBetaSettings (HashMap Text Text)
+vbsAddtional
+  = lens _vbsAddtional (\ s a -> s{_vbsAddtional = a})
+      . _Coerce
+
+instance FromJSON VersionBetaSettings where
+        parseJSON
+          = withObject "VersionBetaSettings"
+              (\ o -> VersionBetaSettings' <$> (parseJSONObject o))
+
+instance ToJSON VersionBetaSettings where
+        toJSON = toJSON . _vbsAddtional
+
+-- | A service is a logical component of an application that can share state
+-- and communicate in a secure fashion with other services. For example, an
+-- application that handles customer requests might include separate
+-- services to handle other tasks such as API requests from mobile devices
+-- or backend data analysis. Each service has a collection of versions that
+-- define a specific set of code used to implement the functionality of
+-- that service.
+--
+-- /See:/ 'service' smart constructor.
+data Service = Service'
+    { _sSplit :: !(Maybe TrafficSplit)
+    , _sName  :: !(Maybe Text)
+    , _sId    :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Service' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sSplit'
+--
+-- * 'sName'
+--
+-- * 'sId'
+service
+    :: Service
+service =
+    Service'
+    { _sSplit = Nothing
+    , _sName = Nothing
+    , _sId = Nothing
+    }
+
+-- | A mapping that defines fractional HTTP traffic diversion to different
+-- versions within the service.
+sSplit :: Lens' Service (Maybe TrafficSplit)
+sSplit = lens _sSplit (\ s a -> s{_sSplit = a})
+
+-- | The full path to the Service resource in the API. Example:
+-- \"apps\/myapp\/services\/default\" \'OutputOnly
+sName :: Lens' Service (Maybe Text)
+sName = lens _sName (\ s a -> s{_sName = a})
+
+-- | The relative name\/path of the service within the application. Example:
+-- \"default\" \'OutputOnly
+sId :: Lens' Service (Maybe Text)
+sId = lens _sId (\ s a -> s{_sId = a})
+
+instance FromJSON Service where
+        parseJSON
+          = withObject "Service"
+              (\ o ->
+                 Service' <$>
+                   (o .:? "split") <*> (o .:? "name") <*> (o .:? "id"))
+
+instance ToJSON Service where
+        toJSON Service'{..}
+          = object
+              (catMaybes
+                 [("split" .=) <$> _sSplit, ("name" .=) <$> _sName,
+                  ("id" .=) <$> _sId])
+
+-- | This resource represents a long-running operation that is the result of
+-- a network API call.
+--
+-- /See:/ 'operation' smart constructor.
+data Operation = Operation'
+    { _oDone     :: !(Maybe Bool)
+    , _oError    :: !(Maybe Status)
+    , _oResponse :: !(Maybe OperationResponse)
+    , _oName     :: !(Maybe Text)
+    , _oMetadata :: !(Maybe OperationSchema)
+    } 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:
+--
+-- * 'oDone'
+--
+-- * 'oError'
+--
+-- * 'oResponse'
+--
+-- * 'oName'
+--
+-- * 'oMetadata'
+operation
+    :: Operation
+operation =
+    Operation'
+    { _oDone = Nothing
+    , _oError = Nothing
+    , _oResponse = Nothing
+    , _oName = Nothing
+    , _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.
+oDone :: Lens' Operation (Maybe Bool)
+oDone = lens _oDone (\ s a -> s{_oDone = a})
+
+-- | The error result of the operation in case of failure.
+oError :: Lens' Operation (Maybe Status)
+oError = lens _oError (\ s a -> s{_oError = a})
+
+-- | The normal response of the operation in case of success. If the original
+-- method returns no data on success, such as \`Delete\`, the response is
+-- \`google.protobuf.Empty\`. If the original method is standard
+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.
+-- For other methods, the response should have the type \`XxxResponse\`,
+-- where \`Xxx\` is the original method name. For example, if the original
+-- method name is \`TakeSnapshot()\`, the inferred response type is
+-- \`TakeSnapshotResponse\`.
+oResponse :: Lens' Operation (Maybe OperationResponse)
+oResponse
+  = lens _oResponse (\ s a -> s{_oResponse = a})
+
+-- | The server-assigned name, which is only unique within the same service
+-- that originally returns it. If you use the default HTTP mapping, the
+-- \`name\` should have the format of \`operations\/some\/unique\/name\`.
+oName :: Lens' Operation (Maybe Text)
+oName = lens _oName (\ s a -> s{_oName = a})
+
+-- | Service-specific metadata associated with the operation. It typically
+-- contains progress information and common metadata such as create time.
+-- Some services might not provide such metadata. Any method that returns a
+-- long-running operation should document the metadata type, if any.
+oMetadata :: Lens' Operation (Maybe OperationSchema)
+oMetadata
+  = lens _oMetadata (\ s a -> s{_oMetadata = a})
+
+instance FromJSON Operation where
+        parseJSON
+          = withObject "Operation"
+              (\ o ->
+                 Operation' <$>
+                   (o .:? "done") <*> (o .:? "error") <*>
+                     (o .:? "response")
+                     <*> (o .:? "name")
+                     <*> (o .:? "metadata"))
+
+instance ToJSON Operation where
+        toJSON Operation'{..}
+          = object
+              (catMaybes
+                 [("done" .=) <$> _oDone, ("error" .=) <$> _oError,
+                  ("response" .=) <$> _oResponse,
+                  ("name" .=) <$> _oName,
+                  ("metadata" .=) <$> _oMetadata])
+
+-- | Rules to match an HTTP request and dispatch that request to a service.
+--
+-- /See:/ 'urlDispatchRule' smart constructor.
+data URLDispatchRule = URLDispatchRule'
+    { _udrPath    :: !(Maybe Text)
+    , _udrService :: !(Maybe Text)
+    , _udrDomain  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'URLDispatchRule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'udrPath'
+--
+-- * 'udrService'
+--
+-- * 'udrDomain'
+urlDispatchRule
+    :: URLDispatchRule
+urlDispatchRule =
+    URLDispatchRule'
+    { _udrPath = Nothing
+    , _udrService = Nothing
+    , _udrDomain = Nothing
+    }
+
+-- | The pathname within the host. This must start with a \'\/\'. A single
+-- \'*\' (glob) can be included at the end of the path. The sum of the
+-- lengths of the domain and path may not exceed 100 characters.
+udrPath :: Lens' URLDispatchRule (Maybe Text)
+udrPath = lens _udrPath (\ s a -> s{_udrPath = a})
+
+-- | The resource id of a Service in this application that should service the
+-- matched request. The Service must already exist. Example: \"default\".
+udrService :: Lens' URLDispatchRule (Maybe Text)
+udrService
+  = lens _udrService (\ s a -> s{_udrService = a})
+
+-- | The domain name to match on. Supports \'*\' (glob) wildcarding on the
+-- left-hand side of a \'.\'. If empty, all domains will be matched (the
+-- same as \'*\').
+udrDomain :: Lens' URLDispatchRule (Maybe Text)
+udrDomain
+  = lens _udrDomain (\ s a -> s{_udrDomain = a})
+
+instance FromJSON URLDispatchRule where
+        parseJSON
+          = withObject "URLDispatchRule"
+              (\ o ->
+                 URLDispatchRule' <$>
+                   (o .:? "path") <*> (o .:? "service") <*>
+                     (o .:? "domain"))
+
+instance ToJSON URLDispatchRule where
+        toJSON URLDispatchRule'{..}
+          = object
+              (catMaybes
+                 [("path" .=) <$> _udrPath,
+                  ("service" .=) <$> _udrService,
+                  ("domain" .=) <$> _udrDomain])
+
+-- | Response message for \`Versions.ListVersions\`.
+--
+-- /See:/ 'listVersionsResponse' smart constructor.
+data ListVersionsResponse = ListVersionsResponse'
+    { _lvrNextPageToken :: !(Maybe Text)
+    , _lvrVersions      :: !(Maybe [Version])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListVersionsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lvrNextPageToken'
+--
+-- * 'lvrVersions'
+listVersionsResponse
+    :: ListVersionsResponse
+listVersionsResponse =
+    ListVersionsResponse'
+    { _lvrNextPageToken = Nothing
+    , _lvrVersions = Nothing
+    }
+
+-- | Continuation token for fetching the next page of results.
+lvrNextPageToken :: Lens' ListVersionsResponse (Maybe Text)
+lvrNextPageToken
+  = lens _lvrNextPageToken
+      (\ s a -> s{_lvrNextPageToken = a})
+
+-- | The versions belonging to the requested application service.
+lvrVersions :: Lens' ListVersionsResponse [Version]
+lvrVersions
+  = lens _lvrVersions (\ s a -> s{_lvrVersions = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListVersionsResponse where
+        parseJSON
+          = withObject "ListVersionsResponse"
+              (\ o ->
+                 ListVersionsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "versions" .!= mempty))
+
+instance ToJSON ListVersionsResponse where
+        toJSON ListVersionsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lvrNextPageToken,
+                  ("versions" .=) <$> _lvrVersions])
+
+-- | A single source file which is part of the application to be deployed.
+--
+-- /See:/ 'fileInfo' smart constructor.
+data FileInfo = FileInfo'
+    { _fiSha1Sum   :: !(Maybe Text)
+    , _fiMimeType  :: !(Maybe Text)
+    , _fiSourceURL :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FileInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fiSha1Sum'
+--
+-- * 'fiMimeType'
+--
+-- * 'fiSourceURL'
+fileInfo
+    :: FileInfo
+fileInfo =
+    FileInfo'
+    { _fiSha1Sum = Nothing
+    , _fiMimeType = Nothing
+    , _fiSourceURL = Nothing
+    }
+
+-- | The SHA1 (160 bits) hash of the file in hex.
+fiSha1Sum :: Lens' FileInfo (Maybe Text)
+fiSha1Sum
+  = lens _fiSha1Sum (\ s a -> s{_fiSha1Sum = a})
+
+-- | The MIME type of the file; if unspecified, the value from Google Cloud
+-- Storage will be used.
+fiMimeType :: Lens' FileInfo (Maybe Text)
+fiMimeType
+  = lens _fiMimeType (\ s a -> s{_fiMimeType = a})
+
+-- | The URL source to use to fetch this file. Must be a URL to a resource in
+-- Google Cloud Storage in the form
+-- \'http(s):\/\/storage.googleapis.com\/\\\/\\\'.
+fiSourceURL :: Lens' FileInfo (Maybe Text)
+fiSourceURL
+  = lens _fiSourceURL (\ s a -> s{_fiSourceURL = a})
+
+instance FromJSON FileInfo where
+        parseJSON
+          = withObject "FileInfo"
+              (\ o ->
+                 FileInfo' <$>
+                   (o .:? "sha1Sum") <*> (o .:? "mimeType") <*>
+                     (o .:? "sourceUrl"))
+
+instance ToJSON FileInfo where
+        toJSON FileInfo'{..}
+          = object
+              (catMaybes
+                 [("sha1Sum" .=) <$> _fiSha1Sum,
+                  ("mimeType" .=) <$> _fiMimeType,
+                  ("sourceUrl" .=) <$> _fiSourceURL])
+
+-- | Automatic scaling is the scaling policy that App Engine has used since
+-- its inception. It is based on request rate, response latencies, and
+-- other application metrics.
+--
+-- /See:/ 'automaticScaling' smart constructor.
+data AutomaticScaling = AutomaticScaling'
+    { _asNetworkUtilization    :: !(Maybe NetworkUtilization)
+    , _asMaxTotalInstances     :: !(Maybe (Textual Int32))
+    , _asMinIdleInstances      :: !(Maybe (Textual Int32))
+    , _asDiskUtilization       :: !(Maybe DiskUtilization)
+    , _asMinPendingLatency     :: !(Maybe Text)
+    , _asCPUUtilization        :: !(Maybe CPUUtilization)
+    , _asMaxIdleInstances      :: !(Maybe (Textual Int32))
+    , _asMinTotalInstances     :: !(Maybe (Textual Int32))
+    , _asMaxConcurrentRequests :: !(Maybe (Textual Int32))
+    , _asCoolDownPeriod        :: !(Maybe Text)
+    , _asRequestUtilization    :: !(Maybe RequestUtilization)
+    , _asMaxPendingLatency     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AutomaticScaling' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asNetworkUtilization'
+--
+-- * 'asMaxTotalInstances'
+--
+-- * 'asMinIdleInstances'
+--
+-- * 'asDiskUtilization'
+--
+-- * 'asMinPendingLatency'
+--
+-- * 'asCPUUtilization'
+--
+-- * 'asMaxIdleInstances'
+--
+-- * 'asMinTotalInstances'
+--
+-- * 'asMaxConcurrentRequests'
+--
+-- * 'asCoolDownPeriod'
+--
+-- * 'asRequestUtilization'
+--
+-- * 'asMaxPendingLatency'
+automaticScaling
+    :: AutomaticScaling
+automaticScaling =
+    AutomaticScaling'
+    { _asNetworkUtilization = Nothing
+    , _asMaxTotalInstances = Nothing
+    , _asMinIdleInstances = Nothing
+    , _asDiskUtilization = Nothing
+    , _asMinPendingLatency = Nothing
+    , _asCPUUtilization = Nothing
+    , _asMaxIdleInstances = Nothing
+    , _asMinTotalInstances = Nothing
+    , _asMaxConcurrentRequests = Nothing
+    , _asCoolDownPeriod = Nothing
+    , _asRequestUtilization = Nothing
+    , _asMaxPendingLatency = Nothing
+    }
+
+-- | Target scaling by network usage.
+asNetworkUtilization :: Lens' AutomaticScaling (Maybe NetworkUtilization)
+asNetworkUtilization
+  = lens _asNetworkUtilization
+      (\ s a -> s{_asNetworkUtilization = a})
+
+-- | Max number of instances that App Engine should start to handle requests.
+asMaxTotalInstances :: Lens' AutomaticScaling (Maybe Int32)
+asMaxTotalInstances
+  = lens _asMaxTotalInstances
+      (\ s a -> s{_asMaxTotalInstances = a})
+      . mapping _Coerce
+
+-- | The minimum number of idle instances that App Engine should maintain for
+-- this version. Only applies to the default version of a service, since
+-- other versions are not expected to receive significant traffic.
+asMinIdleInstances :: Lens' AutomaticScaling (Maybe Int32)
+asMinIdleInstances
+  = lens _asMinIdleInstances
+      (\ s a -> s{_asMinIdleInstances = a})
+      . mapping _Coerce
+
+-- | Target scaling by disk usage.
+asDiskUtilization :: Lens' AutomaticScaling (Maybe DiskUtilization)
+asDiskUtilization
+  = lens _asDiskUtilization
+      (\ s a -> s{_asDiskUtilization = a})
+
+-- | The minimum amount of time that App Engine should allow a request to
+-- wait in the pending queue before starting a new instance to handle it.
+asMinPendingLatency :: Lens' AutomaticScaling (Maybe Text)
+asMinPendingLatency
+  = lens _asMinPendingLatency
+      (\ s a -> s{_asMinPendingLatency = a})
+
+-- | Target scaling by CPU usage.
+asCPUUtilization :: Lens' AutomaticScaling (Maybe CPUUtilization)
+asCPUUtilization
+  = lens _asCPUUtilization
+      (\ s a -> s{_asCPUUtilization = a})
+
+-- | The maximum number of idle instances that App Engine should maintain for
+-- this version.
+asMaxIdleInstances :: Lens' AutomaticScaling (Maybe Int32)
+asMaxIdleInstances
+  = lens _asMaxIdleInstances
+      (\ s a -> s{_asMaxIdleInstances = a})
+      . mapping _Coerce
+
+-- | Minimum number of instances that App Engine should maintain.
+asMinTotalInstances :: Lens' AutomaticScaling (Maybe Int32)
+asMinTotalInstances
+  = lens _asMinTotalInstances
+      (\ s a -> s{_asMinTotalInstances = a})
+      . mapping _Coerce
+
+-- | The number of concurrent requests an automatic scaling instance can
+-- accept before the scheduler spawns a new instance. Default value is
+-- chosen based on the runtime.
+asMaxConcurrentRequests :: Lens' AutomaticScaling (Maybe Int32)
+asMaxConcurrentRequests
+  = lens _asMaxConcurrentRequests
+      (\ s a -> s{_asMaxConcurrentRequests = a})
+      . mapping _Coerce
+
+-- | The amount of time that the
+-- [Autoscaler](https:\/\/cloud.google.com\/compute\/docs\/autoscaler\/)
+-- should wait between changes to the number of virtual machines. Applies
+-- only to the VM runtime.
+asCoolDownPeriod :: Lens' AutomaticScaling (Maybe Text)
+asCoolDownPeriod
+  = lens _asCoolDownPeriod
+      (\ s a -> s{_asCoolDownPeriod = a})
+
+-- | Target scaling by request utilization.
+asRequestUtilization :: Lens' AutomaticScaling (Maybe RequestUtilization)
+asRequestUtilization
+  = lens _asRequestUtilization
+      (\ s a -> s{_asRequestUtilization = a})
+
+-- | The maximum amount of time that App Engine should allow a request to
+-- wait in the pending queue before starting a new instance to handle it.
+asMaxPendingLatency :: Lens' AutomaticScaling (Maybe Text)
+asMaxPendingLatency
+  = lens _asMaxPendingLatency
+      (\ s a -> s{_asMaxPendingLatency = a})
+
+instance FromJSON AutomaticScaling where
+        parseJSON
+          = withObject "AutomaticScaling"
+              (\ o ->
+                 AutomaticScaling' <$>
+                   (o .:? "networkUtilization") <*>
+                     (o .:? "maxTotalInstances")
+                     <*> (o .:? "minIdleInstances")
+                     <*> (o .:? "diskUtilization")
+                     <*> (o .:? "minPendingLatency")
+                     <*> (o .:? "cpuUtilization")
+                     <*> (o .:? "maxIdleInstances")
+                     <*> (o .:? "minTotalInstances")
+                     <*> (o .:? "maxConcurrentRequests")
+                     <*> (o .:? "coolDownPeriod")
+                     <*> (o .:? "requestUtilization")
+                     <*> (o .:? "maxPendingLatency"))
+
+instance ToJSON AutomaticScaling where
+        toJSON AutomaticScaling'{..}
+          = object
+              (catMaybes
+                 [("networkUtilization" .=) <$> _asNetworkUtilization,
+                  ("maxTotalInstances" .=) <$> _asMaxTotalInstances,
+                  ("minIdleInstances" .=) <$> _asMinIdleInstances,
+                  ("diskUtilization" .=) <$> _asDiskUtilization,
+                  ("minPendingLatency" .=) <$> _asMinPendingLatency,
+                  ("cpuUtilization" .=) <$> _asCPUUtilization,
+                  ("maxIdleInstances" .=) <$> _asMaxIdleInstances,
+                  ("minTotalInstances" .=) <$> _asMinTotalInstances,
+                  ("maxConcurrentRequests" .=) <$>
+                    _asMaxConcurrentRequests,
+                  ("coolDownPeriod" .=) <$> _asCoolDownPeriod,
+                  ("requestUtilization" .=) <$> _asRequestUtilization,
+                  ("maxPendingLatency" .=) <$> _asMaxPendingLatency])
+
+-- | Metadata for the given google.longrunning.Operation.
+--
+-- /See:/ 'operationMetadataV1Beta5' smart constructor.
+data OperationMetadataV1Beta5 = OperationMetadataV1Beta5'
+    { _omvbInsertTime :: !(Maybe Text)
+    , _omvbUser       :: !(Maybe Text)
+    , _omvbMethod     :: !(Maybe Text)
+    , _omvbEndTime    :: !(Maybe Text)
+    , _omvbTarget     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationMetadataV1Beta5' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'omvbInsertTime'
+--
+-- * 'omvbUser'
+--
+-- * 'omvbMethod'
+--
+-- * 'omvbEndTime'
+--
+-- * 'omvbTarget'
+operationMetadataV1Beta5
+    :: OperationMetadataV1Beta5
+operationMetadataV1Beta5 =
+    OperationMetadataV1Beta5'
+    { _omvbInsertTime = Nothing
+    , _omvbUser = Nothing
+    , _omvbMethod = Nothing
+    , _omvbEndTime = Nothing
+    , _omvbTarget = Nothing
+    }
+
+-- | Timestamp that this operation was received. \'OutputOnly
+omvbInsertTime :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+omvbInsertTime
+  = lens _omvbInsertTime
+      (\ s a -> s{_omvbInsertTime = a})
+
+-- | The user who requested this operation. \'OutputOnly
+omvbUser :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+omvbUser = lens _omvbUser (\ s a -> s{_omvbUser = a})
+
+-- | API method name that initiated the operation. Example:
+-- \"google.appengine.v1beta5.Version.CreateVersion\". \'OutputOnly
+omvbMethod :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+omvbMethod
+  = lens _omvbMethod (\ s a -> s{_omvbMethod = a})
+
+-- | Timestamp that this operation was completed. (Not present if the
+-- operation is still in progress.) \'OutputOnly
+omvbEndTime :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+omvbEndTime
+  = lens _omvbEndTime (\ s a -> s{_omvbEndTime = a})
+
+-- | Resource that this operation is acting on. Example:
+-- \"apps\/myapp\/services\/default\". \'OutputOnly
+omvbTarget :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+omvbTarget
+  = lens _omvbTarget (\ s a -> s{_omvbTarget = a})
+
+instance FromJSON OperationMetadataV1Beta5 where
+        parseJSON
+          = withObject "OperationMetadataV1Beta5"
+              (\ o ->
+                 OperationMetadataV1Beta5' <$>
+                   (o .:? "insertTime") <*> (o .:? "user") <*>
+                     (o .:? "method")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "target"))
+
+instance ToJSON OperationMetadataV1Beta5 where
+        toJSON OperationMetadataV1Beta5'{..}
+          = object
+              (catMaybes
+                 [("insertTime" .=) <$> _omvbInsertTime,
+                  ("user" .=) <$> _omvbUser,
+                  ("method" .=) <$> _omvbMethod,
+                  ("endTime" .=) <$> _omvbEndTime,
+                  ("target" .=) <$> _omvbTarget])
+
+-- | Use Google Cloud Endpoints to handle requests.
+--
+-- /See:/ 'apiEndpointHandler' smart constructor.
+newtype APIEndpointHandler = APIEndpointHandler'
+    { _aehScriptPath :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'APIEndpointHandler' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aehScriptPath'
+apiEndpointHandler
+    :: APIEndpointHandler
+apiEndpointHandler =
+    APIEndpointHandler'
+    { _aehScriptPath = Nothing
+    }
+
+-- | Specifies the path to the script from the application root directory.
+aehScriptPath :: Lens' APIEndpointHandler (Maybe Text)
+aehScriptPath
+  = lens _aehScriptPath
+      (\ s a -> s{_aehScriptPath = a})
+
+instance FromJSON APIEndpointHandler where
+        parseJSON
+          = withObject "APIEndpointHandler"
+              (\ o -> APIEndpointHandler' <$> (o .:? "scriptPath"))
+
+instance ToJSON APIEndpointHandler where
+        toJSON APIEndpointHandler'{..}
+          = object
+              (catMaybes [("scriptPath" .=) <$> _aehScriptPath])
+
+--
+-- /See:/ 'statusDetailsItem' smart constructor.
+newtype StatusDetailsItem = StatusDetailsItem'
+    { _sdiAddtional :: HashMap Text JSONValue
+    } 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:
+--
+-- * 'sdiAddtional'
+statusDetailsItem
+    :: HashMap Text JSONValue -- ^ 'sdiAddtional'
+    -> StatusDetailsItem
+statusDetailsItem pSdiAddtional_ =
+    StatusDetailsItem'
+    { _sdiAddtional = _Coerce # pSdiAddtional_
+    }
+
+-- | Properties of the object. Contains field \'ype with type URL.
+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)
+sdiAddtional
+  = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})
+      . _Coerce
+
+instance FromJSON StatusDetailsItem where
+        parseJSON
+          = withObject "StatusDetailsItem"
+              (\ o -> StatusDetailsItem' <$> (parseJSONObject o))
+
+instance ToJSON StatusDetailsItem where
+        toJSON = toJSON . _sdiAddtional
+
+-- | Used to specify extra network settings (for VM runtimes only).
+--
+-- /See:/ 'network' smart constructor.
+data Network = Network'
+    { _nForwardedPorts :: !(Maybe [Text])
+    , _nInstanceTag    :: !(Maybe Text)
+    , _nName           :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Network' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'nForwardedPorts'
+--
+-- * 'nInstanceTag'
+--
+-- * 'nName'
+network
+    :: Network
+network =
+    Network'
+    { _nForwardedPorts = Nothing
+    , _nInstanceTag = Nothing
+    , _nName = Nothing
+    }
+
+-- | A list of ports (or port pairs) to forward from the VM into the app
+-- container.
+nForwardedPorts :: Lens' Network [Text]
+nForwardedPorts
+  = lens _nForwardedPorts
+      (\ s a -> s{_nForwardedPorts = a})
+      . _Default
+      . _Coerce
+
+-- | A tag to apply to the VM instance during creation.
+nInstanceTag :: Lens' Network (Maybe Text)
+nInstanceTag
+  = lens _nInstanceTag (\ s a -> s{_nInstanceTag = a})
+
+-- | The Google Compute Engine network where the VMs will be created. If not
+-- specified, or empty, the network named \"default\" will be used. (The
+-- short name should be specified, not the resource path.)
+nName :: Lens' Network (Maybe Text)
+nName = lens _nName (\ s a -> s{_nName = a})
+
+instance FromJSON Network where
+        parseJSON
+          = withObject "Network"
+              (\ o ->
+                 Network' <$>
+                   (o .:? "forwardedPorts" .!= mempty) <*>
+                     (o .:? "instanceTag")
+                     <*> (o .:? "name"))
+
+instance ToJSON Network where
+        toJSON Network'{..}
+          = object
+              (catMaybes
+                 [("forwardedPorts" .=) <$> _nForwardedPorts,
+                  ("instanceTag" .=) <$> _nInstanceTag,
+                  ("name" .=) <$> _nName])
+
+-- | HTTP headers to use for all responses from these URLs.
+--
+-- /See:/ 'staticFilesHandlerHTTPHeaders' smart constructor.
+newtype StaticFilesHandlerHTTPHeaders = StaticFilesHandlerHTTPHeaders'
+    { _sfhhttphAddtional :: HashMap Text Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StaticFilesHandlerHTTPHeaders' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sfhhttphAddtional'
+staticFilesHandlerHTTPHeaders
+    :: HashMap Text Text -- ^ 'sfhhttphAddtional'
+    -> StaticFilesHandlerHTTPHeaders
+staticFilesHandlerHTTPHeaders pSfhhttphAddtional_ =
+    StaticFilesHandlerHTTPHeaders'
+    { _sfhhttphAddtional = _Coerce # pSfhhttphAddtional_
+    }
+
+sfhhttphAddtional :: Lens' StaticFilesHandlerHTTPHeaders (HashMap Text Text)
+sfhhttphAddtional
+  = lens _sfhhttphAddtional
+      (\ s a -> s{_sfhhttphAddtional = a})
+      . _Coerce
+
+instance FromJSON StaticFilesHandlerHTTPHeaders where
+        parseJSON
+          = withObject "StaticFilesHandlerHTTPHeaders"
+              (\ o ->
+                 StaticFilesHandlerHTTPHeaders' <$>
+                   (parseJSONObject o))
+
+instance ToJSON StaticFilesHandlerHTTPHeaders where
+        toJSON = toJSON . _sfhhttphAddtional
+
+-- | Used to specify how many machine resources an app version needs.
+--
+-- /See:/ 'resources' smart constructor.
+data Resources = Resources'
+    { _rMemoryGb :: !(Maybe (Textual Double))
+    , _rDiskGb   :: !(Maybe (Textual Double))
+    , _rCPU      :: !(Maybe (Textual Double))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Resources' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rMemoryGb'
+--
+-- * 'rDiskGb'
+--
+-- * 'rCPU'
+resources
+    :: Resources
+resources =
+    Resources'
+    { _rMemoryGb = Nothing
+    , _rDiskGb = Nothing
+    , _rCPU = Nothing
+    }
+
+-- | How much memory, in GB, an app version needs.
+rMemoryGb :: Lens' Resources (Maybe Double)
+rMemoryGb
+  = lens _rMemoryGb (\ s a -> s{_rMemoryGb = a}) .
+      mapping _Coerce
+
+-- | How much disk size, in GB, an app version needs.
+rDiskGb :: Lens' Resources (Maybe Double)
+rDiskGb
+  = lens _rDiskGb (\ s a -> s{_rDiskGb = a}) .
+      mapping _Coerce
+
+-- | How many CPU cores an app version needs.
+rCPU :: Lens' Resources (Maybe Double)
+rCPU
+  = lens _rCPU (\ s a -> s{_rCPU = a}) .
+      mapping _Coerce
+
+instance FromJSON Resources where
+        parseJSON
+          = withObject "Resources"
+              (\ o ->
+                 Resources' <$>
+                   (o .:? "memoryGb") <*> (o .:? "diskGb") <*>
+                     (o .:? "cpu"))
+
+instance ToJSON Resources where
+        toJSON Resources'{..}
+          = object
+              (catMaybes
+                 [("memoryGb" .=) <$> _rMemoryGb,
+                  ("diskGb" .=) <$> _rDiskGb, ("cpu" .=) <$> _rCPU])
+
+-- | A manifest of files stored in Google Cloud Storage which should be
+-- included as part of this application. All files must be readable using
+-- the credentials supplied with this call.
+--
+-- /See:/ 'deploymentFiles' smart constructor.
+newtype DeploymentFiles = DeploymentFiles'
+    { _dfAddtional :: HashMap Text FileInfo
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeploymentFiles' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfAddtional'
+deploymentFiles
+    :: HashMap Text FileInfo -- ^ 'dfAddtional'
+    -> DeploymentFiles
+deploymentFiles pDfAddtional_ =
+    DeploymentFiles'
+    { _dfAddtional = _Coerce # pDfAddtional_
+    }
+
+dfAddtional :: Lens' DeploymentFiles (HashMap Text FileInfo)
+dfAddtional
+  = lens _dfAddtional (\ s a -> s{_dfAddtional = a}) .
+      _Coerce
+
+instance FromJSON DeploymentFiles where
+        parseJSON
+          = withObject "DeploymentFiles"
+              (\ o -> DeploymentFiles' <$> (parseJSONObject o))
+
+instance ToJSON DeploymentFiles where
+        toJSON = toJSON . _dfAddtional
+
+-- | Target scaling by CPU usage.
+--
+-- /See:/ 'cpuUtilization' smart constructor.
+data CPUUtilization = CPUUtilization'
+    { _cuAggregationWindowLength :: !(Maybe Text)
+    , _cuTargetUtilization       :: !(Maybe (Textual Double))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CPUUtilization' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cuAggregationWindowLength'
+--
+-- * 'cuTargetUtilization'
+cpuUtilization
+    :: CPUUtilization
+cpuUtilization =
+    CPUUtilization'
+    { _cuAggregationWindowLength = Nothing
+    , _cuTargetUtilization = Nothing
+    }
+
+-- | The period of time over which CPU utilization is calculated.
+cuAggregationWindowLength :: Lens' CPUUtilization (Maybe Text)
+cuAggregationWindowLength
+  = lens _cuAggregationWindowLength
+      (\ s a -> s{_cuAggregationWindowLength = a})
+
+-- | Target (0-1) CPU utilization ratio to maintain when scaling.
+cuTargetUtilization :: Lens' CPUUtilization (Maybe Double)
+cuTargetUtilization
+  = lens _cuTargetUtilization
+      (\ s a -> s{_cuTargetUtilization = a})
+      . mapping _Coerce
+
+instance FromJSON CPUUtilization where
+        parseJSON
+          = withObject "CPUUtilization"
+              (\ o ->
+                 CPUUtilization' <$>
+                   (o .:? "aggregationWindowLength") <*>
+                     (o .:? "targetUtilization"))
+
+instance ToJSON CPUUtilization where
+        toJSON CPUUtilization'{..}
+          = object
+              (catMaybes
+                 [("aggregationWindowLength" .=) <$>
+                    _cuAggregationWindowLength,
+                  ("targetUtilization" .=) <$> _cuTargetUtilization])
+
+-- | Mapping from service version IDs within the service to fractional
+-- (0.000, 1] allocations of traffic for that version. Each version may
+-- only be specified once, but some versions in the service may not have
+-- any traffic allocation. Services that have traffic allocated in this
+-- field may not be deleted until the service is deleted, or their traffic
+-- allocation is removed. Allocations must sum to 1. Supports precision up
+-- to two decimal places for IP-based splits and up to three decimal places
+-- for cookie-based splits.
+--
+-- /See:/ 'trafficSplitAllocations' smart constructor.
+newtype TrafficSplitAllocations = TrafficSplitAllocations'
+    { _tsaAddtional :: HashMap Text (Textual Double)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TrafficSplitAllocations' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tsaAddtional'
+trafficSplitAllocations
+    :: HashMap Text Double -- ^ 'tsaAddtional'
+    -> TrafficSplitAllocations
+trafficSplitAllocations pTsaAddtional_ =
+    TrafficSplitAllocations'
+    { _tsaAddtional = _Coerce # pTsaAddtional_
+    }
+
+tsaAddtional :: Lens' TrafficSplitAllocations (HashMap Text Double)
+tsaAddtional
+  = lens _tsaAddtional (\ s a -> s{_tsaAddtional = a})
+      . _Coerce
+
+instance FromJSON TrafficSplitAllocations where
+        parseJSON
+          = withObject "TrafficSplitAllocations"
+              (\ o ->
+                 TrafficSplitAllocations' <$> (parseJSONObject o))
+
+instance ToJSON TrafficSplitAllocations where
+        toJSON = toJSON . _tsaAddtional
+
+-- | A service with manual scaling runs continuously, allowing you to perform
+-- complex initialization and rely on the state of its memory over time.
+--
+-- /See:/ 'manualScaling' smart constructor.
+newtype ManualScaling = ManualScaling'
+    { _msInstances :: Maybe (Textual Int32)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ManualScaling' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'msInstances'
+manualScaling
+    :: ManualScaling
+manualScaling =
+    ManualScaling'
+    { _msInstances = Nothing
+    }
+
+-- | The number of instances to assign to the service at the start. This
+-- number can later be altered by using the [Modules
+-- API](https:\/\/cloud.google.com\/appengine\/docs\/python\/modules\/functions)
+-- \`set_num_instances()\` function.
+msInstances :: Lens' ManualScaling (Maybe Int32)
+msInstances
+  = lens _msInstances (\ s a -> s{_msInstances = a}) .
+      mapping _Coerce
+
+instance FromJSON ManualScaling where
+        parseJSON
+          = withObject "ManualScaling"
+              (\ o -> ManualScaling' <$> (o .:? "instances"))
+
+instance ToJSON ManualScaling where
+        toJSON ManualScaling'{..}
+          = object
+              (catMaybes [("instances" .=) <$> _msInstances])
+
+-- | A service with basic scaling will create an instance when the
+-- application receives a request. The instance will be turned down when
+-- the app becomes idle. Basic scaling is ideal for work that is
+-- intermittent or driven by user activity.
+--
+-- /See:/ 'basicScaling' smart constructor.
+data BasicScaling = BasicScaling'
+    { _bsMaxInstances :: !(Maybe (Textual Int32))
+    , _bsIdleTimeout  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BasicScaling' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bsMaxInstances'
+--
+-- * 'bsIdleTimeout'
+basicScaling
+    :: BasicScaling
+basicScaling =
+    BasicScaling'
+    { _bsMaxInstances = Nothing
+    , _bsIdleTimeout = Nothing
+    }
+
+-- | The maximum number of instances for App Engine to create for this
+-- version.
+bsMaxInstances :: Lens' BasicScaling (Maybe Int32)
+bsMaxInstances
+  = lens _bsMaxInstances
+      (\ s a -> s{_bsMaxInstances = a})
+      . mapping _Coerce
+
+-- | The instance will be shut down this amount of time after receiving its
+-- last request.
+bsIdleTimeout :: Lens' BasicScaling (Maybe Text)
+bsIdleTimeout
+  = lens _bsIdleTimeout
+      (\ s a -> s{_bsIdleTimeout = a})
+
+instance FromJSON BasicScaling where
+        parseJSON
+          = withObject "BasicScaling"
+              (\ o ->
+                 BasicScaling' <$>
+                   (o .:? "maxInstances") <*> (o .:? "idleTimeout"))
+
+instance ToJSON BasicScaling where
+        toJSON BasicScaling'{..}
+          = object
+              (catMaybes
+                 [("maxInstances" .=) <$> _bsMaxInstances,
+                  ("idleTimeout" .=) <$> _bsIdleTimeout])
+
+-- | A Version is a specific set of source code and configuration files
+-- deployed to a service.
+--
+-- /See:/ 'version' smart constructor.
+data Version = Version'
+    { _vCreationTime      :: !(Maybe Text)
+    , _vRuntime           :: !(Maybe Text)
+    , _vDeployer          :: !(Maybe Text)
+    , _vNobuildFilesRegex :: !(Maybe Text)
+    , _vInstanceClass     :: !(Maybe Text)
+    , _vHealthCheck       :: !(Maybe HealthCheck)
+    , _vEnv               :: !(Maybe Text)
+    , _vDefaultExpiration :: !(Maybe Text)
+    , _vAutomaticScaling  :: !(Maybe AutomaticScaling)
+    , _vErrorHandlers     :: !(Maybe [ErrorHandler])
+    , _vVM                :: !(Maybe Bool)
+    , _vHandlers          :: !(Maybe [URLMap])
+    , _vInboundServices   :: !(Maybe [Text])
+    , _vNetwork           :: !(Maybe Network)
+    , _vResources         :: !(Maybe Resources)
+    , _vName              :: !(Maybe Text)
+    , _vThreadsafe        :: !(Maybe Bool)
+    , _vBetaSettings      :: !(Maybe VersionBetaSettings)
+    , _vBasicScaling      :: !(Maybe BasicScaling)
+    , _vManualScaling     :: !(Maybe ManualScaling)
+    , _vAPIConfig         :: !(Maybe APIConfigHandler)
+    , _vId                :: !(Maybe Text)
+    , _vEnvVariables      :: !(Maybe VersionEnvVariables)
+    , _vServingStatus     :: !(Maybe Text)
+    , _vDiskUsageBytes    :: !(Maybe (Textual Int64))
+    , _vLibraries         :: !(Maybe [Library])
+    , _vDeployment        :: !(Maybe Deployment)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Version' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vCreationTime'
+--
+-- * 'vRuntime'
+--
+-- * 'vDeployer'
+--
+-- * 'vNobuildFilesRegex'
+--
+-- * 'vInstanceClass'
+--
+-- * 'vHealthCheck'
+--
+-- * 'vEnv'
+--
+-- * 'vDefaultExpiration'
+--
+-- * 'vAutomaticScaling'
+--
+-- * 'vErrorHandlers'
+--
+-- * 'vVM'
+--
+-- * 'vHandlers'
+--
+-- * 'vInboundServices'
+--
+-- * 'vNetwork'
+--
+-- * 'vResources'
+--
+-- * 'vName'
+--
+-- * 'vThreadsafe'
+--
+-- * 'vBetaSettings'
+--
+-- * 'vBasicScaling'
+--
+-- * 'vManualScaling'
+--
+-- * 'vAPIConfig'
+--
+-- * 'vId'
+--
+-- * 'vEnvVariables'
+--
+-- * 'vServingStatus'
+--
+-- * 'vDiskUsageBytes'
+--
+-- * 'vLibraries'
+--
+-- * 'vDeployment'
+version
+    :: Version
+version =
+    Version'
+    { _vCreationTime = Nothing
+    , _vRuntime = Nothing
+    , _vDeployer = Nothing
+    , _vNobuildFilesRegex = Nothing
+    , _vInstanceClass = Nothing
+    , _vHealthCheck = Nothing
+    , _vEnv = Nothing
+    , _vDefaultExpiration = Nothing
+    , _vAutomaticScaling = Nothing
+    , _vErrorHandlers = Nothing
+    , _vVM = Nothing
+    , _vHandlers = Nothing
+    , _vInboundServices = Nothing
+    , _vNetwork = Nothing
+    , _vResources = Nothing
+    , _vName = Nothing
+    , _vThreadsafe = Nothing
+    , _vBetaSettings = Nothing
+    , _vBasicScaling = Nothing
+    , _vManualScaling = Nothing
+    , _vAPIConfig = Nothing
+    , _vId = Nothing
+    , _vEnvVariables = Nothing
+    , _vServingStatus = Nothing
+    , _vDiskUsageBytes = Nothing
+    , _vLibraries = Nothing
+    , _vDeployment = Nothing
+    }
+
+-- | Creation time of this version. This will be between the start and end
+-- times of the operation that creates this version. \'OutputOnly
+vCreationTime :: Lens' Version (Maybe Text)
+vCreationTime
+  = lens _vCreationTime
+      (\ s a -> s{_vCreationTime = a})
+
+-- | The desired runtime. Values can include python27, java7, go, etc.
+vRuntime :: Lens' Version (Maybe Text)
+vRuntime = lens _vRuntime (\ s a -> s{_vRuntime = a})
+
+-- | The email address of the user who created this version. \'OutputOnly
+vDeployer :: Lens' Version (Maybe Text)
+vDeployer
+  = lens _vDeployer (\ s a -> s{_vDeployer = a})
+
+-- | Go only. Files that match this pattern will not be built into the app.
+-- May only be set on create requests.
+vNobuildFilesRegex :: Lens' Version (Maybe Text)
+vNobuildFilesRegex
+  = lens _vNobuildFilesRegex
+      (\ s a -> s{_vNobuildFilesRegex = a})
+
+-- | The instance class to use to run this app. Valid values for
+-- AutomaticScaling are \`[F1, F2, F4, F4_1G]\`. Valid values for
+-- ManualScaling and BasicScaling are \`[B1, B2, B4, B8, B4_1G]\`. Default:
+-- \"F1\" for AutomaticScaling, \"B1\" for ManualScaling and BasicScaling
+vInstanceClass :: Lens' Version (Maybe Text)
+vInstanceClass
+  = lens _vInstanceClass
+      (\ s a -> s{_vInstanceClass = a})
+
+-- | Configure health checking for the VM instances. Unhealthy VM instances
+-- will be stopped and replaced with new instances. Only returned in
+-- \`GET\` requests if \`view=FULL\` is set. May only be set on create
+-- requests; once created, is immutable.
+vHealthCheck :: Lens' Version (Maybe HealthCheck)
+vHealthCheck
+  = lens _vHealthCheck (\ s a -> s{_vHealthCheck = a})
+
+-- | The App Engine execution environment to use for this version. Default:
+-- \"1\"
+vEnv :: Lens' Version (Maybe Text)
+vEnv = lens _vEnv (\ s a -> s{_vEnv = a})
+
+-- | The length of time a static file served by a static file handler ought
+-- to be cached by web proxies and browsers, if the handler does not
+-- specify its own expiration. Only returned in \`GET\` requests if
+-- \`view=FULL\` is set. May only be set on create requests; once created,
+-- is immutable.
+vDefaultExpiration :: Lens' Version (Maybe Text)
+vDefaultExpiration
+  = lens _vDefaultExpiration
+      (\ s a -> s{_vDefaultExpiration = a})
+
+-- | Automatic scaling is the scaling policy that App Engine has used since
+-- its inception. It is based on request rate, response latencies, and
+-- other application metrics.
+vAutomaticScaling :: Lens' Version (Maybe AutomaticScaling)
+vAutomaticScaling
+  = lens _vAutomaticScaling
+      (\ s a -> s{_vAutomaticScaling = a})
+
+-- | Custom static error pages instead of these generic error pages, (limit
+-- 10 KB\/page) Only returned in \`GET\` requests if \`view=FULL\` is set.
+-- May only be set on create requests; once created, is immutable.
+vErrorHandlers :: Lens' Version [ErrorHandler]
+vErrorHandlers
+  = lens _vErrorHandlers
+      (\ s a -> s{_vErrorHandlers = a})
+      . _Default
+      . _Coerce
+
+-- | Whether to deploy this app in a VM container.
+vVM :: Lens' Version (Maybe Bool)
+vVM = lens _vVM (\ s a -> s{_vVM = a})
+
+-- | An ordered list of URL Matching patterns that should be applied to
+-- incoming requests. The first matching URL consumes the request, and
+-- subsequent handlers are not attempted. Only returned in \`GET\` requests
+-- if \`view=FULL\` is set. May only be set on create requests; once
+-- created, is immutable.
+vHandlers :: Lens' Version [URLMap]
+vHandlers
+  = lens _vHandlers (\ s a -> s{_vHandlers = a}) .
+      _Default
+      . _Coerce
+
+-- | Before an application can receive email or XMPP messages, the
+-- application must be configured to enable the service.
+vInboundServices :: Lens' Version [Text]
+vInboundServices
+  = lens _vInboundServices
+      (\ s a -> s{_vInboundServices = a})
+      . _Default
+      . _Coerce
+
+-- | Used to specify extra network settings (for VM runtimes only).
+vNetwork :: Lens' Version (Maybe Network)
+vNetwork = lens _vNetwork (\ s a -> s{_vNetwork = a})
+
+-- | Used to specify how many machine resources an app version needs (for VM
+-- runtimes only).
+vResources :: Lens' Version (Maybe Resources)
+vResources
+  = lens _vResources (\ s a -> s{_vResources = a})
+
+-- | The full path to the Version resource in the API. Example:
+-- \"apps\/myapp\/services\/default\/versions\/v1\". \'OutputOnly
+vName :: Lens' Version (Maybe Text)
+vName = lens _vName (\ s a -> s{_vName = a})
+
+-- | If true, multiple requests can be dispatched to the app at once.
+vThreadsafe :: Lens' Version (Maybe Bool)
+vThreadsafe
+  = lens _vThreadsafe (\ s a -> s{_vThreadsafe = a})
+
+-- | Beta settings supplied to the application via metadata.
+vBetaSettings :: Lens' Version (Maybe VersionBetaSettings)
+vBetaSettings
+  = lens _vBetaSettings
+      (\ s a -> s{_vBetaSettings = a})
+
+-- | A service with basic scaling will create an instance when the
+-- application receives a request. The instance will be turned down when
+-- the app becomes idle. Basic scaling is ideal for work that is
+-- intermittent or driven by user activity.
+vBasicScaling :: Lens' Version (Maybe BasicScaling)
+vBasicScaling
+  = lens _vBasicScaling
+      (\ s a -> s{_vBasicScaling = a})
+
+-- | A service with manual scaling runs continuously, allowing you to perform
+-- complex initialization and rely on the state of its memory over time.
+vManualScaling :: Lens' Version (Maybe ManualScaling)
+vManualScaling
+  = lens _vManualScaling
+      (\ s a -> s{_vManualScaling = a})
+
+-- | Serving configuration for Google Cloud Endpoints. Only returned in
+-- \`GET\` requests if \`view=FULL\` is set. May only be set on create
+-- requests; once created, is immutable.
+vAPIConfig :: Lens' Version (Maybe APIConfigHandler)
+vAPIConfig
+  = lens _vAPIConfig (\ s a -> s{_vAPIConfig = a})
+
+-- | The relative name\/path of the Version within the service. Example:
+-- \"v1\". Version specifiers can contain lowercase letters, digits, and
+-- hyphens. It cannot begin with the prefix \`ah-\` and the names
+-- \`default\` and \`latest\` are reserved and cannot be used.
+vId :: Lens' Version (Maybe Text)
+vId = lens _vId (\ s a -> s{_vId = a})
+
+-- | Environment variables made available to the application. Only returned
+-- in \`GET\` requests if \`view=FULL\` is set. May only be set on create
+-- requests; once created, is immutable.
+vEnvVariables :: Lens' Version (Maybe VersionEnvVariables)
+vEnvVariables
+  = lens _vEnvVariables
+      (\ s a -> s{_vEnvVariables = a})
+
+-- | The current serving status of this version. Only \`SERVING\` versions
+-- will have instances created or billed for. If this field is unset when a
+-- version is created, \`SERVING\` status will be assumed. It is an error
+-- to explicitly set this field to \`SERVING_STATUS_UNSPECIFIED\`.
+vServingStatus :: Lens' Version (Maybe Text)
+vServingStatus
+  = lens _vServingStatus
+      (\ s a -> s{_vServingStatus = a})
+
+-- | Total size of version files hosted on App Engine disk in bytes.
+-- \'OutputOnly
+vDiskUsageBytes :: Lens' Version (Maybe Int64)
+vDiskUsageBytes
+  = lens _vDiskUsageBytes
+      (\ s a -> s{_vDiskUsageBytes = a})
+      . mapping _Coerce
+
+-- | Configuration for Python runtime third-party libraries required by the
+-- application. Only returned in \`GET\` requests if \`view=FULL\` is set.
+-- May only be set on create requests; once created, is immutable.
+vLibraries :: Lens' Version [Library]
+vLibraries
+  = lens _vLibraries (\ s a -> s{_vLibraries = a}) .
+      _Default
+      . _Coerce
+
+-- | Code and application artifacts that make up this version. Only returned
+-- in \`GET\` requests if \`view=FULL\` is set. May only be set on create
+-- requests; once created, is immutable.
+vDeployment :: Lens' Version (Maybe Deployment)
+vDeployment
+  = lens _vDeployment (\ s a -> s{_vDeployment = a})
+
+instance FromJSON Version where
+        parseJSON
+          = withObject "Version"
+              (\ o ->
+                 Version' <$>
+                   (o .:? "creationTime") <*> (o .:? "runtime") <*>
+                     (o .:? "deployer")
+                     <*> (o .:? "nobuildFilesRegex")
+                     <*> (o .:? "instanceClass")
+                     <*> (o .:? "healthCheck")
+                     <*> (o .:? "env")
+                     <*> (o .:? "defaultExpiration")
+                     <*> (o .:? "automaticScaling")
+                     <*> (o .:? "errorHandlers" .!= mempty)
+                     <*> (o .:? "vm")
+                     <*> (o .:? "handlers" .!= mempty)
+                     <*> (o .:? "inboundServices" .!= mempty)
+                     <*> (o .:? "network")
+                     <*> (o .:? "resources")
+                     <*> (o .:? "name")
+                     <*> (o .:? "threadsafe")
+                     <*> (o .:? "betaSettings")
+                     <*> (o .:? "basicScaling")
+                     <*> (o .:? "manualScaling")
+                     <*> (o .:? "apiConfig")
+                     <*> (o .:? "id")
+                     <*> (o .:? "envVariables")
+                     <*> (o .:? "servingStatus")
+                     <*> (o .:? "diskUsageBytes")
+                     <*> (o .:? "libraries" .!= mempty)
+                     <*> (o .:? "deployment"))
+
+instance ToJSON Version where
+        toJSON Version'{..}
+          = object
+              (catMaybes
+                 [("creationTime" .=) <$> _vCreationTime,
+                  ("runtime" .=) <$> _vRuntime,
+                  ("deployer" .=) <$> _vDeployer,
+                  ("nobuildFilesRegex" .=) <$> _vNobuildFilesRegex,
+                  ("instanceClass" .=) <$> _vInstanceClass,
+                  ("healthCheck" .=) <$> _vHealthCheck,
+                  ("env" .=) <$> _vEnv,
+                  ("defaultExpiration" .=) <$> _vDefaultExpiration,
+                  ("automaticScaling" .=) <$> _vAutomaticScaling,
+                  ("errorHandlers" .=) <$> _vErrorHandlers,
+                  ("vm" .=) <$> _vVM, ("handlers" .=) <$> _vHandlers,
+                  ("inboundServices" .=) <$> _vInboundServices,
+                  ("network" .=) <$> _vNetwork,
+                  ("resources" .=) <$> _vResources,
+                  ("name" .=) <$> _vName,
+                  ("threadsafe" .=) <$> _vThreadsafe,
+                  ("betaSettings" .=) <$> _vBetaSettings,
+                  ("basicScaling" .=) <$> _vBasicScaling,
+                  ("manualScaling" .=) <$> _vManualScaling,
+                  ("apiConfig" .=) <$> _vAPIConfig, ("id" .=) <$> _vId,
+                  ("envVariables" .=) <$> _vEnvVariables,
+                  ("servingStatus" .=) <$> _vServingStatus,
+                  ("diskUsageBytes" .=) <$> _vDiskUsageBytes,
+                  ("libraries" .=) <$> _vLibraries,
+                  ("deployment" .=) <$> _vDeployment])
+
+-- | Files served directly to the user for a given URL, such as images, CSS
+-- stylesheets, or JavaScript source files. Static file handlers describe
+-- which files in the application directory are static files, and which
+-- URLs serve them.
+--
+-- /See:/ 'staticFilesHandler' smart constructor.
+data StaticFilesHandler = StaticFilesHandler'
+    { _sfhHTTPHeaders         :: !(Maybe StaticFilesHandlerHTTPHeaders)
+    , _sfhPath                :: !(Maybe Text)
+    , _sfhRequireMatchingFile :: !(Maybe Bool)
+    , _sfhExpiration          :: !(Maybe Text)
+    , _sfhMimeType            :: !(Maybe Text)
+    , _sfhApplicationReadable :: !(Maybe Bool)
+    , _sfhUploadPathRegex     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StaticFilesHandler' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sfhHTTPHeaders'
+--
+-- * 'sfhPath'
+--
+-- * 'sfhRequireMatchingFile'
+--
+-- * 'sfhExpiration'
+--
+-- * 'sfhMimeType'
+--
+-- * 'sfhApplicationReadable'
+--
+-- * 'sfhUploadPathRegex'
+staticFilesHandler
+    :: StaticFilesHandler
+staticFilesHandler =
+    StaticFilesHandler'
+    { _sfhHTTPHeaders = Nothing
+    , _sfhPath = Nothing
+    , _sfhRequireMatchingFile = Nothing
+    , _sfhExpiration = Nothing
+    , _sfhMimeType = Nothing
+    , _sfhApplicationReadable = Nothing
+    , _sfhUploadPathRegex = Nothing
+    }
+
+-- | HTTP headers to use for all responses from these URLs.
+sfhHTTPHeaders :: Lens' StaticFilesHandler (Maybe StaticFilesHandlerHTTPHeaders)
+sfhHTTPHeaders
+  = lens _sfhHTTPHeaders
+      (\ s a -> s{_sfhHTTPHeaders = a})
+
+-- | The path to the static files matched by the URL pattern, from the
+-- application root directory. The path can refer to text matched in
+-- groupings in the URL pattern.
+sfhPath :: Lens' StaticFilesHandler (Maybe Text)
+sfhPath = lens _sfhPath (\ s a -> s{_sfhPath = a})
+
+-- | If true, this UrlMap entry does not match the request unless the file
+-- referenced by the handler also exists. If no such file exists,
+-- processing will continue with the next UrlMap that matches the requested
+-- URL.
+sfhRequireMatchingFile :: Lens' StaticFilesHandler (Maybe Bool)
+sfhRequireMatchingFile
+  = lens _sfhRequireMatchingFile
+      (\ s a -> s{_sfhRequireMatchingFile = a})
+
+-- | The length of time a static file served by this handler ought to be
+-- cached by web proxies and browsers.
+sfhExpiration :: Lens' StaticFilesHandler (Maybe Text)
+sfhExpiration
+  = lens _sfhExpiration
+      (\ s a -> s{_sfhExpiration = a})
+
+-- | If specified, all files served by this handler will be served using the
+-- specified MIME type. If not specified, the MIME type for a file will be
+-- derived from the file\'s filename extension.
+sfhMimeType :: Lens' StaticFilesHandler (Maybe Text)
+sfhMimeType
+  = lens _sfhMimeType (\ s a -> s{_sfhMimeType = a})
+
+-- | By default, files declared in static file handlers are uploaded as
+-- static data and are only served to end users, they cannot be read by an
+-- application. If this field is set to true, the files are also uploaded
+-- as code data so your application can read them. Both uploads are charged
+-- against your code and static data storage resource quotas.
+sfhApplicationReadable :: Lens' StaticFilesHandler (Maybe Bool)
+sfhApplicationReadable
+  = lens _sfhApplicationReadable
+      (\ s a -> s{_sfhApplicationReadable = a})
+
+-- | A regular expression that matches the file paths for all files that will
+-- be referenced by this handler.
+sfhUploadPathRegex :: Lens' StaticFilesHandler (Maybe Text)
+sfhUploadPathRegex
+  = lens _sfhUploadPathRegex
+      (\ s a -> s{_sfhUploadPathRegex = a})
+
+instance FromJSON StaticFilesHandler where
+        parseJSON
+          = withObject "StaticFilesHandler"
+              (\ o ->
+                 StaticFilesHandler' <$>
+                   (o .:? "httpHeaders") <*> (o .:? "path") <*>
+                     (o .:? "requireMatchingFile")
+                     <*> (o .:? "expiration")
+                     <*> (o .:? "mimeType")
+                     <*> (o .:? "applicationReadable")
+                     <*> (o .:? "uploadPathRegex"))
+
+instance ToJSON StaticFilesHandler where
+        toJSON StaticFilesHandler'{..}
+          = object
+              (catMaybes
+                 [("httpHeaders" .=) <$> _sfhHTTPHeaders,
+                  ("path" .=) <$> _sfhPath,
+                  ("requireMatchingFile" .=) <$>
+                    _sfhRequireMatchingFile,
+                  ("expiration" .=) <$> _sfhExpiration,
+                  ("mimeType" .=) <$> _sfhMimeType,
+                  ("applicationReadable" .=) <$>
+                    _sfhApplicationReadable,
+                  ("uploadPathRegex" .=) <$> _sfhUploadPathRegex])
+
+-- | A custom static error page to be served when an error occurs.
+--
+-- /See:/ 'errorHandler' smart constructor.
+data ErrorHandler = ErrorHandler'
+    { _ehMimeType   :: !(Maybe Text)
+    , _ehErrorCode  :: !(Maybe Text)
+    , _ehStaticFile :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ErrorHandler' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ehMimeType'
+--
+-- * 'ehErrorCode'
+--
+-- * 'ehStaticFile'
+errorHandler
+    :: ErrorHandler
+errorHandler =
+    ErrorHandler'
+    { _ehMimeType = Nothing
+    , _ehErrorCode = Nothing
+    , _ehStaticFile = Nothing
+    }
+
+-- | MIME type of file. If unspecified, \"text\/html\" is assumed.
+ehMimeType :: Lens' ErrorHandler (Maybe Text)
+ehMimeType
+  = lens _ehMimeType (\ s a -> s{_ehMimeType = a})
+
+-- | The error condition this handler applies to.
+ehErrorCode :: Lens' ErrorHandler (Maybe Text)
+ehErrorCode
+  = lens _ehErrorCode (\ s a -> s{_ehErrorCode = a})
+
+-- | Static file content to be served for this error.
+ehStaticFile :: Lens' ErrorHandler (Maybe Text)
+ehStaticFile
+  = lens _ehStaticFile (\ s a -> s{_ehStaticFile = a})
+
+instance FromJSON ErrorHandler where
+        parseJSON
+          = withObject "ErrorHandler"
+              (\ o ->
+                 ErrorHandler' <$>
+                   (o .:? "mimeType") <*> (o .:? "errorCode") <*>
+                     (o .:? "staticFile"))
+
+instance ToJSON ErrorHandler where
+        toJSON ErrorHandler'{..}
+          = object
+              (catMaybes
+                 [("mimeType" .=) <$> _ehMimeType,
+                  ("errorCode" .=) <$> _ehErrorCode,
+                  ("staticFile" .=) <$> _ehStaticFile])
+
+-- | Metadata for the given google.longrunning.Operation.
+--
+-- /See:/ 'operationMetadata' smart constructor.
+data OperationMetadata = OperationMetadata'
+    { _omInsertTime    :: !(Maybe Text)
+    , _omUser          :: !(Maybe Text)
+    , _omMethod        :: !(Maybe Text)
+    , _omEndTime       :: !(Maybe Text)
+    , _omOperationType :: !(Maybe Text)
+    , _omTarget        :: !(Maybe Text)
+    } 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:
+--
+-- * 'omInsertTime'
+--
+-- * 'omUser'
+--
+-- * 'omMethod'
+--
+-- * 'omEndTime'
+--
+-- * 'omOperationType'
+--
+-- * 'omTarget'
+operationMetadata
+    :: OperationMetadata
+operationMetadata =
+    OperationMetadata'
+    { _omInsertTime = Nothing
+    , _omUser = Nothing
+    , _omMethod = Nothing
+    , _omEndTime = Nothing
+    , _omOperationType = Nothing
+    , _omTarget = Nothing
+    }
+
+-- | Timestamp that this operation was received. \'OutputOnly
+omInsertTime :: Lens' OperationMetadata (Maybe Text)
+omInsertTime
+  = lens _omInsertTime (\ s a -> s{_omInsertTime = a})
+
+-- | The user who requested this operation. \'OutputOnly
+omUser :: Lens' OperationMetadata (Maybe Text)
+omUser = lens _omUser (\ s a -> s{_omUser = a})
+
+-- | API method name that initiated the operation. Example:
+-- \"google.appengine.v1beta4.Version.CreateVersion\". \'OutputOnly
+omMethod :: Lens' OperationMetadata (Maybe Text)
+omMethod = lens _omMethod (\ s a -> s{_omMethod = a})
+
+-- | Timestamp that this operation was completed. (Not present if the
+-- operation is still in progress.) \'OutputOnly
+omEndTime :: Lens' OperationMetadata (Maybe Text)
+omEndTime
+  = lens _omEndTime (\ s a -> s{_omEndTime = a})
+
+-- | The type of the operation (deprecated, use method field instead).
+-- Example: \"create_version\". \'OutputOnly
+omOperationType :: Lens' OperationMetadata (Maybe Text)
+omOperationType
+  = lens _omOperationType
+      (\ s a -> s{_omOperationType = a})
+
+-- | Resource that this operation is acting on. Example:
+-- \"apps\/myapp\/modules\/default\". \'OutputOnly
+omTarget :: Lens' OperationMetadata (Maybe Text)
+omTarget = lens _omTarget (\ s a -> s{_omTarget = a})
+
+instance FromJSON OperationMetadata where
+        parseJSON
+          = withObject "OperationMetadata"
+              (\ o ->
+                 OperationMetadata' <$>
+                   (o .:? "insertTime") <*> (o .:? "user") <*>
+                     (o .:? "method")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "operationType")
+                     <*> (o .:? "target"))
+
+instance ToJSON OperationMetadata where
+        toJSON OperationMetadata'{..}
+          = object
+              (catMaybes
+                 [("insertTime" .=) <$> _omInsertTime,
+                  ("user" .=) <$> _omUser, ("method" .=) <$> _omMethod,
+                  ("endTime" .=) <$> _omEndTime,
+                  ("operationType" .=) <$> _omOperationType,
+                  ("target" .=) <$> _omTarget])
+
+-- | Response message for \`Instances.ListInstances\`.
+--
+-- /See:/ 'listInstancesResponse' smart constructor.
+data ListInstancesResponse = ListInstancesResponse'
+    { _lirNextPageToken :: !(Maybe Text)
+    , _lirInstances     :: !(Maybe [Instance])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListInstancesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lirNextPageToken'
+--
+-- * 'lirInstances'
+listInstancesResponse
+    :: ListInstancesResponse
+listInstancesResponse =
+    ListInstancesResponse'
+    { _lirNextPageToken = Nothing
+    , _lirInstances = Nothing
+    }
+
+-- | Continuation token for fetching the next page of results.
+lirNextPageToken :: Lens' ListInstancesResponse (Maybe Text)
+lirNextPageToken
+  = lens _lirNextPageToken
+      (\ s a -> s{_lirNextPageToken = a})
+
+-- | The instances belonging to the requested version.
+lirInstances :: Lens' ListInstancesResponse [Instance]
+lirInstances
+  = lens _lirInstances (\ s a -> s{_lirInstances = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListInstancesResponse where
+        parseJSON
+          = withObject "ListInstancesResponse"
+              (\ o ->
+                 ListInstancesResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "instances" .!= mempty))
+
+instance ToJSON ListInstancesResponse where
+        toJSON ListInstancesResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lirNextPageToken,
+                  ("instances" .=) <$> _lirInstances])
+
+-- | Target scaling by request utilization (for VM runtimes only).
+--
+-- /See:/ 'requestUtilization' smart constructor.
+data RequestUtilization = RequestUtilization'
+    { _ruTargetConcurrentRequests :: !(Maybe (Textual Int32))
+    , _ruTargetRequestCountPerSec :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RequestUtilization' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ruTargetConcurrentRequests'
+--
+-- * 'ruTargetRequestCountPerSec'
+requestUtilization
+    :: RequestUtilization
+requestUtilization =
+    RequestUtilization'
+    { _ruTargetConcurrentRequests = Nothing
+    , _ruTargetRequestCountPerSec = Nothing
+    }
+
+-- | Target number of concurrent requests.
+ruTargetConcurrentRequests :: Lens' RequestUtilization (Maybe Int32)
+ruTargetConcurrentRequests
+  = lens _ruTargetConcurrentRequests
+      (\ s a -> s{_ruTargetConcurrentRequests = a})
+      . mapping _Coerce
+
+-- | Target requests per second.
+ruTargetRequestCountPerSec :: Lens' RequestUtilization (Maybe Int32)
+ruTargetRequestCountPerSec
+  = lens _ruTargetRequestCountPerSec
+      (\ s a -> s{_ruTargetRequestCountPerSec = a})
+      . mapping _Coerce
+
+instance FromJSON RequestUtilization where
+        parseJSON
+          = withObject "RequestUtilization"
+              (\ o ->
+                 RequestUtilization' <$>
+                   (o .:? "targetConcurrentRequests") <*>
+                     (o .:? "targetRequestCountPerSec"))
+
+instance ToJSON RequestUtilization where
+        toJSON RequestUtilization'{..}
+          = object
+              (catMaybes
+                 [("targetConcurrentRequests" .=) <$>
+                    _ruTargetConcurrentRequests,
+                  ("targetRequestCountPerSec" .=) <$>
+                    _ruTargetRequestCountPerSec])
+
+-- | A reference to a particular snapshot of the source tree used to build
+-- and deploy the application.
+--
+-- /See:/ 'sourceReference' smart constructor.
+data SourceReference = SourceReference'
+    { _srRepository :: !(Maybe Text)
+    , _srRevisionId :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceReference' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'srRepository'
+--
+-- * 'srRevisionId'
+sourceReference
+    :: SourceReference
+sourceReference =
+    SourceReference'
+    { _srRepository = Nothing
+    , _srRevisionId = Nothing
+    }
+
+-- | Optional. A URI string identifying the repository. Example:
+-- \"https:\/\/source.developers.google.com\/p\/app-123\/r\/default\"
+srRepository :: Lens' SourceReference (Maybe Text)
+srRepository
+  = lens _srRepository (\ s a -> s{_srRepository = a})
+
+-- | The canonical (and persistent) identifier of the deployed revision, i.e.
+-- any kind of aliases including tags or branch names are not allowed.
+-- Example (git): \"2198322f89e0bb2e25021667c2ed489d1fd34e6b\"
+srRevisionId :: Lens' SourceReference (Maybe Text)
+srRevisionId
+  = lens _srRevisionId (\ s a -> s{_srRevisionId = a})
+
+instance FromJSON SourceReference where
+        parseJSON
+          = withObject "SourceReference"
+              (\ o ->
+                 SourceReference' <$>
+                   (o .:? "repository") <*> (o .:? "revisionId"))
+
+instance ToJSON SourceReference where
+        toJSON SourceReference'{..}
+          = object
+              (catMaybes
+                 [("repository" .=) <$> _srRepository,
+                  ("revisionId" .=) <$> _srRevisionId])
+
+-- | The normal response of the operation in case of success. If the original
+-- method returns no data on success, such as \`Delete\`, the response is
+-- \`google.protobuf.Empty\`. If the original method is standard
+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.
+-- For other methods, the response should have the type \`XxxResponse\`,
+-- where \`Xxx\` is the original method name. For example, if the original
+-- method name is \`TakeSnapshot()\`, the inferred response type is
+-- \`TakeSnapshotResponse\`.
+--
+-- /See:/ 'operationResponse' smart constructor.
+newtype OperationResponse = OperationResponse'
+    { _orAddtional :: HashMap Text JSONValue
+    } 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:
+--
+-- * 'orAddtional'
+operationResponse
+    :: HashMap Text JSONValue -- ^ 'orAddtional'
+    -> OperationResponse
+operationResponse pOrAddtional_ =
+    OperationResponse'
+    { _orAddtional = _Coerce # pOrAddtional_
+    }
+
+-- | Properties of the object. Contains field \'ype with type URL.
+orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)
+orAddtional
+  = lens _orAddtional (\ s a -> s{_orAddtional = a}) .
+      _Coerce
+
+instance FromJSON OperationResponse where
+        parseJSON
+          = withObject "OperationResponse"
+              (\ o -> OperationResponse' <$> (parseJSONObject o))
+
+instance ToJSON OperationResponse where
+        toJSON = toJSON . _orAddtional
+
+-- | A Docker (container) image which should be used to start the
+-- application.
+--
+-- /See:/ 'containerInfo' smart constructor.
+newtype ContainerInfo = ContainerInfo'
+    { _ciImage :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ContainerInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ciImage'
+containerInfo
+    :: ContainerInfo
+containerInfo =
+    ContainerInfo'
+    { _ciImage = Nothing
+    }
+
+-- | Reference to a hosted container image. Must be a URI to a resource in a
+-- Docker repository. Must be fully qualified, including tag or digest.
+-- e.g. gcr.io\/my-project\/image:tag or gcr.io\/my-project\/image\'digest
+ciImage :: Lens' ContainerInfo (Maybe Text)
+ciImage = lens _ciImage (\ s a -> s{_ciImage = a})
+
+instance FromJSON ContainerInfo where
+        parseJSON
+          = withObject "ContainerInfo"
+              (\ o -> ContainerInfo' <$> (o .:? "image"))
+
+instance ToJSON ContainerInfo where
+        toJSON ContainerInfo'{..}
+          = object (catMaybes [("image" .=) <$> _ciImage])
+
+-- | Instances are the computing units that App Engine uses to automatically
+-- scale an application.
+--
+-- /See:/ 'instance'' smart constructor.
+data Instance = Instance'
+    { _iMemoryUsage      :: !(Maybe (Textual Int64))
+    , _iVMStatus         :: !(Maybe Text)
+    , _iVMZoneName       :: !(Maybe Text)
+    , _iVMId             :: !(Maybe Text)
+    , _iAvailability     :: !(Maybe Text)
+    , _iVMName           :: !(Maybe Text)
+    , _iName             :: !(Maybe Text)
+    , _iVMUnlocked       :: !(Maybe Bool)
+    , _iRequests         :: !(Maybe (Textual Int32))
+    , _iQps              :: !(Maybe (Textual Double))
+    , _iId               :: !(Maybe Text)
+    , _iErrors           :: !(Maybe (Textual Word32))
+    , _iAverageLatency   :: !(Maybe (Textual Int32))
+    , _iStartTimestamp   :: !(Maybe Text)
+    , _iAppEngineRelease :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Instance' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iMemoryUsage'
+--
+-- * 'iVMStatus'
+--
+-- * 'iVMZoneName'
+--
+-- * 'iVMId'
+--
+-- * 'iAvailability'
+--
+-- * 'iVMName'
+--
+-- * 'iName'
+--
+-- * 'iVMUnlocked'
+--
+-- * 'iRequests'
+--
+-- * 'iQps'
+--
+-- * 'iId'
+--
+-- * 'iErrors'
+--
+-- * 'iAverageLatency'
+--
+-- * 'iStartTimestamp'
+--
+-- * 'iAppEngineRelease'
+instance'
+    :: Instance
+instance' =
+    Instance'
+    { _iMemoryUsage = Nothing
+    , _iVMStatus = Nothing
+    , _iVMZoneName = Nothing
+    , _iVMId = Nothing
+    , _iAvailability = Nothing
+    , _iVMName = Nothing
+    , _iName = Nothing
+    , _iVMUnlocked = Nothing
+    , _iRequests = Nothing
+    , _iQps = Nothing
+    , _iId = Nothing
+    , _iErrors = Nothing
+    , _iAverageLatency = Nothing
+    , _iStartTimestamp = Nothing
+    , _iAppEngineRelease = Nothing
+    }
+
+-- | Memory usage (in bytes). \'OutputOnly
+iMemoryUsage :: Lens' Instance (Maybe Int64)
+iMemoryUsage
+  = lens _iMemoryUsage (\ s a -> s{_iMemoryUsage = a})
+      . mapping _Coerce
+
+-- | For VMEngines instances, the status of GCE VM where the instance lives.
+-- \'OutputOnly
+iVMStatus :: Lens' Instance (Maybe Text)
+iVMStatus
+  = lens _iVMStatus (\ s a -> s{_iVMStatus = a})
+
+-- | For VMEngines instances, the zone where the GCE VM is located.
+-- \'OutputOnly
+iVMZoneName :: Lens' Instance (Maybe Text)
+iVMZoneName
+  = lens _iVMZoneName (\ s a -> s{_iVMZoneName = a})
+
+-- | For VMEngines instances, the GCE VM ID of the instance. \'OutputOnly
+iVMId :: Lens' Instance (Maybe Text)
+iVMId = lens _iVMId (\ s a -> s{_iVMId = a})
+
+-- | Availability of instance. \'OutputOnly
+iAvailability :: Lens' Instance (Maybe Text)
+iAvailability
+  = lens _iAvailability
+      (\ s a -> s{_iAvailability = a})
+
+-- | For VMEngines instances, the name of GCE VM where the instance lives.
+-- \'OutputOnly
+iVMName :: Lens' Instance (Maybe Text)
+iVMName = lens _iVMName (\ s a -> s{_iVMName = a})
+
+-- | The full path to the Instance resource in the API. Example:
+-- \"apps\/myapp\/services\/default\/versions\/v1\/instances\/instance-1\"
+-- \'OutputOnly
+iName :: Lens' Instance (Maybe Text)
+iName = lens _iName (\ s a -> s{_iName = a})
+
+-- | For VMEngines instances, whether the instance has been unlocked.
+-- \'OutputOnly
+iVMUnlocked :: Lens' Instance (Maybe Bool)
+iVMUnlocked
+  = lens _iVMUnlocked (\ s a -> s{_iVMUnlocked = a})
+
+-- | Number of requests (since the clone was started). \'OutputOnly
+iRequests :: Lens' Instance (Maybe Int32)
+iRequests
+  = lens _iRequests (\ s a -> s{_iRequests = a}) .
+      mapping _Coerce
+
+-- | QPS for this instance (averaged over the last minute). \'OutputOnly
+iQps :: Lens' Instance (Maybe Double)
+iQps
+  = lens _iQps (\ s a -> s{_iQps = a}) .
+      mapping _Coerce
+
+-- | The relative name\/path of the instance within the version. Example:
+-- \"instance-1\" \'OutputOnly
+iId :: Lens' Instance (Maybe Text)
+iId = lens _iId (\ s a -> s{_iId = a})
+
+-- | Number of errors since the instance was started. \'OutputOnly
+iErrors :: Lens' Instance (Maybe Word32)
+iErrors
+  = lens _iErrors (\ s a -> s{_iErrors = a}) .
+      mapping _Coerce
+
+-- | Latency in milliseconds (averaged over the last minute). \'OutputOnly
+iAverageLatency :: Lens' Instance (Maybe Int32)
+iAverageLatency
+  = lens _iAverageLatency
+      (\ s a -> s{_iAverageLatency = a})
+      . mapping _Coerce
+
+-- | Time when instance was started. \'OutputOnly
+iStartTimestamp :: Lens' Instance (Maybe Text)
+iStartTimestamp
+  = lens _iStartTimestamp
+      (\ s a -> s{_iStartTimestamp = a})
+
+-- | The App Engine release the instance is running on. \'OutputOnly
+iAppEngineRelease :: Lens' Instance (Maybe Text)
+iAppEngineRelease
+  = lens _iAppEngineRelease
+      (\ s a -> s{_iAppEngineRelease = a})
+
+instance FromJSON Instance where
+        parseJSON
+          = withObject "Instance"
+              (\ o ->
+                 Instance' <$>
+                   (o .:? "memoryUsage") <*> (o .:? "vmStatus") <*>
+                     (o .:? "vmZoneName")
+                     <*> (o .:? "vmId")
+                     <*> (o .:? "availability")
+                     <*> (o .:? "vmName")
+                     <*> (o .:? "name")
+                     <*> (o .:? "vmUnlocked")
+                     <*> (o .:? "requests")
+                     <*> (o .:? "qps")
+                     <*> (o .:? "id")
+                     <*> (o .:? "errors")
+                     <*> (o .:? "averageLatency")
+                     <*> (o .:? "startTimestamp")
+                     <*> (o .:? "appEngineRelease"))
+
+instance ToJSON Instance where
+        toJSON Instance'{..}
+          = object
+              (catMaybes
+                 [("memoryUsage" .=) <$> _iMemoryUsage,
+                  ("vmStatus" .=) <$> _iVMStatus,
+                  ("vmZoneName" .=) <$> _iVMZoneName,
+                  ("vmId" .=) <$> _iVMId,
+                  ("availability" .=) <$> _iAvailability,
+                  ("vmName" .=) <$> _iVMName, ("name" .=) <$> _iName,
+                  ("vmUnlocked" .=) <$> _iVMUnlocked,
+                  ("requests" .=) <$> _iRequests, ("qps" .=) <$> _iQps,
+                  ("id" .=) <$> _iId, ("errors" .=) <$> _iErrors,
+                  ("averageLatency" .=) <$> _iAverageLatency,
+                  ("startTimestamp" .=) <$> _iStartTimestamp,
+                  ("appEngineRelease" .=) <$> _iAppEngineRelease])
+
+-- | Code and application artifacts used to deploy a version to App Engine.
+--
+-- /See:/ 'deployment' smart constructor.
+data Deployment = Deployment'
+    { _dContainer        :: !(Maybe ContainerInfo)
+    , _dFiles            :: !(Maybe DeploymentFiles)
+    , _dSourceReferences :: !(Maybe [SourceReference])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Deployment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dContainer'
+--
+-- * 'dFiles'
+--
+-- * 'dSourceReferences'
+deployment
+    :: Deployment
+deployment =
+    Deployment'
+    { _dContainer = Nothing
+    , _dFiles = Nothing
+    , _dSourceReferences = Nothing
+    }
+
+-- | If supplied, a docker (container) image which should be used to start
+-- the application. Only applicable to the \'vm\' runtime.
+dContainer :: Lens' Deployment (Maybe ContainerInfo)
+dContainer
+  = lens _dContainer (\ s a -> s{_dContainer = a})
+
+-- | A manifest of files stored in Google Cloud Storage which should be
+-- included as part of this application. All files must be readable using
+-- the credentials supplied with this call.
+dFiles :: Lens' Deployment (Maybe DeploymentFiles)
+dFiles = lens _dFiles (\ s a -> s{_dFiles = a})
+
+-- | The origin of the source code for this deployment. There can be more
+-- than one source reference per Version if source code is distributed
+-- among multiple repositories.
+dSourceReferences :: Lens' Deployment [SourceReference]
+dSourceReferences
+  = lens _dSourceReferences
+      (\ s a -> s{_dSourceReferences = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON Deployment where
+        parseJSON
+          = withObject "Deployment"
+              (\ o ->
+                 Deployment' <$>
+                   (o .:? "container") <*> (o .:? "files") <*>
+                     (o .:? "sourceReferences" .!= mempty))
+
+instance ToJSON Deployment where
+        toJSON Deployment'{..}
+          = object
+              (catMaybes
+                 [("container" .=) <$> _dContainer,
+                  ("files" .=) <$> _dFiles,
+                  ("sourceReferences" .=) <$> _dSourceReferences])
diff --git a/gen/Network/Google/AppEngine/Types/Sum.hs b/gen/Network/Google/AppEngine/Types/Sum.hs
--- a/gen/Network/Google/AppEngine/Types/Sum.hs
+++ b/gen/Network/Google/AppEngine/Types/Sum.hs
@@ -8,7 +8,7 @@
 
 -- |
 -- Module      : Network.Google.AppEngine.Types.Sum
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Get.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Get.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.AppEngine.Apps.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,7 +22,7 @@
 --
 -- Gets information about an application.
 --
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.get@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.get@.
 module Network.Google.Resource.AppEngine.Apps.Get
     (
     -- * REST Resource
@@ -50,7 +50,7 @@
 -- | A resource alias for @appengine.apps.get@ method which the
 -- 'AppsGet' request conforms to.
 type AppsGetResource =
-     "v1beta4" :>
+     "v1beta5" :>
        "apps" :>
          Capture "appsId" Text :>
            QueryParam "$.xgafv" Text :>
@@ -66,7 +66,7 @@
 -- | Gets information about an application.
 --
 -- /See:/ 'appsGet' smart constructor.
-data AppsGet = AppsGet
+data AppsGet = AppsGet'
     { _agXgafv                :: !(Maybe Text)
     , _agUploadProtocol       :: !(Maybe Text)
     , _agPp                   :: !Bool
@@ -103,7 +103,7 @@
     :: Text -- ^ 'agAppsId'
     -> AppsGet
 appsGet pAgAppsId_ =
-    AppsGet
+    AppsGet'
     { _agXgafv = Nothing
     , _agUploadProtocol = Nothing
     , _agPp = True
@@ -153,8 +153,10 @@
 
 -- | Certain resources associated with an application are created on-demand.
 -- Controls whether these resources should be created when performing the
--- \`GET\` operation. If specified and any resources cloud not be created,
--- the request will fail with an error code.
+-- \`GET\` operation. If specified and any resources could not be created,
+-- the request will fail with an error code. Additionally, this parameter
+-- can cause the request to take longer to complete. Note: This parameter
+-- will be deprecated in a future version of the API.
 agEnsureResourcesExist :: Lens' AppsGet (Maybe Bool)
 agEnsureResourcesExist
   = lens _agEnsureResourcesExist
@@ -167,7 +169,9 @@
 
 instance GoogleRequest AppsGet where
         type Rs AppsGet = Application
-        requestClient AppsGet{..}
+        type Scopes AppsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsGet'{..}
           = go _agAppsId _agXgafv _agUploadProtocol
               (Just _agPp)
               _agAccessToken
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/Modules/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Delete.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-{-# 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.AppEngine.Apps.Modules.Delete
--- Copyright   : (c) 2015 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)
---
--- Deletes a module and all enclosed versions.
---
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.modules.delete@.
-module Network.Google.Resource.AppEngine.Apps.Modules.Delete
-    (
-    -- * REST Resource
-      AppsModulesDeleteResource
-
-    -- * Creating a Request
-    , appsModulesDelete
-    , AppsModulesDelete
-
-    -- * Request Lenses
-    , amdXgafv
-    , amdUploadProtocol
-    , amdPp
-    , amdAccessToken
-    , amdUploadType
-    , amdModulesId
-    , amdBearerToken
-    , amdAppsId
-    , amdCallback
-    ) where
-
-import           Network.Google.AppEngine.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @appengine.apps.modules.delete@ method which the
--- 'AppsModulesDelete' request conforms to.
-type AppsModulesDeleteResource =
-     "v1beta4" :>
-       "apps" :>
-         Capture "appsId" Text :>
-           "modules" :>
-             Capture "modulesId" Text :>
-               QueryParam "$.xgafv" Text :>
-                 QueryParam "upload_protocol" Text :>
-                   QueryParam "pp" Bool :>
-                     QueryParam "access_token" Text :>
-                       QueryParam "uploadType" Text :>
-                         QueryParam "bearer_token" Text :>
-                           QueryParam "callback" Text :>
-                             QueryParam "alt" AltJSON :>
-                               Delete '[JSON] Operation
-
--- | Deletes a module and all enclosed versions.
---
--- /See:/ 'appsModulesDelete' smart constructor.
-data AppsModulesDelete = AppsModulesDelete
-    { _amdXgafv          :: !(Maybe Text)
-    , _amdUploadProtocol :: !(Maybe Text)
-    , _amdPp             :: !Bool
-    , _amdAccessToken    :: !(Maybe Text)
-    , _amdUploadType     :: !(Maybe Text)
-    , _amdModulesId      :: !Text
-    , _amdBearerToken    :: !(Maybe Text)
-    , _amdAppsId         :: !Text
-    , _amdCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AppsModulesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'amdXgafv'
---
--- * 'amdUploadProtocol'
---
--- * 'amdPp'
---
--- * 'amdAccessToken'
---
--- * 'amdUploadType'
---
--- * 'amdModulesId'
---
--- * 'amdBearerToken'
---
--- * 'amdAppsId'
---
--- * 'amdCallback'
-appsModulesDelete
-    :: Text -- ^ 'amdModulesId'
-    -> Text -- ^ 'amdAppsId'
-    -> AppsModulesDelete
-appsModulesDelete pAmdModulesId_ pAmdAppsId_ =
-    AppsModulesDelete
-    { _amdXgafv = Nothing
-    , _amdUploadProtocol = Nothing
-    , _amdPp = True
-    , _amdAccessToken = Nothing
-    , _amdUploadType = Nothing
-    , _amdModulesId = pAmdModulesId_
-    , _amdBearerToken = Nothing
-    , _amdAppsId = pAmdAppsId_
-    , _amdCallback = Nothing
-    }
-
--- | V1 error format.
-amdXgafv :: Lens' AppsModulesDelete (Maybe Text)
-amdXgafv = lens _amdXgafv (\ s a -> s{_amdXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-amdUploadProtocol :: Lens' AppsModulesDelete (Maybe Text)
-amdUploadProtocol
-  = lens _amdUploadProtocol
-      (\ s a -> s{_amdUploadProtocol = a})
-
--- | Pretty-print response.
-amdPp :: Lens' AppsModulesDelete Bool
-amdPp = lens _amdPp (\ s a -> s{_amdPp = a})
-
--- | OAuth access token.
-amdAccessToken :: Lens' AppsModulesDelete (Maybe Text)
-amdAccessToken
-  = lens _amdAccessToken
-      (\ s a -> s{_amdAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-amdUploadType :: Lens' AppsModulesDelete (Maybe Text)
-amdUploadType
-  = lens _amdUploadType
-      (\ s a -> s{_amdUploadType = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-amdModulesId :: Lens' AppsModulesDelete Text
-amdModulesId
-  = lens _amdModulesId (\ s a -> s{_amdModulesId = a})
-
--- | OAuth bearer token.
-amdBearerToken :: Lens' AppsModulesDelete (Maybe Text)
-amdBearerToken
-  = lens _amdBearerToken
-      (\ s a -> s{_amdBearerToken = a})
-
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/modules\/default\".
-amdAppsId :: Lens' AppsModulesDelete Text
-amdAppsId
-  = lens _amdAppsId (\ s a -> s{_amdAppsId = a})
-
--- | JSONP
-amdCallback :: Lens' AppsModulesDelete (Maybe Text)
-amdCallback
-  = lens _amdCallback (\ s a -> s{_amdCallback = a})
-
-instance GoogleRequest AppsModulesDelete where
-        type Rs AppsModulesDelete = Operation
-        requestClient AppsModulesDelete{..}
-          = go _amdAppsId _amdModulesId _amdXgafv
-              _amdUploadProtocol
-              (Just _amdPp)
-              _amdAccessToken
-              _amdUploadType
-              _amdBearerToken
-              _amdCallback
-              (Just AltJSON)
-              appEngineService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AppsModulesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Modules/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Get.hs
+++ /dev/null
@@ -1,182 +0,0 @@
-{-# 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.AppEngine.Apps.Modules.Get
--- Copyright   : (c) 2015 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)
---
--- Gets the current configuration of the module.
---
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.modules.get@.
-module Network.Google.Resource.AppEngine.Apps.Modules.Get
-    (
-    -- * REST Resource
-      AppsModulesGetResource
-
-    -- * Creating a Request
-    , appsModulesGet
-    , AppsModulesGet
-
-    -- * Request Lenses
-    , amgXgafv
-    , amgUploadProtocol
-    , amgPp
-    , amgAccessToken
-    , amgUploadType
-    , amgModulesId
-    , amgBearerToken
-    , amgAppsId
-    , amgCallback
-    ) where
-
-import           Network.Google.AppEngine.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @appengine.apps.modules.get@ method which the
--- 'AppsModulesGet' request conforms to.
-type AppsModulesGetResource =
-     "v1beta4" :>
-       "apps" :>
-         Capture "appsId" Text :>
-           "modules" :>
-             Capture "modulesId" Text :>
-               QueryParam "$.xgafv" Text :>
-                 QueryParam "upload_protocol" Text :>
-                   QueryParam "pp" Bool :>
-                     QueryParam "access_token" Text :>
-                       QueryParam "uploadType" Text :>
-                         QueryParam "bearer_token" Text :>
-                           QueryParam "callback" Text :>
-                             QueryParam "alt" AltJSON :> Get '[JSON] Module
-
--- | Gets the current configuration of the module.
---
--- /See:/ 'appsModulesGet' smart constructor.
-data AppsModulesGet = AppsModulesGet
-    { _amgXgafv          :: !(Maybe Text)
-    , _amgUploadProtocol :: !(Maybe Text)
-    , _amgPp             :: !Bool
-    , _amgAccessToken    :: !(Maybe Text)
-    , _amgUploadType     :: !(Maybe Text)
-    , _amgModulesId      :: !Text
-    , _amgBearerToken    :: !(Maybe Text)
-    , _amgAppsId         :: !Text
-    , _amgCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AppsModulesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'amgXgafv'
---
--- * 'amgUploadProtocol'
---
--- * 'amgPp'
---
--- * 'amgAccessToken'
---
--- * 'amgUploadType'
---
--- * 'amgModulesId'
---
--- * 'amgBearerToken'
---
--- * 'amgAppsId'
---
--- * 'amgCallback'
-appsModulesGet
-    :: Text -- ^ 'amgModulesId'
-    -> Text -- ^ 'amgAppsId'
-    -> AppsModulesGet
-appsModulesGet pAmgModulesId_ pAmgAppsId_ =
-    AppsModulesGet
-    { _amgXgafv = Nothing
-    , _amgUploadProtocol = Nothing
-    , _amgPp = True
-    , _amgAccessToken = Nothing
-    , _amgUploadType = Nothing
-    , _amgModulesId = pAmgModulesId_
-    , _amgBearerToken = Nothing
-    , _amgAppsId = pAmgAppsId_
-    , _amgCallback = Nothing
-    }
-
--- | V1 error format.
-amgXgafv :: Lens' AppsModulesGet (Maybe Text)
-amgXgafv = lens _amgXgafv (\ s a -> s{_amgXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-amgUploadProtocol :: Lens' AppsModulesGet (Maybe Text)
-amgUploadProtocol
-  = lens _amgUploadProtocol
-      (\ s a -> s{_amgUploadProtocol = a})
-
--- | Pretty-print response.
-amgPp :: Lens' AppsModulesGet Bool
-amgPp = lens _amgPp (\ s a -> s{_amgPp = a})
-
--- | OAuth access token.
-amgAccessToken :: Lens' AppsModulesGet (Maybe Text)
-amgAccessToken
-  = lens _amgAccessToken
-      (\ s a -> s{_amgAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-amgUploadType :: Lens' AppsModulesGet (Maybe Text)
-amgUploadType
-  = lens _amgUploadType
-      (\ s a -> s{_amgUploadType = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-amgModulesId :: Lens' AppsModulesGet Text
-amgModulesId
-  = lens _amgModulesId (\ s a -> s{_amgModulesId = a})
-
--- | OAuth bearer token.
-amgBearerToken :: Lens' AppsModulesGet (Maybe Text)
-amgBearerToken
-  = lens _amgBearerToken
-      (\ s a -> s{_amgBearerToken = a})
-
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/modules\/default\".
-amgAppsId :: Lens' AppsModulesGet Text
-amgAppsId
-  = lens _amgAppsId (\ s a -> s{_amgAppsId = a})
-
--- | JSONP
-amgCallback :: Lens' AppsModulesGet (Maybe Text)
-amgCallback
-  = lens _amgCallback (\ s a -> s{_amgCallback = a})
-
-instance GoogleRequest AppsModulesGet where
-        type Rs AppsModulesGet = Module
-        requestClient AppsModulesGet{..}
-          = go _amgAppsId _amgModulesId _amgXgafv
-              _amgUploadProtocol
-              (Just _amgPp)
-              _amgAccessToken
-              _amgUploadType
-              _amgBearerToken
-              _amgCallback
-              (Just AltJSON)
-              appEngineService
-          where go
-                  = buildClient (Proxy :: Proxy AppsModulesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Modules/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Modules/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AppEngine/Apps/Modules/List.hs
+++ /dev/null
@@ -1,196 +0,0 @@
-{-# 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.AppEngine.Apps.Modules.List
--- Copyright   : (c) 2015 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)
---
--- Lists all the modules in the application.
---
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.modules.list@.
-module Network.Google.Resource.AppEngine.Apps.Modules.List
-    (
-    -- * REST Resource
-      AppsModulesListResource
-
-    -- * Creating a Request
-    , appsModulesList
-    , AppsModulesList
-
-    -- * Request Lenses
-    , amlXgafv
-    , amlUploadProtocol
-    , amlPp
-    , amlAccessToken
-    , amlUploadType
-    , amlBearerToken
-    , amlAppsId
-    , amlPageToken
-    , amlPageSize
-    , amlCallback
-    ) where
-
-import           Network.Google.AppEngine.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @appengine.apps.modules.list@ method which the
--- 'AppsModulesList' request conforms to.
-type AppsModulesListResource =
-     "v1beta4" :>
-       "apps" :>
-         Capture "appsId" Text :>
-           "modules" :>
-             QueryParam "$.xgafv" Text :>
-               QueryParam "upload_protocol" Text :>
-                 QueryParam "pp" Bool :>
-                   QueryParam "access_token" Text :>
-                     QueryParam "uploadType" Text :>
-                       QueryParam "bearer_token" Text :>
-                         QueryParam "pageToken" Text :>
-                           QueryParam "pageSize" (Textual Int32) :>
-                             QueryParam "callback" Text :>
-                               QueryParam "alt" AltJSON :>
-                                 Get '[JSON] ListModulesResponse
-
--- | Lists all the modules in the application.
---
--- /See:/ 'appsModulesList' smart constructor.
-data AppsModulesList = AppsModulesList
-    { _amlXgafv          :: !(Maybe Text)
-    , _amlUploadProtocol :: !(Maybe Text)
-    , _amlPp             :: !Bool
-    , _amlAccessToken    :: !(Maybe Text)
-    , _amlUploadType     :: !(Maybe Text)
-    , _amlBearerToken    :: !(Maybe Text)
-    , _amlAppsId         :: !Text
-    , _amlPageToken      :: !(Maybe Text)
-    , _amlPageSize       :: !(Maybe (Textual Int32))
-    , _amlCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AppsModulesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'amlXgafv'
---
--- * 'amlUploadProtocol'
---
--- * 'amlPp'
---
--- * 'amlAccessToken'
---
--- * 'amlUploadType'
---
--- * 'amlBearerToken'
---
--- * 'amlAppsId'
---
--- * 'amlPageToken'
---
--- * 'amlPageSize'
---
--- * 'amlCallback'
-appsModulesList
-    :: Text -- ^ 'amlAppsId'
-    -> AppsModulesList
-appsModulesList pAmlAppsId_ =
-    AppsModulesList
-    { _amlXgafv = Nothing
-    , _amlUploadProtocol = Nothing
-    , _amlPp = True
-    , _amlAccessToken = Nothing
-    , _amlUploadType = Nothing
-    , _amlBearerToken = Nothing
-    , _amlAppsId = pAmlAppsId_
-    , _amlPageToken = Nothing
-    , _amlPageSize = Nothing
-    , _amlCallback = Nothing
-    }
-
--- | V1 error format.
-amlXgafv :: Lens' AppsModulesList (Maybe Text)
-amlXgafv = lens _amlXgafv (\ s a -> s{_amlXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-amlUploadProtocol :: Lens' AppsModulesList (Maybe Text)
-amlUploadProtocol
-  = lens _amlUploadProtocol
-      (\ s a -> s{_amlUploadProtocol = a})
-
--- | Pretty-print response.
-amlPp :: Lens' AppsModulesList Bool
-amlPp = lens _amlPp (\ s a -> s{_amlPp = a})
-
--- | OAuth access token.
-amlAccessToken :: Lens' AppsModulesList (Maybe Text)
-amlAccessToken
-  = lens _amlAccessToken
-      (\ s a -> s{_amlAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-amlUploadType :: Lens' AppsModulesList (Maybe Text)
-amlUploadType
-  = lens _amlUploadType
-      (\ s a -> s{_amlUploadType = a})
-
--- | OAuth bearer token.
-amlBearerToken :: Lens' AppsModulesList (Maybe Text)
-amlBearerToken
-  = lens _amlBearerToken
-      (\ s a -> s{_amlBearerToken = a})
-
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\".
-amlAppsId :: Lens' AppsModulesList Text
-amlAppsId
-  = lens _amlAppsId (\ s a -> s{_amlAppsId = a})
-
--- | Continuation token for fetching the next page of results.
-amlPageToken :: Lens' AppsModulesList (Maybe Text)
-amlPageToken
-  = lens _amlPageToken (\ s a -> s{_amlPageToken = a})
-
--- | Maximum results to return per page.
-amlPageSize :: Lens' AppsModulesList (Maybe Int32)
-amlPageSize
-  = lens _amlPageSize (\ s a -> s{_amlPageSize = a}) .
-      mapping _Coerce
-
--- | JSONP
-amlCallback :: Lens' AppsModulesList (Maybe Text)
-amlCallback
-  = lens _amlCallback (\ s a -> s{_amlCallback = a})
-
-instance GoogleRequest AppsModulesList where
-        type Rs AppsModulesList = ListModulesResponse
-        requestClient AppsModulesList{..}
-          = go _amlAppsId _amlXgafv _amlUploadProtocol
-              (Just _amlPp)
-              _amlAccessToken
-              _amlUploadType
-              _amlBearerToken
-              _amlPageToken
-              _amlPageSize
-              _amlCallback
-              (Just AltJSON)
-              appEngineService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AppsModulesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/Modules/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Patch.hs
+++ /dev/null
@@ -1,222 +0,0 @@
-{-# 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.AppEngine.Apps.Modules.Patch
--- Copyright   : (c) 2015 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)
---
--- Updates the configuration of the specified module.
---
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.modules.patch@.
-module Network.Google.Resource.AppEngine.Apps.Modules.Patch
-    (
-    -- * REST Resource
-      AppsModulesPatchResource
-
-    -- * Creating a Request
-    , appsModulesPatch
-    , AppsModulesPatch
-
-    -- * Request Lenses
-    , ampXgafv
-    , ampUploadProtocol
-    , ampPp
-    , ampAccessToken
-    , ampUploadType
-    , ampPayload
-    , ampModulesId
-    , ampMigrateTraffic
-    , ampMask
-    , ampBearerToken
-    , ampAppsId
-    , ampCallback
-    ) where
-
-import           Network.Google.AppEngine.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @appengine.apps.modules.patch@ method which the
--- 'AppsModulesPatch' request conforms to.
-type AppsModulesPatchResource =
-     "v1beta4" :>
-       "apps" :>
-         Capture "appsId" Text :>
-           "modules" :>
-             Capture "modulesId" Text :>
-               QueryParam "$.xgafv" Text :>
-                 QueryParam "upload_protocol" Text :>
-                   QueryParam "pp" Bool :>
-                     QueryParam "access_token" Text :>
-                       QueryParam "uploadType" Text :>
-                         QueryParam "migrateTraffic" Bool :>
-                           QueryParam "mask" Text :>
-                             QueryParam "bearer_token" Text :>
-                               QueryParam "callback" Text :>
-                                 QueryParam "alt" AltJSON :>
-                                   ReqBody '[JSON] Module :>
-                                     Patch '[JSON] Operation
-
--- | Updates the configuration of the specified module.
---
--- /See:/ 'appsModulesPatch' smart constructor.
-data AppsModulesPatch = AppsModulesPatch
-    { _ampXgafv          :: !(Maybe Text)
-    , _ampUploadProtocol :: !(Maybe Text)
-    , _ampPp             :: !Bool
-    , _ampAccessToken    :: !(Maybe Text)
-    , _ampUploadType     :: !(Maybe Text)
-    , _ampPayload        :: !Module
-    , _ampModulesId      :: !Text
-    , _ampMigrateTraffic :: !(Maybe Bool)
-    , _ampMask           :: !(Maybe Text)
-    , _ampBearerToken    :: !(Maybe Text)
-    , _ampAppsId         :: !Text
-    , _ampCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AppsModulesPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ampXgafv'
---
--- * 'ampUploadProtocol'
---
--- * 'ampPp'
---
--- * 'ampAccessToken'
---
--- * 'ampUploadType'
---
--- * 'ampPayload'
---
--- * 'ampModulesId'
---
--- * 'ampMigrateTraffic'
---
--- * 'ampMask'
---
--- * 'ampBearerToken'
---
--- * 'ampAppsId'
---
--- * 'ampCallback'
-appsModulesPatch
-    :: Module -- ^ 'ampPayload'
-    -> Text -- ^ 'ampModulesId'
-    -> Text -- ^ 'ampAppsId'
-    -> AppsModulesPatch
-appsModulesPatch pAmpPayload_ pAmpModulesId_ pAmpAppsId_ =
-    AppsModulesPatch
-    { _ampXgafv = Nothing
-    , _ampUploadProtocol = Nothing
-    , _ampPp = True
-    , _ampAccessToken = Nothing
-    , _ampUploadType = Nothing
-    , _ampPayload = pAmpPayload_
-    , _ampModulesId = pAmpModulesId_
-    , _ampMigrateTraffic = Nothing
-    , _ampMask = Nothing
-    , _ampBearerToken = Nothing
-    , _ampAppsId = pAmpAppsId_
-    , _ampCallback = Nothing
-    }
-
--- | V1 error format.
-ampXgafv :: Lens' AppsModulesPatch (Maybe Text)
-ampXgafv = lens _ampXgafv (\ s a -> s{_ampXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-ampUploadProtocol :: Lens' AppsModulesPatch (Maybe Text)
-ampUploadProtocol
-  = lens _ampUploadProtocol
-      (\ s a -> s{_ampUploadProtocol = a})
-
--- | Pretty-print response.
-ampPp :: Lens' AppsModulesPatch Bool
-ampPp = lens _ampPp (\ s a -> s{_ampPp = a})
-
--- | OAuth access token.
-ampAccessToken :: Lens' AppsModulesPatch (Maybe Text)
-ampAccessToken
-  = lens _ampAccessToken
-      (\ s a -> s{_ampAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-ampUploadType :: Lens' AppsModulesPatch (Maybe Text)
-ampUploadType
-  = lens _ampUploadType
-      (\ s a -> s{_ampUploadType = a})
-
--- | Multipart request metadata.
-ampPayload :: Lens' AppsModulesPatch Module
-ampPayload
-  = lens _ampPayload (\ s a -> s{_ampPayload = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-ampModulesId :: Lens' AppsModulesPatch Text
-ampModulesId
-  = lens _ampModulesId (\ s a -> s{_ampModulesId = a})
-
--- | Whether to use Traffic Migration to shift traffic gradually. Traffic can
--- only be migrated from a single version to another single version.
-ampMigrateTraffic :: Lens' AppsModulesPatch (Maybe Bool)
-ampMigrateTraffic
-  = lens _ampMigrateTraffic
-      (\ s a -> s{_ampMigrateTraffic = a})
-
--- | Standard field mask for the set of fields to be updated.
-ampMask :: Lens' AppsModulesPatch (Maybe Text)
-ampMask = lens _ampMask (\ s a -> s{_ampMask = a})
-
--- | OAuth bearer token.
-ampBearerToken :: Lens' AppsModulesPatch (Maybe Text)
-ampBearerToken
-  = lens _ampBearerToken
-      (\ s a -> s{_ampBearerToken = a})
-
--- | Part of \`name\`. Name of the resource to update. For example:
--- \"apps\/myapp\/modules\/default\".
-ampAppsId :: Lens' AppsModulesPatch Text
-ampAppsId
-  = lens _ampAppsId (\ s a -> s{_ampAppsId = a})
-
--- | JSONP
-ampCallback :: Lens' AppsModulesPatch (Maybe Text)
-ampCallback
-  = lens _ampCallback (\ s a -> s{_ampCallback = a})
-
-instance GoogleRequest AppsModulesPatch where
-        type Rs AppsModulesPatch = Operation
-        requestClient AppsModulesPatch{..}
-          = go _ampAppsId _ampModulesId _ampXgafv
-              _ampUploadProtocol
-              (Just _ampPp)
-              _ampAccessToken
-              _ampUploadType
-              _ampMigrateTraffic
-              _ampMask
-              _ampBearerToken
-              _ampCallback
-              (Just AltJSON)
-              _ampPayload
-              appEngineService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AppsModulesPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Create.hs b/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Create.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Create.hs
+++ /dev/null
@@ -1,201 +0,0 @@
-{-# 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.AppEngine.Apps.Modules.Versions.Create
--- Copyright   : (c) 2015 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)
---
--- Deploys new code and resource files to a version.
---
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.modules.versions.create@.
-module Network.Google.Resource.AppEngine.Apps.Modules.Versions.Create
-    (
-    -- * REST Resource
-      AppsModulesVersionsCreateResource
-
-    -- * Creating a Request
-    , appsModulesVersionsCreate
-    , AppsModulesVersionsCreate
-
-    -- * Request Lenses
-    , amvcXgafv
-    , amvcUploadProtocol
-    , amvcPp
-    , amvcAccessToken
-    , amvcUploadType
-    , amvcPayload
-    , amvcModulesId
-    , amvcBearerToken
-    , amvcAppsId
-    , amvcCallback
-    ) where
-
-import           Network.Google.AppEngine.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @appengine.apps.modules.versions.create@ method which the
--- 'AppsModulesVersionsCreate' request conforms to.
-type AppsModulesVersionsCreateResource =
-     "v1beta4" :>
-       "apps" :>
-         Capture "appsId" Text :>
-           "modules" :>
-             Capture "modulesId" Text :>
-               "versions" :>
-                 QueryParam "$.xgafv" Text :>
-                   QueryParam "upload_protocol" Text :>
-                     QueryParam "pp" Bool :>
-                       QueryParam "access_token" Text :>
-                         QueryParam "uploadType" Text :>
-                           QueryParam "bearer_token" Text :>
-                             QueryParam "callback" Text :>
-                               QueryParam "alt" AltJSON :>
-                                 ReqBody '[JSON] Version :>
-                                   Post '[JSON] Operation
-
--- | Deploys new code and resource files to a version.
---
--- /See:/ 'appsModulesVersionsCreate' smart constructor.
-data AppsModulesVersionsCreate = AppsModulesVersionsCreate
-    { _amvcXgafv          :: !(Maybe Text)
-    , _amvcUploadProtocol :: !(Maybe Text)
-    , _amvcPp             :: !Bool
-    , _amvcAccessToken    :: !(Maybe Text)
-    , _amvcUploadType     :: !(Maybe Text)
-    , _amvcPayload        :: !Version
-    , _amvcModulesId      :: !Text
-    , _amvcBearerToken    :: !(Maybe Text)
-    , _amvcAppsId         :: !Text
-    , _amvcCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AppsModulesVersionsCreate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'amvcXgafv'
---
--- * 'amvcUploadProtocol'
---
--- * 'amvcPp'
---
--- * 'amvcAccessToken'
---
--- * 'amvcUploadType'
---
--- * 'amvcPayload'
---
--- * 'amvcModulesId'
---
--- * 'amvcBearerToken'
---
--- * 'amvcAppsId'
---
--- * 'amvcCallback'
-appsModulesVersionsCreate
-    :: Version -- ^ 'amvcPayload'
-    -> Text -- ^ 'amvcModulesId'
-    -> Text -- ^ 'amvcAppsId'
-    -> AppsModulesVersionsCreate
-appsModulesVersionsCreate pAmvcPayload_ pAmvcModulesId_ pAmvcAppsId_ =
-    AppsModulesVersionsCreate
-    { _amvcXgafv = Nothing
-    , _amvcUploadProtocol = Nothing
-    , _amvcPp = True
-    , _amvcAccessToken = Nothing
-    , _amvcUploadType = Nothing
-    , _amvcPayload = pAmvcPayload_
-    , _amvcModulesId = pAmvcModulesId_
-    , _amvcBearerToken = Nothing
-    , _amvcAppsId = pAmvcAppsId_
-    , _amvcCallback = Nothing
-    }
-
--- | V1 error format.
-amvcXgafv :: Lens' AppsModulesVersionsCreate (Maybe Text)
-amvcXgafv
-  = lens _amvcXgafv (\ s a -> s{_amvcXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-amvcUploadProtocol :: Lens' AppsModulesVersionsCreate (Maybe Text)
-amvcUploadProtocol
-  = lens _amvcUploadProtocol
-      (\ s a -> s{_amvcUploadProtocol = a})
-
--- | Pretty-print response.
-amvcPp :: Lens' AppsModulesVersionsCreate Bool
-amvcPp = lens _amvcPp (\ s a -> s{_amvcPp = a})
-
--- | OAuth access token.
-amvcAccessToken :: Lens' AppsModulesVersionsCreate (Maybe Text)
-amvcAccessToken
-  = lens _amvcAccessToken
-      (\ s a -> s{_amvcAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-amvcUploadType :: Lens' AppsModulesVersionsCreate (Maybe Text)
-amvcUploadType
-  = lens _amvcUploadType
-      (\ s a -> s{_amvcUploadType = a})
-
--- | Multipart request metadata.
-amvcPayload :: Lens' AppsModulesVersionsCreate Version
-amvcPayload
-  = lens _amvcPayload (\ s a -> s{_amvcPayload = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-amvcModulesId :: Lens' AppsModulesVersionsCreate Text
-amvcModulesId
-  = lens _amvcModulesId
-      (\ s a -> s{_amvcModulesId = a})
-
--- | OAuth bearer token.
-amvcBearerToken :: Lens' AppsModulesVersionsCreate (Maybe Text)
-amvcBearerToken
-  = lens _amvcBearerToken
-      (\ s a -> s{_amvcBearerToken = a})
-
--- | Part of \`name\`. Name of the resource to update. For example:
--- \"apps\/myapp\/modules\/default\".
-amvcAppsId :: Lens' AppsModulesVersionsCreate Text
-amvcAppsId
-  = lens _amvcAppsId (\ s a -> s{_amvcAppsId = a})
-
--- | JSONP
-amvcCallback :: Lens' AppsModulesVersionsCreate (Maybe Text)
-amvcCallback
-  = lens _amvcCallback (\ s a -> s{_amvcCallback = a})
-
-instance GoogleRequest AppsModulesVersionsCreate
-         where
-        type Rs AppsModulesVersionsCreate = Operation
-        requestClient AppsModulesVersionsCreate{..}
-          = go _amvcAppsId _amvcModulesId _amvcXgafv
-              _amvcUploadProtocol
-              (Just _amvcPp)
-              _amvcAccessToken
-              _amvcUploadType
-              _amvcBearerToken
-              _amvcCallback
-              (Just AltJSON)
-              _amvcPayload
-              appEngineService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AppsModulesVersionsCreateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Delete.hs
+++ /dev/null
@@ -1,202 +0,0 @@
-{-# 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.AppEngine.Apps.Modules.Versions.Delete
--- Copyright   : (c) 2015 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)
---
--- Deletes an existing version.
---
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.modules.versions.delete@.
-module Network.Google.Resource.AppEngine.Apps.Modules.Versions.Delete
-    (
-    -- * REST Resource
-      AppsModulesVersionsDeleteResource
-
-    -- * Creating a Request
-    , appsModulesVersionsDelete
-    , AppsModulesVersionsDelete
-
-    -- * Request Lenses
-    , amvdXgafv
-    , amvdUploadProtocol
-    , amvdPp
-    , amvdAccessToken
-    , amvdUploadType
-    , amvdVersionsId
-    , amvdModulesId
-    , amvdBearerToken
-    , amvdAppsId
-    , amvdCallback
-    ) where
-
-import           Network.Google.AppEngine.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @appengine.apps.modules.versions.delete@ method which the
--- 'AppsModulesVersionsDelete' request conforms to.
-type AppsModulesVersionsDeleteResource =
-     "v1beta4" :>
-       "apps" :>
-         Capture "appsId" Text :>
-           "modules" :>
-             Capture "modulesId" Text :>
-               "versions" :>
-                 Capture "versionsId" Text :>
-                   QueryParam "$.xgafv" Text :>
-                     QueryParam "upload_protocol" Text :>
-                       QueryParam "pp" Bool :>
-                         QueryParam "access_token" Text :>
-                           QueryParam "uploadType" Text :>
-                             QueryParam "bearer_token" Text :>
-                               QueryParam "callback" Text :>
-                                 QueryParam "alt" AltJSON :>
-                                   Delete '[JSON] Operation
-
--- | Deletes an existing version.
---
--- /See:/ 'appsModulesVersionsDelete' smart constructor.
-data AppsModulesVersionsDelete = AppsModulesVersionsDelete
-    { _amvdXgafv          :: !(Maybe Text)
-    , _amvdUploadProtocol :: !(Maybe Text)
-    , _amvdPp             :: !Bool
-    , _amvdAccessToken    :: !(Maybe Text)
-    , _amvdUploadType     :: !(Maybe Text)
-    , _amvdVersionsId     :: !Text
-    , _amvdModulesId      :: !Text
-    , _amvdBearerToken    :: !(Maybe Text)
-    , _amvdAppsId         :: !Text
-    , _amvdCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AppsModulesVersionsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'amvdXgafv'
---
--- * 'amvdUploadProtocol'
---
--- * 'amvdPp'
---
--- * 'amvdAccessToken'
---
--- * 'amvdUploadType'
---
--- * 'amvdVersionsId'
---
--- * 'amvdModulesId'
---
--- * 'amvdBearerToken'
---
--- * 'amvdAppsId'
---
--- * 'amvdCallback'
-appsModulesVersionsDelete
-    :: Text -- ^ 'amvdVersionsId'
-    -> Text -- ^ 'amvdModulesId'
-    -> Text -- ^ 'amvdAppsId'
-    -> AppsModulesVersionsDelete
-appsModulesVersionsDelete pAmvdVersionsId_ pAmvdModulesId_ pAmvdAppsId_ =
-    AppsModulesVersionsDelete
-    { _amvdXgafv = Nothing
-    , _amvdUploadProtocol = Nothing
-    , _amvdPp = True
-    , _amvdAccessToken = Nothing
-    , _amvdUploadType = Nothing
-    , _amvdVersionsId = pAmvdVersionsId_
-    , _amvdModulesId = pAmvdModulesId_
-    , _amvdBearerToken = Nothing
-    , _amvdAppsId = pAmvdAppsId_
-    , _amvdCallback = Nothing
-    }
-
--- | V1 error format.
-amvdXgafv :: Lens' AppsModulesVersionsDelete (Maybe Text)
-amvdXgafv
-  = lens _amvdXgafv (\ s a -> s{_amvdXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-amvdUploadProtocol :: Lens' AppsModulesVersionsDelete (Maybe Text)
-amvdUploadProtocol
-  = lens _amvdUploadProtocol
-      (\ s a -> s{_amvdUploadProtocol = a})
-
--- | Pretty-print response.
-amvdPp :: Lens' AppsModulesVersionsDelete Bool
-amvdPp = lens _amvdPp (\ s a -> s{_amvdPp = a})
-
--- | OAuth access token.
-amvdAccessToken :: Lens' AppsModulesVersionsDelete (Maybe Text)
-amvdAccessToken
-  = lens _amvdAccessToken
-      (\ s a -> s{_amvdAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-amvdUploadType :: Lens' AppsModulesVersionsDelete (Maybe Text)
-amvdUploadType
-  = lens _amvdUploadType
-      (\ s a -> s{_amvdUploadType = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-amvdVersionsId :: Lens' AppsModulesVersionsDelete Text
-amvdVersionsId
-  = lens _amvdVersionsId
-      (\ s a -> s{_amvdVersionsId = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-amvdModulesId :: Lens' AppsModulesVersionsDelete Text
-amvdModulesId
-  = lens _amvdModulesId
-      (\ s a -> s{_amvdModulesId = a})
-
--- | OAuth bearer token.
-amvdBearerToken :: Lens' AppsModulesVersionsDelete (Maybe Text)
-amvdBearerToken
-  = lens _amvdBearerToken
-      (\ s a -> s{_amvdBearerToken = a})
-
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/modules\/default\/versions\/v1\".
-amvdAppsId :: Lens' AppsModulesVersionsDelete Text
-amvdAppsId
-  = lens _amvdAppsId (\ s a -> s{_amvdAppsId = a})
-
--- | JSONP
-amvdCallback :: Lens' AppsModulesVersionsDelete (Maybe Text)
-amvdCallback
-  = lens _amvdCallback (\ s a -> s{_amvdCallback = a})
-
-instance GoogleRequest AppsModulesVersionsDelete
-         where
-        type Rs AppsModulesVersionsDelete = Operation
-        requestClient AppsModulesVersionsDelete{..}
-          = go _amvdAppsId _amvdModulesId _amvdVersionsId
-              _amvdXgafv
-              _amvdUploadProtocol
-              (Just _amvdPp)
-              _amvdAccessToken
-              _amvdUploadType
-              _amvdBearerToken
-              _amvdCallback
-              (Just AltJSON)
-              appEngineService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AppsModulesVersionsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/Get.hs
+++ /dev/null
@@ -1,212 +0,0 @@
-{-# 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.AppEngine.Apps.Modules.Versions.Get
--- Copyright   : (c) 2015 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)
---
--- Gets application deployment information.
---
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.modules.versions.get@.
-module Network.Google.Resource.AppEngine.Apps.Modules.Versions.Get
-    (
-    -- * REST Resource
-      AppsModulesVersionsGetResource
-
-    -- * Creating a Request
-    , appsModulesVersionsGet
-    , AppsModulesVersionsGet
-
-    -- * Request Lenses
-    , amvgXgafv
-    , amvgUploadProtocol
-    , amvgPp
-    , amvgAccessToken
-    , amvgUploadType
-    , amvgVersionsId
-    , amvgModulesId
-    , amvgBearerToken
-    , amvgAppsId
-    , amvgView
-    , amvgCallback
-    ) where
-
-import           Network.Google.AppEngine.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @appengine.apps.modules.versions.get@ method which the
--- 'AppsModulesVersionsGet' request conforms to.
-type AppsModulesVersionsGetResource =
-     "v1beta4" :>
-       "apps" :>
-         Capture "appsId" Text :>
-           "modules" :>
-             Capture "modulesId" Text :>
-               "versions" :>
-                 Capture "versionsId" Text :>
-                   QueryParam "$.xgafv" Text :>
-                     QueryParam "upload_protocol" Text :>
-                       QueryParam "pp" Bool :>
-                         QueryParam "access_token" Text :>
-                           QueryParam "uploadType" Text :>
-                             QueryParam "bearer_token" Text :>
-                               QueryParam "view" Text :>
-                                 QueryParam "callback" Text :>
-                                   QueryParam "alt" AltJSON :>
-                                     Get '[JSON] Version
-
--- | Gets application deployment information.
---
--- /See:/ 'appsModulesVersionsGet' smart constructor.
-data AppsModulesVersionsGet = AppsModulesVersionsGet
-    { _amvgXgafv          :: !(Maybe Text)
-    , _amvgUploadProtocol :: !(Maybe Text)
-    , _amvgPp             :: !Bool
-    , _amvgAccessToken    :: !(Maybe Text)
-    , _amvgUploadType     :: !(Maybe Text)
-    , _amvgVersionsId     :: !Text
-    , _amvgModulesId      :: !Text
-    , _amvgBearerToken    :: !(Maybe Text)
-    , _amvgAppsId         :: !Text
-    , _amvgView           :: !(Maybe Text)
-    , _amvgCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AppsModulesVersionsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'amvgXgafv'
---
--- * 'amvgUploadProtocol'
---
--- * 'amvgPp'
---
--- * 'amvgAccessToken'
---
--- * 'amvgUploadType'
---
--- * 'amvgVersionsId'
---
--- * 'amvgModulesId'
---
--- * 'amvgBearerToken'
---
--- * 'amvgAppsId'
---
--- * 'amvgView'
---
--- * 'amvgCallback'
-appsModulesVersionsGet
-    :: Text -- ^ 'amvgVersionsId'
-    -> Text -- ^ 'amvgModulesId'
-    -> Text -- ^ 'amvgAppsId'
-    -> AppsModulesVersionsGet
-appsModulesVersionsGet pAmvgVersionsId_ pAmvgModulesId_ pAmvgAppsId_ =
-    AppsModulesVersionsGet
-    { _amvgXgafv = Nothing
-    , _amvgUploadProtocol = Nothing
-    , _amvgPp = True
-    , _amvgAccessToken = Nothing
-    , _amvgUploadType = Nothing
-    , _amvgVersionsId = pAmvgVersionsId_
-    , _amvgModulesId = pAmvgModulesId_
-    , _amvgBearerToken = Nothing
-    , _amvgAppsId = pAmvgAppsId_
-    , _amvgView = Nothing
-    , _amvgCallback = Nothing
-    }
-
--- | V1 error format.
-amvgXgafv :: Lens' AppsModulesVersionsGet (Maybe Text)
-amvgXgafv
-  = lens _amvgXgafv (\ s a -> s{_amvgXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-amvgUploadProtocol :: Lens' AppsModulesVersionsGet (Maybe Text)
-amvgUploadProtocol
-  = lens _amvgUploadProtocol
-      (\ s a -> s{_amvgUploadProtocol = a})
-
--- | Pretty-print response.
-amvgPp :: Lens' AppsModulesVersionsGet Bool
-amvgPp = lens _amvgPp (\ s a -> s{_amvgPp = a})
-
--- | OAuth access token.
-amvgAccessToken :: Lens' AppsModulesVersionsGet (Maybe Text)
-amvgAccessToken
-  = lens _amvgAccessToken
-      (\ s a -> s{_amvgAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-amvgUploadType :: Lens' AppsModulesVersionsGet (Maybe Text)
-amvgUploadType
-  = lens _amvgUploadType
-      (\ s a -> s{_amvgUploadType = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-amvgVersionsId :: Lens' AppsModulesVersionsGet Text
-amvgVersionsId
-  = lens _amvgVersionsId
-      (\ s a -> s{_amvgVersionsId = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-amvgModulesId :: Lens' AppsModulesVersionsGet Text
-amvgModulesId
-  = lens _amvgModulesId
-      (\ s a -> s{_amvgModulesId = a})
-
--- | OAuth bearer token.
-amvgBearerToken :: Lens' AppsModulesVersionsGet (Maybe Text)
-amvgBearerToken
-  = lens _amvgBearerToken
-      (\ s a -> s{_amvgBearerToken = a})
-
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/modules\/default\/versions\/v1\".
-amvgAppsId :: Lens' AppsModulesVersionsGet Text
-amvgAppsId
-  = lens _amvgAppsId (\ s a -> s{_amvgAppsId = a})
-
--- | Controls the set of fields returned in the \`Get\` response.
-amvgView :: Lens' AppsModulesVersionsGet (Maybe Text)
-amvgView = lens _amvgView (\ s a -> s{_amvgView = a})
-
--- | JSONP
-amvgCallback :: Lens' AppsModulesVersionsGet (Maybe Text)
-amvgCallback
-  = lens _amvgCallback (\ s a -> s{_amvgCallback = a})
-
-instance GoogleRequest AppsModulesVersionsGet where
-        type Rs AppsModulesVersionsGet = Version
-        requestClient AppsModulesVersionsGet{..}
-          = go _amvgAppsId _amvgModulesId _amvgVersionsId
-              _amvgXgafv
-              _amvgUploadProtocol
-              (Just _amvgPp)
-              _amvgAccessToken
-              _amvgUploadType
-              _amvgBearerToken
-              _amvgView
-              _amvgCallback
-              (Just AltJSON)
-              appEngineService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AppsModulesVersionsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/AppEngine/Apps/Modules/Versions/List.hs
+++ /dev/null
@@ -1,225 +0,0 @@
-{-# 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.AppEngine.Apps.Modules.Versions.List
--- Copyright   : (c) 2015 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)
---
--- Lists the versions of a module.
---
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.modules.versions.list@.
-module Network.Google.Resource.AppEngine.Apps.Modules.Versions.List
-    (
-    -- * REST Resource
-      AppsModulesVersionsListResource
-
-    -- * Creating a Request
-    , appsModulesVersionsList
-    , AppsModulesVersionsList
-
-    -- * Request Lenses
-    , amvlXgafv
-    , amvlUploadProtocol
-    , amvlPp
-    , amvlAccessToken
-    , amvlUploadType
-    , amvlModulesId
-    , amvlBearerToken
-    , amvlAppsId
-    , amvlView
-    , amvlPageToken
-    , amvlPageSize
-    , amvlCallback
-    ) where
-
-import           Network.Google.AppEngine.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @appengine.apps.modules.versions.list@ method which the
--- 'AppsModulesVersionsList' request conforms to.
-type AppsModulesVersionsListResource =
-     "v1beta4" :>
-       "apps" :>
-         Capture "appsId" Text :>
-           "modules" :>
-             Capture "modulesId" Text :>
-               "versions" :>
-                 QueryParam "$.xgafv" Text :>
-                   QueryParam "upload_protocol" Text :>
-                     QueryParam "pp" Bool :>
-                       QueryParam "access_token" Text :>
-                         QueryParam "uploadType" Text :>
-                           QueryParam "bearer_token" Text :>
-                             QueryParam "view" Text :>
-                               QueryParam "pageToken" Text :>
-                                 QueryParam "pageSize" (Textual Int32) :>
-                                   QueryParam "callback" Text :>
-                                     QueryParam "alt" AltJSON :>
-                                       Get '[JSON] ListVersionsResponse
-
--- | Lists the versions of a module.
---
--- /See:/ 'appsModulesVersionsList' smart constructor.
-data AppsModulesVersionsList = AppsModulesVersionsList
-    { _amvlXgafv          :: !(Maybe Text)
-    , _amvlUploadProtocol :: !(Maybe Text)
-    , _amvlPp             :: !Bool
-    , _amvlAccessToken    :: !(Maybe Text)
-    , _amvlUploadType     :: !(Maybe Text)
-    , _amvlModulesId      :: !Text
-    , _amvlBearerToken    :: !(Maybe Text)
-    , _amvlAppsId         :: !Text
-    , _amvlView           :: !(Maybe Text)
-    , _amvlPageToken      :: !(Maybe Text)
-    , _amvlPageSize       :: !(Maybe (Textual Int32))
-    , _amvlCallback       :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AppsModulesVersionsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'amvlXgafv'
---
--- * 'amvlUploadProtocol'
---
--- * 'amvlPp'
---
--- * 'amvlAccessToken'
---
--- * 'amvlUploadType'
---
--- * 'amvlModulesId'
---
--- * 'amvlBearerToken'
---
--- * 'amvlAppsId'
---
--- * 'amvlView'
---
--- * 'amvlPageToken'
---
--- * 'amvlPageSize'
---
--- * 'amvlCallback'
-appsModulesVersionsList
-    :: Text -- ^ 'amvlModulesId'
-    -> Text -- ^ 'amvlAppsId'
-    -> AppsModulesVersionsList
-appsModulesVersionsList pAmvlModulesId_ pAmvlAppsId_ =
-    AppsModulesVersionsList
-    { _amvlXgafv = Nothing
-    , _amvlUploadProtocol = Nothing
-    , _amvlPp = True
-    , _amvlAccessToken = Nothing
-    , _amvlUploadType = Nothing
-    , _amvlModulesId = pAmvlModulesId_
-    , _amvlBearerToken = Nothing
-    , _amvlAppsId = pAmvlAppsId_
-    , _amvlView = Nothing
-    , _amvlPageToken = Nothing
-    , _amvlPageSize = Nothing
-    , _amvlCallback = Nothing
-    }
-
--- | V1 error format.
-amvlXgafv :: Lens' AppsModulesVersionsList (Maybe Text)
-amvlXgafv
-  = lens _amvlXgafv (\ s a -> s{_amvlXgafv = a})
-
--- | Upload protocol for media (e.g. \"raw\", \"multipart\").
-amvlUploadProtocol :: Lens' AppsModulesVersionsList (Maybe Text)
-amvlUploadProtocol
-  = lens _amvlUploadProtocol
-      (\ s a -> s{_amvlUploadProtocol = a})
-
--- | Pretty-print response.
-amvlPp :: Lens' AppsModulesVersionsList Bool
-amvlPp = lens _amvlPp (\ s a -> s{_amvlPp = a})
-
--- | OAuth access token.
-amvlAccessToken :: Lens' AppsModulesVersionsList (Maybe Text)
-amvlAccessToken
-  = lens _amvlAccessToken
-      (\ s a -> s{_amvlAccessToken = a})
-
--- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
-amvlUploadType :: Lens' AppsModulesVersionsList (Maybe Text)
-amvlUploadType
-  = lens _amvlUploadType
-      (\ s a -> s{_amvlUploadType = a})
-
--- | Part of \`name\`. See documentation of \`appsId\`.
-amvlModulesId :: Lens' AppsModulesVersionsList Text
-amvlModulesId
-  = lens _amvlModulesId
-      (\ s a -> s{_amvlModulesId = a})
-
--- | OAuth bearer token.
-amvlBearerToken :: Lens' AppsModulesVersionsList (Maybe Text)
-amvlBearerToken
-  = lens _amvlBearerToken
-      (\ s a -> s{_amvlBearerToken = a})
-
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/modules\/default\".
-amvlAppsId :: Lens' AppsModulesVersionsList Text
-amvlAppsId
-  = lens _amvlAppsId (\ s a -> s{_amvlAppsId = a})
-
--- | Controls the set of fields returned in the \`List\` response.
-amvlView :: Lens' AppsModulesVersionsList (Maybe Text)
-amvlView = lens _amvlView (\ s a -> s{_amvlView = a})
-
--- | Continuation token for fetching the next page of results.
-amvlPageToken :: Lens' AppsModulesVersionsList (Maybe Text)
-amvlPageToken
-  = lens _amvlPageToken
-      (\ s a -> s{_amvlPageToken = a})
-
--- | Maximum results to return per page.
-amvlPageSize :: Lens' AppsModulesVersionsList (Maybe Int32)
-amvlPageSize
-  = lens _amvlPageSize (\ s a -> s{_amvlPageSize = a})
-      . mapping _Coerce
-
--- | JSONP
-amvlCallback :: Lens' AppsModulesVersionsList (Maybe Text)
-amvlCallback
-  = lens _amvlCallback (\ s a -> s{_amvlCallback = a})
-
-instance GoogleRequest AppsModulesVersionsList where
-        type Rs AppsModulesVersionsList =
-             ListVersionsResponse
-        requestClient AppsModulesVersionsList{..}
-          = go _amvlAppsId _amvlModulesId _amvlXgafv
-              _amvlUploadProtocol
-              (Just _amvlPp)
-              _amvlAccessToken
-              _amvlUploadType
-              _amvlBearerToken
-              _amvlView
-              _amvlPageToken
-              _amvlPageSize
-              _amvlCallback
-              (Just AltJSON)
-              appEngineService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AppsModulesVersionsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Operations/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Operations/Get.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Operations/Get.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Operations/Get.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.AppEngine.Apps.Operations.Get
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,7 +24,7 @@
 -- method to poll the operation result at intervals as recommended by the
 -- API service.
 --
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.operations.get@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.operations.get@.
 module Network.Google.Resource.AppEngine.Apps.Operations.Get
     (
     -- * REST Resource
@@ -52,7 +52,7 @@
 -- | A resource alias for @appengine.apps.operations.get@ method which the
 -- 'AppsOperationsGet' request conforms to.
 type AppsOperationsGetResource =
-     "v1beta4" :>
+     "v1beta5" :>
        "apps" :>
          Capture "appsId" Text :>
            "operations" :>
@@ -71,7 +71,7 @@
 -- API service.
 --
 -- /See:/ 'appsOperationsGet' smart constructor.
-data AppsOperationsGet = AppsOperationsGet
+data AppsOperationsGet = AppsOperationsGet'
     { _aogXgafv          :: !(Maybe Text)
     , _aogUploadProtocol :: !(Maybe Text)
     , _aogPp             :: !Bool
@@ -109,7 +109,7 @@
     -> Text -- ^ 'aogOperationsId'
     -> AppsOperationsGet
 appsOperationsGet pAogAppsId_ pAogOperationsId_ =
-    AppsOperationsGet
+    AppsOperationsGet'
     { _aogXgafv = Nothing
     , _aogUploadProtocol = Nothing
     , _aogPp = True
@@ -171,7 +171,9 @@
 
 instance GoogleRequest AppsOperationsGet where
         type Rs AppsOperationsGet = Operation
-        requestClient AppsOperationsGet{..}
+        type Scopes AppsOperationsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsOperationsGet'{..}
           = go _aogAppsId _aogOperationsId _aogXgafv
               _aogUploadProtocol
               (Just _aogPp)
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Operations/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Operations/List.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Operations/List.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Operations/List.hs
@@ -14,7 +14,7 @@
 
 -- |
 -- Module      : Network.Google.Resource.AppEngine.Apps.Operations.List
--- Copyright   : (c) 2015 Brendan Hay
+-- Copyright   : (c) 2015-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,7 +26,7 @@
 -- to use different resource name schemes, such as
 -- \`users\/*\/operations\`.
 --
--- /See:/ <https://developers.google.com/appengine/ Google App Engine Admin API Reference> for @appengine.apps.operations.list@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.operations.list@.
 module Network.Google.Resource.AppEngine.Apps.Operations.List
     (
     -- * REST Resource
@@ -56,7 +56,7 @@
 -- | A resource alias for @appengine.apps.operations.list@ method which the
 -- 'AppsOperationsList' request conforms to.
 type AppsOperationsListResource =
-     "v1beta4" :>
+     "v1beta5" :>
        "apps" :>
          Capture "appsId" Text :>
            "operations" :>
@@ -80,7 +80,7 @@
 -- \`users\/*\/operations\`.
 --
 -- /See:/ 'appsOperationsList' smart constructor.
-data AppsOperationsList = AppsOperationsList
+data AppsOperationsList = AppsOperationsList'
     { _aolXgafv          :: !(Maybe Text)
     , _aolUploadProtocol :: !(Maybe Text)
     , _aolPp             :: !Bool
@@ -123,7 +123,7 @@
     :: Text -- ^ 'aolAppsId'
     -> AppsOperationsList
 appsOperationsList pAolAppsId_ =
-    AppsOperationsList
+    AppsOperationsList'
     { _aolXgafv = Nothing
     , _aolUploadProtocol = Nothing
     , _aolPp = True
@@ -197,7 +197,9 @@
 
 instance GoogleRequest AppsOperationsList where
         type Rs AppsOperationsList = ListOperationsResponse
-        requestClient AppsOperationsList{..}
+        type Scopes AppsOperationsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsOperationsList'{..}
           = go _aolAppsId _aolXgafv _aolUploadProtocol
               (Just _aolPp)
               _aolAccessToken
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Delete.hs
@@ -0,0 +1,187 @@
+{-# 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.AppEngine.Apps.Services.Delete
+-- 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)
+--
+-- Deletes a service and all enclosed versions.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.delete@.
+module Network.Google.Resource.AppEngine.Apps.Services.Delete
+    (
+    -- * REST Resource
+      AppsServicesDeleteResource
+
+    -- * Creating a Request
+    , appsServicesDelete
+    , AppsServicesDelete
+
+    -- * Request Lenses
+    , asdXgafv
+    , asdUploadProtocol
+    , asdPp
+    , asdAccessToken
+    , asdUploadType
+    , asdBearerToken
+    , asdAppsId
+    , asdServicesId
+    , asdCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.delete@ method which the
+-- 'AppsServicesDelete' request conforms to.
+type AppsServicesDeleteResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Delete '[JSON] Operation
+
+-- | Deletes a service and all enclosed versions.
+--
+-- /See:/ 'appsServicesDelete' smart constructor.
+data AppsServicesDelete = AppsServicesDelete'
+    { _asdXgafv          :: !(Maybe Text)
+    , _asdUploadProtocol :: !(Maybe Text)
+    , _asdPp             :: !Bool
+    , _asdAccessToken    :: !(Maybe Text)
+    , _asdUploadType     :: !(Maybe Text)
+    , _asdBearerToken    :: !(Maybe Text)
+    , _asdAppsId         :: !Text
+    , _asdServicesId     :: !Text
+    , _asdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asdXgafv'
+--
+-- * 'asdUploadProtocol'
+--
+-- * 'asdPp'
+--
+-- * 'asdAccessToken'
+--
+-- * 'asdUploadType'
+--
+-- * 'asdBearerToken'
+--
+-- * 'asdAppsId'
+--
+-- * 'asdServicesId'
+--
+-- * 'asdCallback'
+appsServicesDelete
+    :: Text -- ^ 'asdAppsId'
+    -> Text -- ^ 'asdServicesId'
+    -> AppsServicesDelete
+appsServicesDelete pAsdAppsId_ pAsdServicesId_ =
+    AppsServicesDelete'
+    { _asdXgafv = Nothing
+    , _asdUploadProtocol = Nothing
+    , _asdPp = True
+    , _asdAccessToken = Nothing
+    , _asdUploadType = Nothing
+    , _asdBearerToken = Nothing
+    , _asdAppsId = pAsdAppsId_
+    , _asdServicesId = pAsdServicesId_
+    , _asdCallback = Nothing
+    }
+
+-- | V1 error format.
+asdXgafv :: Lens' AppsServicesDelete (Maybe Text)
+asdXgafv = lens _asdXgafv (\ s a -> s{_asdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asdUploadProtocol :: Lens' AppsServicesDelete (Maybe Text)
+asdUploadProtocol
+  = lens _asdUploadProtocol
+      (\ s a -> s{_asdUploadProtocol = a})
+
+-- | Pretty-print response.
+asdPp :: Lens' AppsServicesDelete Bool
+asdPp = lens _asdPp (\ s a -> s{_asdPp = a})
+
+-- | OAuth access token.
+asdAccessToken :: Lens' AppsServicesDelete (Maybe Text)
+asdAccessToken
+  = lens _asdAccessToken
+      (\ s a -> s{_asdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asdUploadType :: Lens' AppsServicesDelete (Maybe Text)
+asdUploadType
+  = lens _asdUploadType
+      (\ s a -> s{_asdUploadType = a})
+
+-- | OAuth bearer token.
+asdBearerToken :: Lens' AppsServicesDelete (Maybe Text)
+asdBearerToken
+  = lens _asdBearerToken
+      (\ s a -> s{_asdBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. For example:
+-- \"apps\/myapp\/services\/default\".
+asdAppsId :: Lens' AppsServicesDelete Text
+asdAppsId
+  = lens _asdAppsId (\ s a -> s{_asdAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asdServicesId :: Lens' AppsServicesDelete Text
+asdServicesId
+  = lens _asdServicesId
+      (\ s a -> s{_asdServicesId = a})
+
+-- | JSONP
+asdCallback :: Lens' AppsServicesDelete (Maybe Text)
+asdCallback
+  = lens _asdCallback (\ s a -> s{_asdCallback = a})
+
+instance GoogleRequest AppsServicesDelete where
+        type Rs AppsServicesDelete = Operation
+        type Scopes AppsServicesDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesDelete'{..}
+          = go _asdAppsId _asdServicesId _asdXgafv
+              _asdUploadProtocol
+              (Just _asdPp)
+              _asdAccessToken
+              _asdUploadType
+              _asdBearerToken
+              _asdCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Get.hs
@@ -0,0 +1,186 @@
+{-# 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.AppEngine.Apps.Services.Get
+-- 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)
+--
+-- Gets the current configuration of the service.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.get@.
+module Network.Google.Resource.AppEngine.Apps.Services.Get
+    (
+    -- * REST Resource
+      AppsServicesGetResource
+
+    -- * Creating a Request
+    , appsServicesGet
+    , AppsServicesGet
+
+    -- * Request Lenses
+    , asgXgafv
+    , asgUploadProtocol
+    , asgPp
+    , asgAccessToken
+    , asgUploadType
+    , asgBearerToken
+    , asgAppsId
+    , asgServicesId
+    , asgCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.get@ method which the
+-- 'AppsServicesGet' request conforms to.
+type AppsServicesGetResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "bearer_token" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :> Get '[JSON] Service
+
+-- | Gets the current configuration of the service.
+--
+-- /See:/ 'appsServicesGet' smart constructor.
+data AppsServicesGet = AppsServicesGet'
+    { _asgXgafv          :: !(Maybe Text)
+    , _asgUploadProtocol :: !(Maybe Text)
+    , _asgPp             :: !Bool
+    , _asgAccessToken    :: !(Maybe Text)
+    , _asgUploadType     :: !(Maybe Text)
+    , _asgBearerToken    :: !(Maybe Text)
+    , _asgAppsId         :: !Text
+    , _asgServicesId     :: !Text
+    , _asgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asgXgafv'
+--
+-- * 'asgUploadProtocol'
+--
+-- * 'asgPp'
+--
+-- * 'asgAccessToken'
+--
+-- * 'asgUploadType'
+--
+-- * 'asgBearerToken'
+--
+-- * 'asgAppsId'
+--
+-- * 'asgServicesId'
+--
+-- * 'asgCallback'
+appsServicesGet
+    :: Text -- ^ 'asgAppsId'
+    -> Text -- ^ 'asgServicesId'
+    -> AppsServicesGet
+appsServicesGet pAsgAppsId_ pAsgServicesId_ =
+    AppsServicesGet'
+    { _asgXgafv = Nothing
+    , _asgUploadProtocol = Nothing
+    , _asgPp = True
+    , _asgAccessToken = Nothing
+    , _asgUploadType = Nothing
+    , _asgBearerToken = Nothing
+    , _asgAppsId = pAsgAppsId_
+    , _asgServicesId = pAsgServicesId_
+    , _asgCallback = Nothing
+    }
+
+-- | V1 error format.
+asgXgafv :: Lens' AppsServicesGet (Maybe Text)
+asgXgafv = lens _asgXgafv (\ s a -> s{_asgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asgUploadProtocol :: Lens' AppsServicesGet (Maybe Text)
+asgUploadProtocol
+  = lens _asgUploadProtocol
+      (\ s a -> s{_asgUploadProtocol = a})
+
+-- | Pretty-print response.
+asgPp :: Lens' AppsServicesGet Bool
+asgPp = lens _asgPp (\ s a -> s{_asgPp = a})
+
+-- | OAuth access token.
+asgAccessToken :: Lens' AppsServicesGet (Maybe Text)
+asgAccessToken
+  = lens _asgAccessToken
+      (\ s a -> s{_asgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asgUploadType :: Lens' AppsServicesGet (Maybe Text)
+asgUploadType
+  = lens _asgUploadType
+      (\ s a -> s{_asgUploadType = a})
+
+-- | OAuth bearer token.
+asgBearerToken :: Lens' AppsServicesGet (Maybe Text)
+asgBearerToken
+  = lens _asgBearerToken
+      (\ s a -> s{_asgBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. For example:
+-- \"apps\/myapp\/services\/default\".
+asgAppsId :: Lens' AppsServicesGet Text
+asgAppsId
+  = lens _asgAppsId (\ s a -> s{_asgAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asgServicesId :: Lens' AppsServicesGet Text
+asgServicesId
+  = lens _asgServicesId
+      (\ s a -> s{_asgServicesId = a})
+
+-- | JSONP
+asgCallback :: Lens' AppsServicesGet (Maybe Text)
+asgCallback
+  = lens _asgCallback (\ s a -> s{_asgCallback = a})
+
+instance GoogleRequest AppsServicesGet where
+        type Rs AppsServicesGet = Service
+        type Scopes AppsServicesGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesGet'{..}
+          = go _asgAppsId _asgServicesId _asgXgafv
+              _asgUploadProtocol
+              (Just _asgPp)
+              _asgAccessToken
+              _asgUploadType
+              _asgBearerToken
+              _asgCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/List.hs
@@ -0,0 +1,198 @@
+{-# 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.AppEngine.Apps.Services.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)
+--
+-- Lists all the services in the application.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.list@.
+module Network.Google.Resource.AppEngine.Apps.Services.List
+    (
+    -- * REST Resource
+      AppsServicesListResource
+
+    -- * Creating a Request
+    , appsServicesList
+    , AppsServicesList
+
+    -- * Request Lenses
+    , aslXgafv
+    , aslUploadProtocol
+    , aslPp
+    , aslAccessToken
+    , aslUploadType
+    , aslBearerToken
+    , aslAppsId
+    , aslPageToken
+    , aslPageSize
+    , aslCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.list@ method which the
+-- 'AppsServicesList' request conforms to.
+type AppsServicesListResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             QueryParam "$.xgafv" Text :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "pageSize" (Textual Int32) :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] ListServicesResponse
+
+-- | Lists all the services in the application.
+--
+-- /See:/ 'appsServicesList' smart constructor.
+data AppsServicesList = AppsServicesList'
+    { _aslXgafv          :: !(Maybe Text)
+    , _aslUploadProtocol :: !(Maybe Text)
+    , _aslPp             :: !Bool
+    , _aslAccessToken    :: !(Maybe Text)
+    , _aslUploadType     :: !(Maybe Text)
+    , _aslBearerToken    :: !(Maybe Text)
+    , _aslAppsId         :: !Text
+    , _aslPageToken      :: !(Maybe Text)
+    , _aslPageSize       :: !(Maybe (Textual Int32))
+    , _aslCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aslXgafv'
+--
+-- * 'aslUploadProtocol'
+--
+-- * 'aslPp'
+--
+-- * 'aslAccessToken'
+--
+-- * 'aslUploadType'
+--
+-- * 'aslBearerToken'
+--
+-- * 'aslAppsId'
+--
+-- * 'aslPageToken'
+--
+-- * 'aslPageSize'
+--
+-- * 'aslCallback'
+appsServicesList
+    :: Text -- ^ 'aslAppsId'
+    -> AppsServicesList
+appsServicesList pAslAppsId_ =
+    AppsServicesList'
+    { _aslXgafv = Nothing
+    , _aslUploadProtocol = Nothing
+    , _aslPp = True
+    , _aslAccessToken = Nothing
+    , _aslUploadType = Nothing
+    , _aslBearerToken = Nothing
+    , _aslAppsId = pAslAppsId_
+    , _aslPageToken = Nothing
+    , _aslPageSize = Nothing
+    , _aslCallback = Nothing
+    }
+
+-- | V1 error format.
+aslXgafv :: Lens' AppsServicesList (Maybe Text)
+aslXgafv = lens _aslXgafv (\ s a -> s{_aslXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aslUploadProtocol :: Lens' AppsServicesList (Maybe Text)
+aslUploadProtocol
+  = lens _aslUploadProtocol
+      (\ s a -> s{_aslUploadProtocol = a})
+
+-- | Pretty-print response.
+aslPp :: Lens' AppsServicesList Bool
+aslPp = lens _aslPp (\ s a -> s{_aslPp = a})
+
+-- | OAuth access token.
+aslAccessToken :: Lens' AppsServicesList (Maybe Text)
+aslAccessToken
+  = lens _aslAccessToken
+      (\ s a -> s{_aslAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aslUploadType :: Lens' AppsServicesList (Maybe Text)
+aslUploadType
+  = lens _aslUploadType
+      (\ s a -> s{_aslUploadType = a})
+
+-- | OAuth bearer token.
+aslBearerToken :: Lens' AppsServicesList (Maybe Text)
+aslBearerToken
+  = lens _aslBearerToken
+      (\ s a -> s{_aslBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. For example:
+-- \"apps\/myapp\".
+aslAppsId :: Lens' AppsServicesList Text
+aslAppsId
+  = lens _aslAppsId (\ s a -> s{_aslAppsId = a})
+
+-- | Continuation token for fetching the next page of results.
+aslPageToken :: Lens' AppsServicesList (Maybe Text)
+aslPageToken
+  = lens _aslPageToken (\ s a -> s{_aslPageToken = a})
+
+-- | Maximum results to return per page.
+aslPageSize :: Lens' AppsServicesList (Maybe Int32)
+aslPageSize
+  = lens _aslPageSize (\ s a -> s{_aslPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+aslCallback :: Lens' AppsServicesList (Maybe Text)
+aslCallback
+  = lens _aslCallback (\ s a -> s{_aslCallback = a})
+
+instance GoogleRequest AppsServicesList where
+        type Rs AppsServicesList = ListServicesResponse
+        type Scopes AppsServicesList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesList'{..}
+          = go _aslAppsId _aslXgafv _aslUploadProtocol
+              (Just _aslPp)
+              _aslAccessToken
+              _aslUploadType
+              _aslBearerToken
+              _aslPageToken
+              _aslPageSize
+              _aslCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Patch.hs
@@ -0,0 +1,225 @@
+{-# 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.AppEngine.Apps.Services.Patch
+-- 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)
+--
+-- Updates the configuration of the specified service.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.patch@.
+module Network.Google.Resource.AppEngine.Apps.Services.Patch
+    (
+    -- * REST Resource
+      AppsServicesPatchResource
+
+    -- * Creating a Request
+    , appsServicesPatch
+    , AppsServicesPatch
+
+    -- * Request Lenses
+    , aspXgafv
+    , aspUploadProtocol
+    , aspPp
+    , aspAccessToken
+    , aspUploadType
+    , aspPayload
+    , aspMigrateTraffic
+    , aspMask
+    , aspBearerToken
+    , aspAppsId
+    , aspServicesId
+    , aspCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.patch@ method which the
+-- 'AppsServicesPatch' request conforms to.
+type AppsServicesPatchResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               QueryParam "$.xgafv" Text :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "pp" Bool :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "migrateTraffic" Bool :>
+                           QueryParam "mask" Text :>
+                             QueryParam "bearer_token" Text :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   ReqBody '[JSON] Service :>
+                                     Patch '[JSON] Operation
+
+-- | Updates the configuration of the specified service.
+--
+-- /See:/ 'appsServicesPatch' smart constructor.
+data AppsServicesPatch = AppsServicesPatch'
+    { _aspXgafv          :: !(Maybe Text)
+    , _aspUploadProtocol :: !(Maybe Text)
+    , _aspPp             :: !Bool
+    , _aspAccessToken    :: !(Maybe Text)
+    , _aspUploadType     :: !(Maybe Text)
+    , _aspPayload        :: !Service
+    , _aspMigrateTraffic :: !(Maybe Bool)
+    , _aspMask           :: !(Maybe Text)
+    , _aspBearerToken    :: !(Maybe Text)
+    , _aspAppsId         :: !Text
+    , _aspServicesId     :: !Text
+    , _aspCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aspXgafv'
+--
+-- * 'aspUploadProtocol'
+--
+-- * 'aspPp'
+--
+-- * 'aspAccessToken'
+--
+-- * 'aspUploadType'
+--
+-- * 'aspPayload'
+--
+-- * 'aspMigrateTraffic'
+--
+-- * 'aspMask'
+--
+-- * 'aspBearerToken'
+--
+-- * 'aspAppsId'
+--
+-- * 'aspServicesId'
+--
+-- * 'aspCallback'
+appsServicesPatch
+    :: Service -- ^ 'aspPayload'
+    -> Text -- ^ 'aspAppsId'
+    -> Text -- ^ 'aspServicesId'
+    -> AppsServicesPatch
+appsServicesPatch pAspPayload_ pAspAppsId_ pAspServicesId_ =
+    AppsServicesPatch'
+    { _aspXgafv = Nothing
+    , _aspUploadProtocol = Nothing
+    , _aspPp = True
+    , _aspAccessToken = Nothing
+    , _aspUploadType = Nothing
+    , _aspPayload = pAspPayload_
+    , _aspMigrateTraffic = Nothing
+    , _aspMask = Nothing
+    , _aspBearerToken = Nothing
+    , _aspAppsId = pAspAppsId_
+    , _aspServicesId = pAspServicesId_
+    , _aspCallback = Nothing
+    }
+
+-- | V1 error format.
+aspXgafv :: Lens' AppsServicesPatch (Maybe Text)
+aspXgafv = lens _aspXgafv (\ s a -> s{_aspXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aspUploadProtocol :: Lens' AppsServicesPatch (Maybe Text)
+aspUploadProtocol
+  = lens _aspUploadProtocol
+      (\ s a -> s{_aspUploadProtocol = a})
+
+-- | Pretty-print response.
+aspPp :: Lens' AppsServicesPatch Bool
+aspPp = lens _aspPp (\ s a -> s{_aspPp = a})
+
+-- | OAuth access token.
+aspAccessToken :: Lens' AppsServicesPatch (Maybe Text)
+aspAccessToken
+  = lens _aspAccessToken
+      (\ s a -> s{_aspAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aspUploadType :: Lens' AppsServicesPatch (Maybe Text)
+aspUploadType
+  = lens _aspUploadType
+      (\ s a -> s{_aspUploadType = a})
+
+-- | Multipart request metadata.
+aspPayload :: Lens' AppsServicesPatch Service
+aspPayload
+  = lens _aspPayload (\ s a -> s{_aspPayload = a})
+
+-- | Whether to use Traffic Migration to shift traffic gradually. Traffic can
+-- only be migrated from a single version to another single version.
+aspMigrateTraffic :: Lens' AppsServicesPatch (Maybe Bool)
+aspMigrateTraffic
+  = lens _aspMigrateTraffic
+      (\ s a -> s{_aspMigrateTraffic = a})
+
+-- | Standard field mask for the set of fields to be updated.
+aspMask :: Lens' AppsServicesPatch (Maybe Text)
+aspMask = lens _aspMask (\ s a -> s{_aspMask = a})
+
+-- | OAuth bearer token.
+aspBearerToken :: Lens' AppsServicesPatch (Maybe Text)
+aspBearerToken
+  = lens _aspBearerToken
+      (\ s a -> s{_aspBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource to update. For example:
+-- \"apps\/myapp\/services\/default\".
+aspAppsId :: Lens' AppsServicesPatch Text
+aspAppsId
+  = lens _aspAppsId (\ s a -> s{_aspAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+aspServicesId :: Lens' AppsServicesPatch Text
+aspServicesId
+  = lens _aspServicesId
+      (\ s a -> s{_aspServicesId = a})
+
+-- | JSONP
+aspCallback :: Lens' AppsServicesPatch (Maybe Text)
+aspCallback
+  = lens _aspCallback (\ s a -> s{_aspCallback = a})
+
+instance GoogleRequest AppsServicesPatch where
+        type Rs AppsServicesPatch = Operation
+        type Scopes AppsServicesPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesPatch'{..}
+          = go _aspAppsId _aspServicesId _aspXgafv
+              _aspUploadProtocol
+              (Just _aspPp)
+              _aspAccessToken
+              _aspUploadType
+              _aspMigrateTraffic
+              _aspMask
+              _aspBearerToken
+              _aspCallback
+              (Just AltJSON)
+              _aspPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Create.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Create.hs
@@ -0,0 +1,203 @@
+{-# 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.AppEngine.Apps.Services.Versions.Create
+-- 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)
+--
+-- Deploys new code and resource files to a version.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.create@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.Create
+    (
+    -- * REST Resource
+      AppsServicesVersionsCreateResource
+
+    -- * Creating a Request
+    , appsServicesVersionsCreate
+    , AppsServicesVersionsCreate
+
+    -- * Request Lenses
+    , asvcXgafv
+    , asvcUploadProtocol
+    , asvcPp
+    , asvcAccessToken
+    , asvcUploadType
+    , asvcPayload
+    , asvcBearerToken
+    , asvcAppsId
+    , asvcServicesId
+    , asvcCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.create@ method which the
+-- 'AppsServicesVersionsCreate' request conforms to.
+type AppsServicesVersionsCreateResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 QueryParam "$.xgafv" Text :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "bearer_token" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 ReqBody '[JSON] Version :>
+                                   Post '[JSON] Operation
+
+-- | Deploys new code and resource files to a version.
+--
+-- /See:/ 'appsServicesVersionsCreate' smart constructor.
+data AppsServicesVersionsCreate = AppsServicesVersionsCreate'
+    { _asvcXgafv          :: !(Maybe Text)
+    , _asvcUploadProtocol :: !(Maybe Text)
+    , _asvcPp             :: !Bool
+    , _asvcAccessToken    :: !(Maybe Text)
+    , _asvcUploadType     :: !(Maybe Text)
+    , _asvcPayload        :: !Version
+    , _asvcBearerToken    :: !(Maybe Text)
+    , _asvcAppsId         :: !Text
+    , _asvcServicesId     :: !Text
+    , _asvcCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asvcXgafv'
+--
+-- * 'asvcUploadProtocol'
+--
+-- * 'asvcPp'
+--
+-- * 'asvcAccessToken'
+--
+-- * 'asvcUploadType'
+--
+-- * 'asvcPayload'
+--
+-- * 'asvcBearerToken'
+--
+-- * 'asvcAppsId'
+--
+-- * 'asvcServicesId'
+--
+-- * 'asvcCallback'
+appsServicesVersionsCreate
+    :: Version -- ^ 'asvcPayload'
+    -> Text -- ^ 'asvcAppsId'
+    -> Text -- ^ 'asvcServicesId'
+    -> AppsServicesVersionsCreate
+appsServicesVersionsCreate pAsvcPayload_ pAsvcAppsId_ pAsvcServicesId_ =
+    AppsServicesVersionsCreate'
+    { _asvcXgafv = Nothing
+    , _asvcUploadProtocol = Nothing
+    , _asvcPp = True
+    , _asvcAccessToken = Nothing
+    , _asvcUploadType = Nothing
+    , _asvcPayload = pAsvcPayload_
+    , _asvcBearerToken = Nothing
+    , _asvcAppsId = pAsvcAppsId_
+    , _asvcServicesId = pAsvcServicesId_
+    , _asvcCallback = Nothing
+    }
+
+-- | V1 error format.
+asvcXgafv :: Lens' AppsServicesVersionsCreate (Maybe Text)
+asvcXgafv
+  = lens _asvcXgafv (\ s a -> s{_asvcXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asvcUploadProtocol :: Lens' AppsServicesVersionsCreate (Maybe Text)
+asvcUploadProtocol
+  = lens _asvcUploadProtocol
+      (\ s a -> s{_asvcUploadProtocol = a})
+
+-- | Pretty-print response.
+asvcPp :: Lens' AppsServicesVersionsCreate Bool
+asvcPp = lens _asvcPp (\ s a -> s{_asvcPp = a})
+
+-- | OAuth access token.
+asvcAccessToken :: Lens' AppsServicesVersionsCreate (Maybe Text)
+asvcAccessToken
+  = lens _asvcAccessToken
+      (\ s a -> s{_asvcAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asvcUploadType :: Lens' AppsServicesVersionsCreate (Maybe Text)
+asvcUploadType
+  = lens _asvcUploadType
+      (\ s a -> s{_asvcUploadType = a})
+
+-- | Multipart request metadata.
+asvcPayload :: Lens' AppsServicesVersionsCreate Version
+asvcPayload
+  = lens _asvcPayload (\ s a -> s{_asvcPayload = a})
+
+-- | OAuth bearer token.
+asvcBearerToken :: Lens' AppsServicesVersionsCreate (Maybe Text)
+asvcBearerToken
+  = lens _asvcBearerToken
+      (\ s a -> s{_asvcBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource to update. For example:
+-- \"apps\/myapp\/services\/default\".
+asvcAppsId :: Lens' AppsServicesVersionsCreate Text
+asvcAppsId
+  = lens _asvcAppsId (\ s a -> s{_asvcAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvcServicesId :: Lens' AppsServicesVersionsCreate Text
+asvcServicesId
+  = lens _asvcServicesId
+      (\ s a -> s{_asvcServicesId = a})
+
+-- | JSONP
+asvcCallback :: Lens' AppsServicesVersionsCreate (Maybe Text)
+asvcCallback
+  = lens _asvcCallback (\ s a -> s{_asvcCallback = a})
+
+instance GoogleRequest AppsServicesVersionsCreate
+         where
+        type Rs AppsServicesVersionsCreate = Operation
+        type Scopes AppsServicesVersionsCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesVersionsCreate'{..}
+          = go _asvcAppsId _asvcServicesId _asvcXgafv
+              _asvcUploadProtocol
+              (Just _asvcPp)
+              _asvcAccessToken
+              _asvcUploadType
+              _asvcBearerToken
+              _asvcCallback
+              (Just AltJSON)
+              _asvcPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesVersionsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Delete.hs
@@ -0,0 +1,204 @@
+{-# 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.AppEngine.Apps.Services.Versions.Delete
+-- 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)
+--
+-- Deletes an existing version.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.delete@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.Delete
+    (
+    -- * REST Resource
+      AppsServicesVersionsDeleteResource
+
+    -- * Creating a Request
+    , appsServicesVersionsDelete
+    , AppsServicesVersionsDelete
+
+    -- * Request Lenses
+    , asvdXgafv
+    , asvdUploadProtocol
+    , asvdPp
+    , asvdAccessToken
+    , asvdUploadType
+    , asvdVersionsId
+    , asvdBearerToken
+    , asvdAppsId
+    , asvdServicesId
+    , asvdCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.delete@ method which the
+-- 'AppsServicesVersionsDelete' request conforms to.
+type AppsServicesVersionsDeleteResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 Capture "versionsId" Text :>
+                   QueryParam "$.xgafv" Text :>
+                     QueryParam "upload_protocol" Text :>
+                       QueryParam "pp" Bool :>
+                         QueryParam "access_token" Text :>
+                           QueryParam "uploadType" Text :>
+                             QueryParam "bearer_token" Text :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Delete '[JSON] Operation
+
+-- | Deletes an existing version.
+--
+-- /See:/ 'appsServicesVersionsDelete' smart constructor.
+data AppsServicesVersionsDelete = AppsServicesVersionsDelete'
+    { _asvdXgafv          :: !(Maybe Text)
+    , _asvdUploadProtocol :: !(Maybe Text)
+    , _asvdPp             :: !Bool
+    , _asvdAccessToken    :: !(Maybe Text)
+    , _asvdUploadType     :: !(Maybe Text)
+    , _asvdVersionsId     :: !Text
+    , _asvdBearerToken    :: !(Maybe Text)
+    , _asvdAppsId         :: !Text
+    , _asvdServicesId     :: !Text
+    , _asvdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asvdXgafv'
+--
+-- * 'asvdUploadProtocol'
+--
+-- * 'asvdPp'
+--
+-- * 'asvdAccessToken'
+--
+-- * 'asvdUploadType'
+--
+-- * 'asvdVersionsId'
+--
+-- * 'asvdBearerToken'
+--
+-- * 'asvdAppsId'
+--
+-- * 'asvdServicesId'
+--
+-- * 'asvdCallback'
+appsServicesVersionsDelete
+    :: Text -- ^ 'asvdVersionsId'
+    -> Text -- ^ 'asvdAppsId'
+    -> Text -- ^ 'asvdServicesId'
+    -> AppsServicesVersionsDelete
+appsServicesVersionsDelete pAsvdVersionsId_ pAsvdAppsId_ pAsvdServicesId_ =
+    AppsServicesVersionsDelete'
+    { _asvdXgafv = Nothing
+    , _asvdUploadProtocol = Nothing
+    , _asvdPp = True
+    , _asvdAccessToken = Nothing
+    , _asvdUploadType = Nothing
+    , _asvdVersionsId = pAsvdVersionsId_
+    , _asvdBearerToken = Nothing
+    , _asvdAppsId = pAsvdAppsId_
+    , _asvdServicesId = pAsvdServicesId_
+    , _asvdCallback = Nothing
+    }
+
+-- | V1 error format.
+asvdXgafv :: Lens' AppsServicesVersionsDelete (Maybe Text)
+asvdXgafv
+  = lens _asvdXgafv (\ s a -> s{_asvdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asvdUploadProtocol :: Lens' AppsServicesVersionsDelete (Maybe Text)
+asvdUploadProtocol
+  = lens _asvdUploadProtocol
+      (\ s a -> s{_asvdUploadProtocol = a})
+
+-- | Pretty-print response.
+asvdPp :: Lens' AppsServicesVersionsDelete Bool
+asvdPp = lens _asvdPp (\ s a -> s{_asvdPp = a})
+
+-- | OAuth access token.
+asvdAccessToken :: Lens' AppsServicesVersionsDelete (Maybe Text)
+asvdAccessToken
+  = lens _asvdAccessToken
+      (\ s a -> s{_asvdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asvdUploadType :: Lens' AppsServicesVersionsDelete (Maybe Text)
+asvdUploadType
+  = lens _asvdUploadType
+      (\ s a -> s{_asvdUploadType = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvdVersionsId :: Lens' AppsServicesVersionsDelete Text
+asvdVersionsId
+  = lens _asvdVersionsId
+      (\ s a -> s{_asvdVersionsId = a})
+
+-- | OAuth bearer token.
+asvdBearerToken :: Lens' AppsServicesVersionsDelete (Maybe Text)
+asvdBearerToken
+  = lens _asvdBearerToken
+      (\ s a -> s{_asvdBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. For example:
+-- \"apps\/myapp\/services\/default\/versions\/v1\".
+asvdAppsId :: Lens' AppsServicesVersionsDelete Text
+asvdAppsId
+  = lens _asvdAppsId (\ s a -> s{_asvdAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvdServicesId :: Lens' AppsServicesVersionsDelete Text
+asvdServicesId
+  = lens _asvdServicesId
+      (\ s a -> s{_asvdServicesId = a})
+
+-- | JSONP
+asvdCallback :: Lens' AppsServicesVersionsDelete (Maybe Text)
+asvdCallback
+  = lens _asvdCallback (\ s a -> s{_asvdCallback = a})
+
+instance GoogleRequest AppsServicesVersionsDelete
+         where
+        type Rs AppsServicesVersionsDelete = Operation
+        type Scopes AppsServicesVersionsDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesVersionsDelete'{..}
+          = go _asvdAppsId _asvdServicesId _asvdVersionsId
+              _asvdXgafv
+              _asvdUploadProtocol
+              (Just _asvdPp)
+              _asvdAccessToken
+              _asvdUploadType
+              _asvdBearerToken
+              _asvdCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesVersionsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Get.hs
@@ -0,0 +1,214 @@
+{-# 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.AppEngine.Apps.Services.Versions.Get
+-- 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)
+--
+-- Gets application deployment information.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.get@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.Get
+    (
+    -- * REST Resource
+      AppsServicesVersionsGetResource
+
+    -- * Creating a Request
+    , appsServicesVersionsGet
+    , AppsServicesVersionsGet
+
+    -- * Request Lenses
+    , asvgXgafv
+    , asvgUploadProtocol
+    , asvgPp
+    , asvgAccessToken
+    , asvgUploadType
+    , asvgVersionsId
+    , asvgBearerToken
+    , asvgAppsId
+    , asvgView
+    , asvgServicesId
+    , asvgCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.get@ method which the
+-- 'AppsServicesVersionsGet' request conforms to.
+type AppsServicesVersionsGetResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 Capture "versionsId" Text :>
+                   QueryParam "$.xgafv" Text :>
+                     QueryParam "upload_protocol" Text :>
+                       QueryParam "pp" Bool :>
+                         QueryParam "access_token" Text :>
+                           QueryParam "uploadType" Text :>
+                             QueryParam "bearer_token" Text :>
+                               QueryParam "view" Text :>
+                                 QueryParam "callback" Text :>
+                                   QueryParam "alt" AltJSON :>
+                                     Get '[JSON] Version
+
+-- | Gets application deployment information.
+--
+-- /See:/ 'appsServicesVersionsGet' smart constructor.
+data AppsServicesVersionsGet = AppsServicesVersionsGet'
+    { _asvgXgafv          :: !(Maybe Text)
+    , _asvgUploadProtocol :: !(Maybe Text)
+    , _asvgPp             :: !Bool
+    , _asvgAccessToken    :: !(Maybe Text)
+    , _asvgUploadType     :: !(Maybe Text)
+    , _asvgVersionsId     :: !Text
+    , _asvgBearerToken    :: !(Maybe Text)
+    , _asvgAppsId         :: !Text
+    , _asvgView           :: !(Maybe Text)
+    , _asvgServicesId     :: !Text
+    , _asvgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asvgXgafv'
+--
+-- * 'asvgUploadProtocol'
+--
+-- * 'asvgPp'
+--
+-- * 'asvgAccessToken'
+--
+-- * 'asvgUploadType'
+--
+-- * 'asvgVersionsId'
+--
+-- * 'asvgBearerToken'
+--
+-- * 'asvgAppsId'
+--
+-- * 'asvgView'
+--
+-- * 'asvgServicesId'
+--
+-- * 'asvgCallback'
+appsServicesVersionsGet
+    :: Text -- ^ 'asvgVersionsId'
+    -> Text -- ^ 'asvgAppsId'
+    -> Text -- ^ 'asvgServicesId'
+    -> AppsServicesVersionsGet
+appsServicesVersionsGet pAsvgVersionsId_ pAsvgAppsId_ pAsvgServicesId_ =
+    AppsServicesVersionsGet'
+    { _asvgXgafv = Nothing
+    , _asvgUploadProtocol = Nothing
+    , _asvgPp = True
+    , _asvgAccessToken = Nothing
+    , _asvgUploadType = Nothing
+    , _asvgVersionsId = pAsvgVersionsId_
+    , _asvgBearerToken = Nothing
+    , _asvgAppsId = pAsvgAppsId_
+    , _asvgView = Nothing
+    , _asvgServicesId = pAsvgServicesId_
+    , _asvgCallback = Nothing
+    }
+
+-- | V1 error format.
+asvgXgafv :: Lens' AppsServicesVersionsGet (Maybe Text)
+asvgXgafv
+  = lens _asvgXgafv (\ s a -> s{_asvgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asvgUploadProtocol :: Lens' AppsServicesVersionsGet (Maybe Text)
+asvgUploadProtocol
+  = lens _asvgUploadProtocol
+      (\ s a -> s{_asvgUploadProtocol = a})
+
+-- | Pretty-print response.
+asvgPp :: Lens' AppsServicesVersionsGet Bool
+asvgPp = lens _asvgPp (\ s a -> s{_asvgPp = a})
+
+-- | OAuth access token.
+asvgAccessToken :: Lens' AppsServicesVersionsGet (Maybe Text)
+asvgAccessToken
+  = lens _asvgAccessToken
+      (\ s a -> s{_asvgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asvgUploadType :: Lens' AppsServicesVersionsGet (Maybe Text)
+asvgUploadType
+  = lens _asvgUploadType
+      (\ s a -> s{_asvgUploadType = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvgVersionsId :: Lens' AppsServicesVersionsGet Text
+asvgVersionsId
+  = lens _asvgVersionsId
+      (\ s a -> s{_asvgVersionsId = a})
+
+-- | OAuth bearer token.
+asvgBearerToken :: Lens' AppsServicesVersionsGet (Maybe Text)
+asvgBearerToken
+  = lens _asvgBearerToken
+      (\ s a -> s{_asvgBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. For example:
+-- \"apps\/myapp\/services\/default\/versions\/v1\".
+asvgAppsId :: Lens' AppsServicesVersionsGet Text
+asvgAppsId
+  = lens _asvgAppsId (\ s a -> s{_asvgAppsId = a})
+
+-- | Controls the set of fields returned in the \`Get\` response.
+asvgView :: Lens' AppsServicesVersionsGet (Maybe Text)
+asvgView = lens _asvgView (\ s a -> s{_asvgView = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvgServicesId :: Lens' AppsServicesVersionsGet Text
+asvgServicesId
+  = lens _asvgServicesId
+      (\ s a -> s{_asvgServicesId = a})
+
+-- | JSONP
+asvgCallback :: Lens' AppsServicesVersionsGet (Maybe Text)
+asvgCallback
+  = lens _asvgCallback (\ s a -> s{_asvgCallback = a})
+
+instance GoogleRequest AppsServicesVersionsGet where
+        type Rs AppsServicesVersionsGet = Version
+        type Scopes AppsServicesVersionsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesVersionsGet'{..}
+          = go _asvgAppsId _asvgServicesId _asvgVersionsId
+              _asvgXgafv
+              _asvgUploadProtocol
+              (Just _asvgPp)
+              _asvgAccessToken
+              _asvgUploadType
+              _asvgBearerToken
+              _asvgView
+              _asvgCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesVersionsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/List.hs
@@ -0,0 +1,235 @@
+{-# 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.AppEngine.Apps.Services.Versions.Instances.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)
+--
+-- Lists the instances of a version.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.instances.list@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.List
+    (
+    -- * REST Resource
+      AppsServicesVersionsInstancesListResource
+
+    -- * Creating a Request
+    , appsServicesVersionsInstancesList
+    , AppsServicesVersionsInstancesList
+
+    -- * Request Lenses
+    , asvilXgafv
+    , asvilUploadProtocol
+    , asvilPp
+    , asvilAccessToken
+    , asvilUploadType
+    , asvilVersionsId
+    , asvilBearerToken
+    , asvilAppsId
+    , asvilPageToken
+    , asvilServicesId
+    , asvilPageSize
+    , asvilCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.instances.list@ method which the
+-- 'AppsServicesVersionsInstancesList' request conforms to.
+type AppsServicesVersionsInstancesListResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 Capture "versionsId" Text :>
+                   "instances" :>
+                     QueryParam "$.xgafv" Text :>
+                       QueryParam "upload_protocol" Text :>
+                         QueryParam "pp" Bool :>
+                           QueryParam "access_token" Text :>
+                             QueryParam "uploadType" Text :>
+                               QueryParam "bearer_token" Text :>
+                                 QueryParam "pageToken" Text :>
+                                   QueryParam "pageSize" (Textual Int32) :>
+                                     QueryParam "callback" Text :>
+                                       QueryParam "alt" AltJSON :>
+                                         Get '[JSON] ListInstancesResponse
+
+-- | Lists the instances of a version.
+--
+-- /See:/ 'appsServicesVersionsInstancesList' smart constructor.
+data AppsServicesVersionsInstancesList = AppsServicesVersionsInstancesList'
+    { _asvilXgafv          :: !(Maybe Text)
+    , _asvilUploadProtocol :: !(Maybe Text)
+    , _asvilPp             :: !Bool
+    , _asvilAccessToken    :: !(Maybe Text)
+    , _asvilUploadType     :: !(Maybe Text)
+    , _asvilVersionsId     :: !Text
+    , _asvilBearerToken    :: !(Maybe Text)
+    , _asvilAppsId         :: !Text
+    , _asvilPageToken      :: !(Maybe Text)
+    , _asvilServicesId     :: !Text
+    , _asvilPageSize       :: !(Maybe (Textual Int32))
+    , _asvilCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsInstancesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asvilXgafv'
+--
+-- * 'asvilUploadProtocol'
+--
+-- * 'asvilPp'
+--
+-- * 'asvilAccessToken'
+--
+-- * 'asvilUploadType'
+--
+-- * 'asvilVersionsId'
+--
+-- * 'asvilBearerToken'
+--
+-- * 'asvilAppsId'
+--
+-- * 'asvilPageToken'
+--
+-- * 'asvilServicesId'
+--
+-- * 'asvilPageSize'
+--
+-- * 'asvilCallback'
+appsServicesVersionsInstancesList
+    :: Text -- ^ 'asvilVersionsId'
+    -> Text -- ^ 'asvilAppsId'
+    -> Text -- ^ 'asvilServicesId'
+    -> AppsServicesVersionsInstancesList
+appsServicesVersionsInstancesList pAsvilVersionsId_ pAsvilAppsId_ pAsvilServicesId_ =
+    AppsServicesVersionsInstancesList'
+    { _asvilXgafv = Nothing
+    , _asvilUploadProtocol = Nothing
+    , _asvilPp = True
+    , _asvilAccessToken = Nothing
+    , _asvilUploadType = Nothing
+    , _asvilVersionsId = pAsvilVersionsId_
+    , _asvilBearerToken = Nothing
+    , _asvilAppsId = pAsvilAppsId_
+    , _asvilPageToken = Nothing
+    , _asvilServicesId = pAsvilServicesId_
+    , _asvilPageSize = Nothing
+    , _asvilCallback = Nothing
+    }
+
+-- | V1 error format.
+asvilXgafv :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
+asvilXgafv
+  = lens _asvilXgafv (\ s a -> s{_asvilXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asvilUploadProtocol :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
+asvilUploadProtocol
+  = lens _asvilUploadProtocol
+      (\ s a -> s{_asvilUploadProtocol = a})
+
+-- | Pretty-print response.
+asvilPp :: Lens' AppsServicesVersionsInstancesList Bool
+asvilPp = lens _asvilPp (\ s a -> s{_asvilPp = a})
+
+-- | OAuth access token.
+asvilAccessToken :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
+asvilAccessToken
+  = lens _asvilAccessToken
+      (\ s a -> s{_asvilAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asvilUploadType :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
+asvilUploadType
+  = lens _asvilUploadType
+      (\ s a -> s{_asvilUploadType = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvilVersionsId :: Lens' AppsServicesVersionsInstancesList Text
+asvilVersionsId
+  = lens _asvilVersionsId
+      (\ s a -> s{_asvilVersionsId = a})
+
+-- | OAuth bearer token.
+asvilBearerToken :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
+asvilBearerToken
+  = lens _asvilBearerToken
+      (\ s a -> s{_asvilBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. For example:
+-- \"apps\/myapp\/services\/default\/versions\/v1\".
+asvilAppsId :: Lens' AppsServicesVersionsInstancesList Text
+asvilAppsId
+  = lens _asvilAppsId (\ s a -> s{_asvilAppsId = a})
+
+-- | Continuation token for fetching the next page of results.
+asvilPageToken :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
+asvilPageToken
+  = lens _asvilPageToken
+      (\ s a -> s{_asvilPageToken = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvilServicesId :: Lens' AppsServicesVersionsInstancesList Text
+asvilServicesId
+  = lens _asvilServicesId
+      (\ s a -> s{_asvilServicesId = a})
+
+-- | Maximum results to return per page.
+asvilPageSize :: Lens' AppsServicesVersionsInstancesList (Maybe Int32)
+asvilPageSize
+  = lens _asvilPageSize
+      (\ s a -> s{_asvilPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+asvilCallback :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
+asvilCallback
+  = lens _asvilCallback
+      (\ s a -> s{_asvilCallback = a})
+
+instance GoogleRequest
+         AppsServicesVersionsInstancesList where
+        type Rs AppsServicesVersionsInstancesList =
+             ListInstancesResponse
+        type Scopes AppsServicesVersionsInstancesList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesVersionsInstancesList'{..}
+          = go _asvilAppsId _asvilServicesId _asvilVersionsId
+              _asvilXgafv
+              _asvilUploadProtocol
+              (Just _asvilPp)
+              _asvilAccessToken
+              _asvilUploadType
+              _asvilBearerToken
+              _asvilPageToken
+              _asvilPageSize
+              _asvilCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsServicesVersionsInstancesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/List.hs
@@ -0,0 +1,227 @@
+{-# 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.AppEngine.Apps.Services.Versions.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)
+--
+-- Lists the versions of a service.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.list@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.List
+    (
+    -- * REST Resource
+      AppsServicesVersionsListResource
+
+    -- * Creating a Request
+    , appsServicesVersionsList
+    , AppsServicesVersionsList
+
+    -- * Request Lenses
+    , asvlXgafv
+    , asvlUploadProtocol
+    , asvlPp
+    , asvlAccessToken
+    , asvlUploadType
+    , asvlBearerToken
+    , asvlAppsId
+    , asvlView
+    , asvlPageToken
+    , asvlServicesId
+    , asvlPageSize
+    , asvlCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.list@ method which the
+-- 'AppsServicesVersionsList' request conforms to.
+type AppsServicesVersionsListResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 QueryParam "$.xgafv" Text :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "bearer_token" Text :>
+                             QueryParam "view" Text :>
+                               QueryParam "pageToken" Text :>
+                                 QueryParam "pageSize" (Textual Int32) :>
+                                   QueryParam "callback" Text :>
+                                     QueryParam "alt" AltJSON :>
+                                       Get '[JSON] ListVersionsResponse
+
+-- | Lists the versions of a service.
+--
+-- /See:/ 'appsServicesVersionsList' smart constructor.
+data AppsServicesVersionsList = AppsServicesVersionsList'
+    { _asvlXgafv          :: !(Maybe Text)
+    , _asvlUploadProtocol :: !(Maybe Text)
+    , _asvlPp             :: !Bool
+    , _asvlAccessToken    :: !(Maybe Text)
+    , _asvlUploadType     :: !(Maybe Text)
+    , _asvlBearerToken    :: !(Maybe Text)
+    , _asvlAppsId         :: !Text
+    , _asvlView           :: !(Maybe Text)
+    , _asvlPageToken      :: !(Maybe Text)
+    , _asvlServicesId     :: !Text
+    , _asvlPageSize       :: !(Maybe (Textual Int32))
+    , _asvlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asvlXgafv'
+--
+-- * 'asvlUploadProtocol'
+--
+-- * 'asvlPp'
+--
+-- * 'asvlAccessToken'
+--
+-- * 'asvlUploadType'
+--
+-- * 'asvlBearerToken'
+--
+-- * 'asvlAppsId'
+--
+-- * 'asvlView'
+--
+-- * 'asvlPageToken'
+--
+-- * 'asvlServicesId'
+--
+-- * 'asvlPageSize'
+--
+-- * 'asvlCallback'
+appsServicesVersionsList
+    :: Text -- ^ 'asvlAppsId'
+    -> Text -- ^ 'asvlServicesId'
+    -> AppsServicesVersionsList
+appsServicesVersionsList pAsvlAppsId_ pAsvlServicesId_ =
+    AppsServicesVersionsList'
+    { _asvlXgafv = Nothing
+    , _asvlUploadProtocol = Nothing
+    , _asvlPp = True
+    , _asvlAccessToken = Nothing
+    , _asvlUploadType = Nothing
+    , _asvlBearerToken = Nothing
+    , _asvlAppsId = pAsvlAppsId_
+    , _asvlView = Nothing
+    , _asvlPageToken = Nothing
+    , _asvlServicesId = pAsvlServicesId_
+    , _asvlPageSize = Nothing
+    , _asvlCallback = Nothing
+    }
+
+-- | V1 error format.
+asvlXgafv :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlXgafv
+  = lens _asvlXgafv (\ s a -> s{_asvlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asvlUploadProtocol :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlUploadProtocol
+  = lens _asvlUploadProtocol
+      (\ s a -> s{_asvlUploadProtocol = a})
+
+-- | Pretty-print response.
+asvlPp :: Lens' AppsServicesVersionsList Bool
+asvlPp = lens _asvlPp (\ s a -> s{_asvlPp = a})
+
+-- | OAuth access token.
+asvlAccessToken :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlAccessToken
+  = lens _asvlAccessToken
+      (\ s a -> s{_asvlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asvlUploadType :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlUploadType
+  = lens _asvlUploadType
+      (\ s a -> s{_asvlUploadType = a})
+
+-- | OAuth bearer token.
+asvlBearerToken :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlBearerToken
+  = lens _asvlBearerToken
+      (\ s a -> s{_asvlBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. For example:
+-- \"apps\/myapp\/services\/default\".
+asvlAppsId :: Lens' AppsServicesVersionsList Text
+asvlAppsId
+  = lens _asvlAppsId (\ s a -> s{_asvlAppsId = a})
+
+-- | Controls the set of fields returned in the \`List\` response.
+asvlView :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlView = lens _asvlView (\ s a -> s{_asvlView = a})
+
+-- | Continuation token for fetching the next page of results.
+asvlPageToken :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlPageToken
+  = lens _asvlPageToken
+      (\ s a -> s{_asvlPageToken = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvlServicesId :: Lens' AppsServicesVersionsList Text
+asvlServicesId
+  = lens _asvlServicesId
+      (\ s a -> s{_asvlServicesId = a})
+
+-- | Maximum results to return per page.
+asvlPageSize :: Lens' AppsServicesVersionsList (Maybe Int32)
+asvlPageSize
+  = lens _asvlPageSize (\ s a -> s{_asvlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+asvlCallback :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlCallback
+  = lens _asvlCallback (\ s a -> s{_asvlCallback = a})
+
+instance GoogleRequest AppsServicesVersionsList where
+        type Rs AppsServicesVersionsList =
+             ListVersionsResponse
+        type Scopes AppsServicesVersionsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesVersionsList'{..}
+          = go _asvlAppsId _asvlServicesId _asvlXgafv
+              _asvlUploadProtocol
+              (Just _asvlPp)
+              _asvlAccessToken
+              _asvlUploadType
+              _asvlBearerToken
+              _asvlView
+              _asvlPageToken
+              _asvlPageSize
+              _asvlCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesVersionsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Patch.hs
@@ -0,0 +1,228 @@
+{-# 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.AppEngine.Apps.Services.Versions.Patch
+-- 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)
+--
+-- Updates an existing version. Note: UNIMPLEMENTED.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.patch@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.Patch
+    (
+    -- * REST Resource
+      AppsServicesVersionsPatchResource
+
+    -- * Creating a Request
+    , appsServicesVersionsPatch
+    , AppsServicesVersionsPatch
+
+    -- * Request Lenses
+    , asvpXgafv
+    , asvpUploadProtocol
+    , asvpPp
+    , asvpAccessToken
+    , asvpUploadType
+    , asvpPayload
+    , asvpVersionsId
+    , asvpMask
+    , asvpBearerToken
+    , asvpAppsId
+    , asvpServicesId
+    , asvpCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.patch@ method which the
+-- 'AppsServicesVersionsPatch' request conforms to.
+type AppsServicesVersionsPatchResource =
+     "v1beta5" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 Capture "versionsId" Text :>
+                   QueryParam "$.xgafv" Text :>
+                     QueryParam "upload_protocol" Text :>
+                       QueryParam "pp" Bool :>
+                         QueryParam "access_token" Text :>
+                           QueryParam "uploadType" Text :>
+                             QueryParam "mask" Text :>
+                               QueryParam "bearer_token" Text :>
+                                 QueryParam "callback" Text :>
+                                   QueryParam "alt" AltJSON :>
+                                     ReqBody '[JSON] Version :>
+                                       Patch '[JSON] Operation
+
+-- | Updates an existing version. Note: UNIMPLEMENTED.
+--
+-- /See:/ 'appsServicesVersionsPatch' smart constructor.
+data AppsServicesVersionsPatch = AppsServicesVersionsPatch'
+    { _asvpXgafv          :: !(Maybe Text)
+    , _asvpUploadProtocol :: !(Maybe Text)
+    , _asvpPp             :: !Bool
+    , _asvpAccessToken    :: !(Maybe Text)
+    , _asvpUploadType     :: !(Maybe Text)
+    , _asvpPayload        :: !Version
+    , _asvpVersionsId     :: !Text
+    , _asvpMask           :: !(Maybe Text)
+    , _asvpBearerToken    :: !(Maybe Text)
+    , _asvpAppsId         :: !Text
+    , _asvpServicesId     :: !Text
+    , _asvpCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asvpXgafv'
+--
+-- * 'asvpUploadProtocol'
+--
+-- * 'asvpPp'
+--
+-- * 'asvpAccessToken'
+--
+-- * 'asvpUploadType'
+--
+-- * 'asvpPayload'
+--
+-- * 'asvpVersionsId'
+--
+-- * 'asvpMask'
+--
+-- * 'asvpBearerToken'
+--
+-- * 'asvpAppsId'
+--
+-- * 'asvpServicesId'
+--
+-- * 'asvpCallback'
+appsServicesVersionsPatch
+    :: Version -- ^ 'asvpPayload'
+    -> Text -- ^ 'asvpVersionsId'
+    -> Text -- ^ 'asvpAppsId'
+    -> Text -- ^ 'asvpServicesId'
+    -> AppsServicesVersionsPatch
+appsServicesVersionsPatch pAsvpPayload_ pAsvpVersionsId_ pAsvpAppsId_ pAsvpServicesId_ =
+    AppsServicesVersionsPatch'
+    { _asvpXgafv = Nothing
+    , _asvpUploadProtocol = Nothing
+    , _asvpPp = True
+    , _asvpAccessToken = Nothing
+    , _asvpUploadType = Nothing
+    , _asvpPayload = pAsvpPayload_
+    , _asvpVersionsId = pAsvpVersionsId_
+    , _asvpMask = Nothing
+    , _asvpBearerToken = Nothing
+    , _asvpAppsId = pAsvpAppsId_
+    , _asvpServicesId = pAsvpServicesId_
+    , _asvpCallback = Nothing
+    }
+
+-- | V1 error format.
+asvpXgafv :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpXgafv
+  = lens _asvpXgafv (\ s a -> s{_asvpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asvpUploadProtocol :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpUploadProtocol
+  = lens _asvpUploadProtocol
+      (\ s a -> s{_asvpUploadProtocol = a})
+
+-- | Pretty-print response.
+asvpPp :: Lens' AppsServicesVersionsPatch Bool
+asvpPp = lens _asvpPp (\ s a -> s{_asvpPp = a})
+
+-- | OAuth access token.
+asvpAccessToken :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpAccessToken
+  = lens _asvpAccessToken
+      (\ s a -> s{_asvpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asvpUploadType :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpUploadType
+  = lens _asvpUploadType
+      (\ s a -> s{_asvpUploadType = a})
+
+-- | Multipart request metadata.
+asvpPayload :: Lens' AppsServicesVersionsPatch Version
+asvpPayload
+  = lens _asvpPayload (\ s a -> s{_asvpPayload = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvpVersionsId :: Lens' AppsServicesVersionsPatch Text
+asvpVersionsId
+  = lens _asvpVersionsId
+      (\ s a -> s{_asvpVersionsId = a})
+
+-- | Standard field mask for the set of fields to be updated.
+asvpMask :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpMask = lens _asvpMask (\ s a -> s{_asvpMask = a})
+
+-- | OAuth bearer token.
+asvpBearerToken :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpBearerToken
+  = lens _asvpBearerToken
+      (\ s a -> s{_asvpBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource to update. For example:
+-- \"apps\/myapp\/services\/default\/versions\/1\".
+asvpAppsId :: Lens' AppsServicesVersionsPatch Text
+asvpAppsId
+  = lens _asvpAppsId (\ s a -> s{_asvpAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvpServicesId :: Lens' AppsServicesVersionsPatch Text
+asvpServicesId
+  = lens _asvpServicesId
+      (\ s a -> s{_asvpServicesId = a})
+
+-- | JSONP
+asvpCallback :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpCallback
+  = lens _asvpCallback (\ s a -> s{_asvpCallback = a})
+
+instance GoogleRequest AppsServicesVersionsPatch
+         where
+        type Rs AppsServicesVersionsPatch = Operation
+        type Scopes AppsServicesVersionsPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesVersionsPatch'{..}
+          = go _asvpAppsId _asvpServicesId _asvpVersionsId
+              _asvpXgafv
+              _asvpUploadProtocol
+              (Just _asvpPp)
+              _asvpAccessToken
+              _asvpUploadType
+              _asvpMask
+              _asvpBearerToken
+              _asvpCallback
+              (Just AltJSON)
+              _asvpPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsServicesVersionsPatchResource)
+                      mempty
diff --git a/gogol-appengine.cabal b/gogol-appengine.cabal
--- a/gogol-appengine.cabal
+++ b/gogol-appengine.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-appengine
-version:               0.0.1
+version:               0.1.0
 synopsis:              Google App Engine Admin SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -7,20 +7,19 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2015 Brendan Hay
+copyright:             Copyright (c) 2015-2016 Brendan Hay
 category:              Network, Google, Cloud
 build-type:            Simple
 cabal-version:         >= 1.10
 extra-source-files:    README.md
 
 description:
-    The Google App Engine Admin API enables developers to provision and
-    manage their App Engine applications.
+    Provisions and manages App Engine applications.
     .
     /Warning:/ This is an experimental prototype/preview release which is still
     under exploratory development and not intended for public use, caveat emptor!
     .
-    This library is compatible with version @v1beta4@
+    This library is compatible with version @v1beta5@
     of the API.
 
 source-repository head
@@ -37,21 +36,23 @@
           Network.Google.AppEngine
         , Network.Google.AppEngine.Types
         , Network.Google.Resource.AppEngine.Apps.Get
-        , Network.Google.Resource.AppEngine.Apps.Modules.Delete
-        , Network.Google.Resource.AppEngine.Apps.Modules.Get
-        , Network.Google.Resource.AppEngine.Apps.Modules.List
-        , Network.Google.Resource.AppEngine.Apps.Modules.Patch
-        , Network.Google.Resource.AppEngine.Apps.Modules.Versions.Create
-        , Network.Google.Resource.AppEngine.Apps.Modules.Versions.Delete
-        , Network.Google.Resource.AppEngine.Apps.Modules.Versions.Get
-        , Network.Google.Resource.AppEngine.Apps.Modules.Versions.List
         , Network.Google.Resource.AppEngine.Apps.Operations.Get
         , Network.Google.Resource.AppEngine.Apps.Operations.List
+        , Network.Google.Resource.AppEngine.Apps.Services.Delete
+        , Network.Google.Resource.AppEngine.Apps.Services.Get
+        , Network.Google.Resource.AppEngine.Apps.Services.List
+        , Network.Google.Resource.AppEngine.Apps.Services.Patch
+        , Network.Google.Resource.AppEngine.Apps.Services.Versions.Create
+        , Network.Google.Resource.AppEngine.Apps.Services.Versions.Delete
+        , Network.Google.Resource.AppEngine.Apps.Services.Versions.Get
+        , Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.List
+        , Network.Google.Resource.AppEngine.Apps.Services.Versions.List
+        , Network.Google.Resource.AppEngine.Apps.Services.Versions.Patch
 
     other-modules:
           Network.Google.AppEngine.Types.Product
         , Network.Google.AppEngine.Types.Sum
 
     build-depends:
-          gogol-core == 0.0.1.*
+          gogol-core == 0.1.0.*
         , base       >= 4.7 && < 5
