diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.1.0`
+`0.1.1`
 
 
 ## Description
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
@@ -32,12 +32,24 @@
     -- ** appengine.apps.get
     , module Network.Google.Resource.AppEngine.Apps.Get
 
+    -- ** appengine.apps.locations.get
+    , module Network.Google.Resource.AppEngine.Apps.Locations.Get
+
+    -- ** appengine.apps.locations.list
+    , module Network.Google.Resource.AppEngine.Apps.Locations.List
+
     -- ** appengine.apps.operations.get
     , module Network.Google.Resource.AppEngine.Apps.Operations.Get
 
     -- ** appengine.apps.operations.list
     , module Network.Google.Resource.AppEngine.Apps.Operations.List
 
+    -- ** appengine.apps.patch
+    , module Network.Google.Resource.AppEngine.Apps.Patch
+
+    -- ** appengine.apps.repair
+    , module Network.Google.Resource.AppEngine.Apps.Repair
+
     -- ** appengine.apps.services.delete
     , module Network.Google.Resource.AppEngine.Apps.Services.Delete
 
@@ -59,6 +71,15 @@
     -- ** appengine.apps.services.versions.get
     , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Get
 
+    -- ** appengine.apps.services.versions.instances.debug
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Debug
+
+    -- ** appengine.apps.services.versions.instances.delete
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Delete
+
+    -- ** appengine.apps.services.versions.instances.get
+    , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Get
+
     -- ** appengine.apps.services.versions.instances.list
     , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.List
 
@@ -68,15 +89,21 @@
     -- ** appengine.apps.services.versions.patch
     , module Network.Google.Resource.AppEngine.Apps.Services.Versions.Patch
 
+    -- ** appengine.experimental.apps.operations.get
+    , module Network.Google.Resource.AppEngine.Experimental.Apps.Operations.Get
+
+    -- ** appengine.experimental.apps.operations.list
+    , module Network.Google.Resource.AppEngine.Experimental.Apps.Operations.List
+
     -- * Types
 
     -- ** NetworkUtilization
     , NetworkUtilization
     , networkUtilization
-    , nuTargetReceivedBytesPerSec
-    , nuTargetSentPacketsPerSec
-    , nuTargetReceivedPacketsPerSec
-    , nuTargetSentBytesPerSec
+    , nuTargetReceivedBytesPerSecond
+    , nuTargetSentPacketsPerSecond
+    , nuTargetReceivedPacketsPerSecond
+    , nuTargetSentBytesPerSecond
 
     -- ** Status
     , Status
@@ -90,6 +117,11 @@
     , operationSchema
     , osAddtional
 
+    -- ** LocationSchema
+    , LocationSchema
+    , locationSchema
+    , lsAddtional
+
     -- ** TrafficSplit
     , TrafficSplit
     , trafficSplit
@@ -125,13 +157,19 @@
     , lName
     , lVersion
 
+    -- ** ListLocationsResponse
+    , ListLocationsResponse
+    , listLocationsResponse
+    , llrNextPageToken
+    , llrLocations
+
     -- ** DiskUtilization
     , DiskUtilization
     , diskUtilization
-    , duTargetWriteOpsPerSec
-    , duTargetReadOpsPerSec
-    , duTargetWriteBytesPerSec
-    , duTargetReadBytesPerSec
+    , duTargetReadBytesPerSecond
+    , duTargetReadOpsPerSecond
+    , duTargetWriteOpsPerSecond
+    , duTargetWriteBytesPerSecond
 
     -- ** ListOperationsResponse
     , ListOperationsResponse
@@ -169,13 +207,13 @@
     , application
     , aDefaultHostname
     , aDefaultCookieExpiration
-    , aLocation
     , aAuthDomain
     , aCodeBucket
     , aName
     , aDispatchRules
     , aDefaultBucket
     , aId
+    , aLocationId
 
     -- ** VersionBetaSettings
     , VersionBetaSettings
@@ -189,6 +227,14 @@
     , sName
     , sId
 
+    -- ** Location
+    , Location
+    , location
+    , locName
+    , locMetadata
+    , locLabels
+    , locLocationId
+
     -- ** Operation
     , Operation
     , operation
@@ -198,6 +244,12 @@
     , oName
     , oMetadata
 
+    -- ** ZipInfo
+    , ZipInfo
+    , zipInfo
+    , ziFilesCount
+    , ziSourceURL
+
     -- ** URLDispatchRule
     , URLDispatchRule
     , urlDispatchRule
@@ -260,6 +312,10 @@
     , nInstanceTag
     , nName
 
+    -- ** DebugInstanceRequest
+    , DebugInstanceRequest
+    , debugInstanceRequest
+
     -- ** StaticFilesHandlerHTTPHeaders
     , StaticFilesHandlerHTTPHeaders
     , staticFilesHandlerHTTPHeaders
@@ -299,12 +355,19 @@
     , bsMaxInstances
     , bsIdleTimeout
 
+    -- ** OperationMetadataV1
+    , OperationMetadataV1
+    , operationMetadataV1
+    , omvInsertTime
+    , omvUser
+    , omvMethod
+    , omvEndTime
+    , omvTarget
+
     -- ** Version
     , Version
     , version
-    , vCreationTime
     , vRuntime
-    , vDeployer
     , vNobuildFilesRegex
     , vInstanceClass
     , vHealthCheck
@@ -312,6 +375,7 @@
     , vDefaultExpiration
     , vAutomaticScaling
     , vErrorHandlers
+    , vCreatedBy
     , vVM
     , vHandlers
     , vInboundServices
@@ -327,7 +391,9 @@
     , vEnvVariables
     , vServingStatus
     , vDiskUsageBytes
+    , vCreateTime
     , vLibraries
+    , vVersionURL
     , vDeployment
 
     -- ** StaticFilesHandler
@@ -348,6 +414,17 @@
     , ehErrorCode
     , ehStaticFile
 
+    -- ** LocationLabels
+    , LocationLabels
+    , locationLabels
+    , llAddtional
+
+    -- ** LocationMetadata
+    , LocationMetadata
+    , locationMetadata
+    , lmStandardEnvironmentAvailable
+    , lmFlexibleEnvironmentAvailable
+
     -- ** OperationMetadata
     , OperationMetadata
     , operationMetadata
@@ -368,13 +445,11 @@
     , RequestUtilization
     , requestUtilization
     , ruTargetConcurrentRequests
-    , ruTargetRequestCountPerSec
+    , ruTargetRequestCountPerSecond
 
-    -- ** SourceReference
-    , SourceReference
-    , sourceReference
-    , srRepository
-    , srRevisionId
+    -- ** RepairApplicationRequest
+    , RepairApplicationRequest
+    , repairApplicationRequest
 
     -- ** OperationResponse
     , OperationResponse
@@ -392,32 +467,36 @@
     , iMemoryUsage
     , iVMStatus
     , iVMZoneName
+    , iStartTime
     , iVMId
     , iAvailability
     , iVMName
     , iName
-    , iVMUnlocked
+    , iVMDebugEnabled
     , iRequests
     , iQps
     , iId
     , iErrors
     , iAverageLatency
-    , iStartTimestamp
     , iAppEngineRelease
 
     -- ** Deployment
     , Deployment
     , deployment
+    , dZip
     , dContainer
     , dFiles
-    , dSourceReferences
     ) where
 
 import           Network.Google.AppEngine.Types
 import           Network.Google.Prelude
 import           Network.Google.Resource.AppEngine.Apps.Get
+import           Network.Google.Resource.AppEngine.Apps.Locations.Get
+import           Network.Google.Resource.AppEngine.Apps.Locations.List
 import           Network.Google.Resource.AppEngine.Apps.Operations.Get
 import           Network.Google.Resource.AppEngine.Apps.Operations.List
+import           Network.Google.Resource.AppEngine.Apps.Patch
+import           Network.Google.Resource.AppEngine.Apps.Repair
 import           Network.Google.Resource.AppEngine.Apps.Services.Delete
 import           Network.Google.Resource.AppEngine.Apps.Services.Get
 import           Network.Google.Resource.AppEngine.Apps.Services.List
@@ -425,9 +504,14 @@
 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.Debug
+import           Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Delete
+import           Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.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
+import           Network.Google.Resource.AppEngine.Experimental.Apps.Operations.Get
+import           Network.Google.Resource.AppEngine.Experimental.Apps.Operations.List
 
 {- $resources
 TODO
@@ -437,7 +521,12 @@
 type AppEngineAPI =
      AppsOperationsListResource :<|>
        AppsOperationsGetResource
+       :<|> AppsLocationsListResource
+       :<|> AppsLocationsGetResource
        :<|> AppsServicesVersionsInstancesListResource
+       :<|> AppsServicesVersionsInstancesGetResource
+       :<|> AppsServicesVersionsInstancesDebugResource
+       :<|> AppsServicesVersionsInstancesDeleteResource
        :<|> AppsServicesVersionsListResource
        :<|> AppsServicesVersionsPatchResource
        :<|> AppsServicesVersionsGetResource
@@ -447,4 +536,8 @@
        :<|> AppsServicesPatchResource
        :<|> AppsServicesGetResource
        :<|> AppsServicesDeleteResource
+       :<|> AppsPatchResource
        :<|> AppsGetResource
+       :<|> AppsRepairResource
+       :<|> ExperimentalAppsOperationsListResource
+       :<|> ExperimentalAppsOperationsGetResource
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
@@ -25,10 +25,10 @@
     -- * NetworkUtilization
     , NetworkUtilization
     , networkUtilization
-    , nuTargetReceivedBytesPerSec
-    , nuTargetSentPacketsPerSec
-    , nuTargetReceivedPacketsPerSec
-    , nuTargetSentBytesPerSec
+    , nuTargetReceivedBytesPerSecond
+    , nuTargetSentPacketsPerSecond
+    , nuTargetReceivedPacketsPerSecond
+    , nuTargetSentBytesPerSecond
 
     -- * Status
     , Status
@@ -42,6 +42,11 @@
     , operationSchema
     , osAddtional
 
+    -- * LocationSchema
+    , LocationSchema
+    , locationSchema
+    , lsAddtional
+
     -- * TrafficSplit
     , TrafficSplit
     , trafficSplit
@@ -77,13 +82,19 @@
     , lName
     , lVersion
 
+    -- * ListLocationsResponse
+    , ListLocationsResponse
+    , listLocationsResponse
+    , llrNextPageToken
+    , llrLocations
+
     -- * DiskUtilization
     , DiskUtilization
     , diskUtilization
-    , duTargetWriteOpsPerSec
-    , duTargetReadOpsPerSec
-    , duTargetWriteBytesPerSec
-    , duTargetReadBytesPerSec
+    , duTargetReadBytesPerSecond
+    , duTargetReadOpsPerSecond
+    , duTargetWriteOpsPerSecond
+    , duTargetWriteBytesPerSecond
 
     -- * ListOperationsResponse
     , ListOperationsResponse
@@ -121,13 +132,13 @@
     , application
     , aDefaultHostname
     , aDefaultCookieExpiration
-    , aLocation
     , aAuthDomain
     , aCodeBucket
     , aName
     , aDispatchRules
     , aDefaultBucket
     , aId
+    , aLocationId
 
     -- * VersionBetaSettings
     , VersionBetaSettings
@@ -141,6 +152,14 @@
     , sName
     , sId
 
+    -- * Location
+    , Location
+    , location
+    , locName
+    , locMetadata
+    , locLabels
+    , locLocationId
+
     -- * Operation
     , Operation
     , operation
@@ -150,6 +169,12 @@
     , oName
     , oMetadata
 
+    -- * ZipInfo
+    , ZipInfo
+    , zipInfo
+    , ziFilesCount
+    , ziSourceURL
+
     -- * URLDispatchRule
     , URLDispatchRule
     , urlDispatchRule
@@ -212,6 +237,10 @@
     , nInstanceTag
     , nName
 
+    -- * DebugInstanceRequest
+    , DebugInstanceRequest
+    , debugInstanceRequest
+
     -- * StaticFilesHandlerHTTPHeaders
     , StaticFilesHandlerHTTPHeaders
     , staticFilesHandlerHTTPHeaders
@@ -251,12 +280,19 @@
     , bsMaxInstances
     , bsIdleTimeout
 
+    -- * OperationMetadataV1
+    , OperationMetadataV1
+    , operationMetadataV1
+    , omvInsertTime
+    , omvUser
+    , omvMethod
+    , omvEndTime
+    , omvTarget
+
     -- * Version
     , Version
     , version
-    , vCreationTime
     , vRuntime
-    , vDeployer
     , vNobuildFilesRegex
     , vInstanceClass
     , vHealthCheck
@@ -264,6 +300,7 @@
     , vDefaultExpiration
     , vAutomaticScaling
     , vErrorHandlers
+    , vCreatedBy
     , vVM
     , vHandlers
     , vInboundServices
@@ -279,7 +316,9 @@
     , vEnvVariables
     , vServingStatus
     , vDiskUsageBytes
+    , vCreateTime
     , vLibraries
+    , vVersionURL
     , vDeployment
 
     -- * StaticFilesHandler
@@ -300,6 +339,17 @@
     , ehErrorCode
     , ehStaticFile
 
+    -- * LocationLabels
+    , LocationLabels
+    , locationLabels
+    , llAddtional
+
+    -- * LocationMetadata
+    , LocationMetadata
+    , locationMetadata
+    , lmStandardEnvironmentAvailable
+    , lmFlexibleEnvironmentAvailable
+
     -- * OperationMetadata
     , OperationMetadata
     , operationMetadata
@@ -320,13 +370,11 @@
     , RequestUtilization
     , requestUtilization
     , ruTargetConcurrentRequests
-    , ruTargetRequestCountPerSec
+    , ruTargetRequestCountPerSecond
 
-    -- * SourceReference
-    , SourceReference
-    , sourceReference
-    , srRepository
-    , srRevisionId
+    -- * RepairApplicationRequest
+    , RepairApplicationRequest
+    , repairApplicationRequest
 
     -- * OperationResponse
     , OperationResponse
@@ -344,35 +392,35 @@
     , iMemoryUsage
     , iVMStatus
     , iVMZoneName
+    , iStartTime
     , iVMId
     , iAvailability
     , iVMName
     , iName
-    , iVMUnlocked
+    , iVMDebugEnabled
     , iRequests
     , iQps
     , iId
     , iErrors
     , iAverageLatency
-    , iStartTimestamp
     , iAppEngineRelease
 
     -- * Deployment
     , Deployment
     , deployment
+    , dZip
     , dContainer
     , dFiles
-    , dSourceReferences
     ) where
 
 import           Network.Google.AppEngine.Types.Product
 import           Network.Google.AppEngine.Types.Sum
 import           Network.Google.Prelude
 
--- | 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.
+-- | Default request referring to version 'v1' 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:v1beta5")
+  = defaultService (ServiceId "appengine:v1")
       "appengine.googleapis.com"
 
 -- | View and manage your data across Google Cloud Platform services
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
@@ -20,3274 +20,3644 @@
 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])
+-- | Target scaling by network usage. Only applicable for VM runtimes.
+--
+-- /See:/ 'networkUtilization' smart constructor.
+data NetworkUtilization = NetworkUtilization'
+    { _nuTargetReceivedBytesPerSecond   :: !(Maybe (Textual Int32))
+    , _nuTargetSentPacketsPerSecond     :: !(Maybe (Textual Int32))
+    , _nuTargetReceivedPacketsPerSecond :: !(Maybe (Textual Int32))
+    , _nuTargetSentBytesPerSecond       :: !(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:
+--
+-- * 'nuTargetReceivedBytesPerSecond'
+--
+-- * 'nuTargetSentPacketsPerSecond'
+--
+-- * 'nuTargetReceivedPacketsPerSecond'
+--
+-- * 'nuTargetSentBytesPerSecond'
+networkUtilization
+    :: NetworkUtilization
+networkUtilization =
+    NetworkUtilization'
+    { _nuTargetReceivedBytesPerSecond = Nothing
+    , _nuTargetSentPacketsPerSecond = Nothing
+    , _nuTargetReceivedPacketsPerSecond = Nothing
+    , _nuTargetSentBytesPerSecond = Nothing
+    }
+
+-- | Target bytes received per second.
+nuTargetReceivedBytesPerSecond :: Lens' NetworkUtilization (Maybe Int32)
+nuTargetReceivedBytesPerSecond
+  = lens _nuTargetReceivedBytesPerSecond
+      (\ s a -> s{_nuTargetReceivedBytesPerSecond = a})
+      . mapping _Coerce
+
+-- | Target packets sent per second.
+nuTargetSentPacketsPerSecond :: Lens' NetworkUtilization (Maybe Int32)
+nuTargetSentPacketsPerSecond
+  = lens _nuTargetSentPacketsPerSecond
+      (\ s a -> s{_nuTargetSentPacketsPerSecond = a})
+      . mapping _Coerce
+
+-- | Target packets received per second.
+nuTargetReceivedPacketsPerSecond :: Lens' NetworkUtilization (Maybe Int32)
+nuTargetReceivedPacketsPerSecond
+  = lens _nuTargetReceivedPacketsPerSecond
+      (\ s a -> s{_nuTargetReceivedPacketsPerSecond = a})
+      . mapping _Coerce
+
+-- | Target bytes sent per second.
+nuTargetSentBytesPerSecond :: Lens' NetworkUtilization (Maybe Int32)
+nuTargetSentBytesPerSecond
+  = lens _nuTargetSentBytesPerSecond
+      (\ s a -> s{_nuTargetSentBytesPerSecond = a})
+      . mapping _Coerce
+
+instance FromJSON NetworkUtilization where
+        parseJSON
+          = withObject "NetworkUtilization"
+              (\ o ->
+                 NetworkUtilization' <$>
+                   (o .:? "targetReceivedBytesPerSecond") <*>
+                     (o .:? "targetSentPacketsPerSecond")
+                     <*> (o .:? "targetReceivedPacketsPerSecond")
+                     <*> (o .:? "targetSentBytesPerSecond"))
+
+instance ToJSON NetworkUtilization where
+        toJSON NetworkUtilization'{..}
+          = object
+              (catMaybes
+                 [("targetReceivedBytesPerSecond" .=) <$>
+                    _nuTargetReceivedBytesPerSecond,
+                  ("targetSentPacketsPerSecond" .=) <$>
+                    _nuTargetSentPacketsPerSecond,
+                  ("targetReceivedPacketsPerSecond" .=) <$>
+                    _nuTargetReceivedPacketsPerSecond,
+                  ("targetSentBytesPerSecond" .=) <$>
+                    _nuTargetSentBytesPerSecond])
+
+-- | 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 \'type 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
+
+-- | Service-specific metadata. For example the available capacity at the
+-- given location.
+--
+-- /See:/ 'locationSchema' smart constructor.
+newtype LocationSchema = LocationSchema'
+    { _lsAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LocationSchema' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lsAddtional'
+locationSchema
+    :: HashMap Text JSONValue -- ^ 'lsAddtional'
+    -> LocationSchema
+locationSchema pLsAddtional_ =
+    LocationSchema'
+    { _lsAddtional = _Coerce # pLsAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+lsAddtional :: Lens' LocationSchema (HashMap Text JSONValue)
+lsAddtional
+  = lens _lsAddtional (\ s a -> s{_lsAddtional = a}) .
+      _Coerce
+
+instance FromJSON LocationSchema where
+        parseJSON
+          = withObject "LocationSchema"
+              (\ o -> LocationSchema' <$> (parseJSONObject o))
+
+instance ToJSON LocationSchema where
+        toJSON = toJSON . _lsAddtional
+
+-- | Traffic routing configuration for versions within a single service.
+-- Traffic splits define how traffic directed to the service is assigned to
+-- versions.
+--
+-- /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
+    }
+
+-- | Mechanism used to determine which version a request is sent 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 version IDs within the service to fractional (0.000, 1]
+-- allocations of traffic for that version. Each version can be specified
+-- only once, but some versions in the service may not have any traffic
+-- allocation. Services that have traffic allocated cannot be deleted until
+-- either the service is deleted or their traffic allocation is removed.
+-- Allocations must sum to 1. Up to two decimal place precision is
+-- supported for IP-based splits and up to three decimal places is
+-- supported 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
+    }
+
+-- | 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])
+
+-- | URL pattern and description of how the URL should be handled. App Engine
+-- can handle URLs by executing application code or by serving static files
+-- uploaded with the version, 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 this URL pattern.
+umScript :: Lens' URLMap (Maybe ScriptHandler)
+umScript = lens _umScript (\ s a -> s{_umScript = a})
+
+-- | Security (HTTPS) enforcement for this URL.
+umSecurityLevel :: Lens' URLMap (Maybe Text)
+umSecurityLevel
+  = lens _umSecurityLevel
+      (\ s a -> s{_umSecurityLevel = a})
+
+-- | Uses API Endpoints to handle requests.
+umAPIEndpoint :: Lens' URLMap (Maybe APIEndpointHandler)
+umAPIEndpoint
+  = lens _umAPIEndpoint
+      (\ s a -> s{_umAPIEndpoint = a})
+
+-- | URL prefix. Uses regular expression syntax, which means regexp special
+-- characters must be escaped, but 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.
+umURLRegex :: Lens' URLMap (Maybe Text)
+umURLRegex
+  = lens _umURLRegex (\ s a -> s{_umURLRegex = a})
+
+-- | \`30x\` code to use when performing redirects for the \`secure\` field.
+-- Defaults to \`302\`.
+umRedirectHTTPResponseCode :: Lens' URLMap (Maybe Text)
+umRedirectHTTPResponseCode
+  = lens _umRedirectHTTPResponseCode
+      (\ s a -> s{_umRedirectHTTPResponseCode = a})
+
+-- | Action to take when users access resources that require authentication.
+-- 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})
+
+-- | Level of login 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])
+
+-- | Third-party Python runtime library that is 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
+    }
+
+-- | Name of the library. Example: \"django\".
+lName :: Lens' Library (Maybe Text)
+lName = lens _lName (\ s a -> s{_lName = a})
+
+-- | 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 LocationService.ListLocations.
+--
+-- /See:/ 'listLocationsResponse' smart constructor.
+data ListLocationsResponse = ListLocationsResponse'
+    { _llrNextPageToken :: !(Maybe Text)
+    , _llrLocations     :: !(Maybe [Location])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListLocationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'llrNextPageToken'
+--
+-- * 'llrLocations'
+listLocationsResponse
+    :: ListLocationsResponse
+listLocationsResponse =
+    ListLocationsResponse'
+    { _llrNextPageToken = Nothing
+    , _llrLocations = Nothing
+    }
+
+-- | The standard List next-page token.
+llrNextPageToken :: Lens' ListLocationsResponse (Maybe Text)
+llrNextPageToken
+  = lens _llrNextPageToken
+      (\ s a -> s{_llrNextPageToken = a})
+
+-- | A list of locations that matches the specified filter in the request.
+llrLocations :: Lens' ListLocationsResponse [Location]
+llrLocations
+  = lens _llrLocations (\ s a -> s{_llrLocations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListLocationsResponse where
+        parseJSON
+          = withObject "ListLocationsResponse"
+              (\ o ->
+                 ListLocationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "locations" .!= mempty))
+
+instance ToJSON ListLocationsResponse where
+        toJSON ListLocationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _llrNextPageToken,
+                  ("locations" .=) <$> _llrLocations])
+
+-- | Target scaling by disk usage. Only applicable for VM runtimes.
+--
+-- /See:/ 'diskUtilization' smart constructor.
+data DiskUtilization = DiskUtilization'
+    { _duTargetReadBytesPerSecond  :: !(Maybe (Textual Int32))
+    , _duTargetReadOpsPerSecond    :: !(Maybe (Textual Int32))
+    , _duTargetWriteOpsPerSecond   :: !(Maybe (Textual Int32))
+    , _duTargetWriteBytesPerSecond :: !(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:
+--
+-- * 'duTargetReadBytesPerSecond'
+--
+-- * 'duTargetReadOpsPerSecond'
+--
+-- * 'duTargetWriteOpsPerSecond'
+--
+-- * 'duTargetWriteBytesPerSecond'
+diskUtilization
+    :: DiskUtilization
+diskUtilization =
+    DiskUtilization'
+    { _duTargetReadBytesPerSecond = Nothing
+    , _duTargetReadOpsPerSecond = Nothing
+    , _duTargetWriteOpsPerSecond = Nothing
+    , _duTargetWriteBytesPerSecond = Nothing
+    }
+
+-- | Target bytes read per second.
+duTargetReadBytesPerSecond :: Lens' DiskUtilization (Maybe Int32)
+duTargetReadBytesPerSecond
+  = lens _duTargetReadBytesPerSecond
+      (\ s a -> s{_duTargetReadBytesPerSecond = a})
+      . mapping _Coerce
+
+-- | Target ops read per seconds.
+duTargetReadOpsPerSecond :: Lens' DiskUtilization (Maybe Int32)
+duTargetReadOpsPerSecond
+  = lens _duTargetReadOpsPerSecond
+      (\ s a -> s{_duTargetReadOpsPerSecond = a})
+      . mapping _Coerce
+
+-- | Target ops written per second.
+duTargetWriteOpsPerSecond :: Lens' DiskUtilization (Maybe Int32)
+duTargetWriteOpsPerSecond
+  = lens _duTargetWriteOpsPerSecond
+      (\ s a -> s{_duTargetWriteOpsPerSecond = a})
+      . mapping _Coerce
+
+-- | Target bytes written per second.
+duTargetWriteBytesPerSecond :: Lens' DiskUtilization (Maybe Int32)
+duTargetWriteBytesPerSecond
+  = lens _duTargetWriteBytesPerSecond
+      (\ s a -> s{_duTargetWriteBytesPerSecond = a})
+      . mapping _Coerce
+
+instance FromJSON DiskUtilization where
+        parseJSON
+          = withObject "DiskUtilization"
+              (\ o ->
+                 DiskUtilization' <$>
+                   (o .:? "targetReadBytesPerSecond") <*>
+                     (o .:? "targetReadOpsPerSecond")
+                     <*> (o .:? "targetWriteOpsPerSecond")
+                     <*> (o .:? "targetWriteBytesPerSecond"))
+
+instance ToJSON DiskUtilization where
+        toJSON DiskUtilization'{..}
+          = object
+              (catMaybes
+                 [("targetReadBytesPerSecond" .=) <$>
+                    _duTargetReadBytesPerSecond,
+                  ("targetReadOpsPerSecond" .=) <$>
+                    _duTargetReadOpsPerSecond,
+                  ("targetWriteOpsPerSecond" .=) <$>
+                    _duTargetWriteOpsPerSecond,
+                  ("targetWriteBytesPerSecond" .=) <$>
+                    _duTargetWriteBytesPerSecond])
+
+-- | 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])
+
+-- | Health checking configuration for VM instances. Unhealthy instances are
+-- killed and replaced with new instances. Only applicable for instances in
+-- App Engine flexible environment.
+--
+-- /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
+    }
+
+-- | Number of consecutive successful health checks required 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})
+
+-- | Interval between health checks.
+hcCheckInterval :: Lens' HealthCheck (Maybe Text)
+hcCheckInterval
+  = lens _hcCheckInterval
+      (\ s a -> s{_hcCheckInterval = a})
+
+-- | Number of consecutive failed health checks required before an instance
+-- is restarted.
+hcRestartThreshold :: Lens' HealthCheck (Maybe Word32)
+hcRestartThreshold
+  = lens _hcRestartThreshold
+      (\ s a -> s{_hcRestartThreshold = a})
+      . mapping _Coerce
+
+-- | Host header to send when performing an HTTP health check. Example:
+-- \"myapp.appspot.com\"
+hcHost :: Lens' HealthCheck (Maybe Text)
+hcHost = lens _hcHost (\ s a -> s{_hcHost = a})
+
+-- | Time before the health check is considered failed.
+hcTimeout :: Lens' HealthCheck (Maybe Text)
+hcTimeout
+  = lens _hcTimeout (\ s a -> s{_hcTimeout = a})
+
+-- | Number of consecutive failed health checks required 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])
+
+-- | [Google Cloud
+-- Endpoints](https:\/\/cloud.google.com\/appengine\/docs\/python\/endpoints\/)
+-- configuration for API handlers.
+--
+-- /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
+    }
+
+-- | Path to the script from the application root directory.
+achScript :: Lens' APIConfigHandler (Maybe Text)
+achScript
+  = lens _achScript (\ s a -> s{_achScript = a})
+
+-- | Security (HTTPS) enforcement 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})
+
+-- | Action to take when users access resources that require authentication.
+-- Defaults to \`redirect\`.
+achAuthFailAction :: Lens' APIConfigHandler (Maybe Text)
+achAuthFailAction
+  = lens _achAuthFailAction
+      (\ s a -> s{_achAuthFailAction = a})
+
+-- | Level of login required to access this resource. Defaults to
+-- \`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 available to the application. Only returned in
+-- \`GET\` requests if \`view=FULL\` is set.
+--
+-- /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 resource contains the top-level configuration of an App
+-- Engine application.
+--
+-- /See:/ 'application' smart constructor.
+data Application = Application'
+    { _aDefaultHostname         :: !(Maybe Text)
+    , _aDefaultCookieExpiration :: !(Maybe Text)
+    , _aAuthDomain              :: !(Maybe Text)
+    , _aCodeBucket              :: !(Maybe Text)
+    , _aName                    :: !(Maybe Text)
+    , _aDispatchRules           :: !(Maybe [URLDispatchRule])
+    , _aDefaultBucket           :: !(Maybe Text)
+    , _aId                      :: !(Maybe Text)
+    , _aLocationId              :: !(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'
+--
+-- * 'aAuthDomain'
+--
+-- * 'aCodeBucket'
+--
+-- * 'aName'
+--
+-- * 'aDispatchRules'
+--
+-- * 'aDefaultBucket'
+--
+-- * 'aId'
+--
+-- * 'aLocationId'
+application
+    :: Application
+application =
+    Application'
+    { _aDefaultHostname = Nothing
+    , _aDefaultCookieExpiration = Nothing
+    , _aAuthDomain = Nothing
+    , _aCodeBucket = Nothing
+    , _aName = Nothing
+    , _aDispatchRules = Nothing
+    , _aDefaultBucket = Nothing
+    , _aId = Nothing
+    , _aLocationId = Nothing
+    }
+
+-- | Hostname used to reach this application, as resolved by App Engine.
+-- \'OutputOnly
+aDefaultHostname :: Lens' Application (Maybe Text)
+aDefaultHostname
+  = lens _aDefaultHostname
+      (\ s a -> s{_aDefaultHostname = a})
+
+-- | Cookie expiration policy for this application. \'OutputOnly
+aDefaultCookieExpiration :: Lens' Application (Maybe Text)
+aDefaultCookieExpiration
+  = lens _aDefaultCookieExpiration
+      (\ s a -> s{_aDefaultCookieExpiration = a})
+
+-- | Google Apps authentication domain that controls which users can access
+-- this application. Defaults to open access for any Google Account.
+aAuthDomain :: Lens' Application (Maybe Text)
+aAuthDomain
+  = lens _aAuthDomain (\ s a -> s{_aAuthDomain = a})
+
+-- | Google Cloud Storage bucket that can be used for storing files
+-- associated with this 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})
+
+-- | Full path to the Application resource 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 application that do not
+-- explicitly target a service or version. Rules are order-dependent.
+-- \'OutputOnly
+aDispatchRules :: Lens' Application [URLDispatchRule]
+aDispatchRules
+  = lens _aDispatchRules
+      (\ s a -> s{_aDispatchRules = a})
+      . _Default
+      . _Coerce
+
+-- | Google Cloud Storage bucket that can be used by this application to
+-- store content. \'OutputOnly
+aDefaultBucket :: Lens' Application (Maybe Text)
+aDefaultBucket
+  = lens _aDefaultBucket
+      (\ s a -> s{_aDefaultBucket = a})
+
+-- | Identifier of the Application resource. This identifier is equivalent to
+-- the project ID of the Google Cloud Platform project where you want to
+-- deploy your application. Example: \`myapp\`.
+aId :: Lens' Application (Maybe Text)
+aId = lens _aId (\ s a -> s{_aId = a})
+
+-- | Location from which this application will be run. Application instances
+-- will run out of data centers in the chosen location, which is also where
+-- all of the application\'s end user content is stored. Defaults to
+-- \`us-central\`. Options are: \`us-central\` - Central US \`europe-west\`
+-- - Western Europe \`us-east1\` - Eastern US
+aLocationId :: Lens' Application (Maybe Text)
+aLocationId
+  = lens _aLocationId (\ s a -> s{_aLocationId = a})
+
+instance FromJSON Application where
+        parseJSON
+          = withObject "Application"
+              (\ o ->
+                 Application' <$>
+                   (o .:? "defaultHostname") <*>
+                     (o .:? "defaultCookieExpiration")
+                     <*> (o .:? "authDomain")
+                     <*> (o .:? "codeBucket")
+                     <*> (o .:? "name")
+                     <*> (o .:? "dispatchRules" .!= mempty)
+                     <*> (o .:? "defaultBucket")
+                     <*> (o .:? "id")
+                     <*> (o .:? "locationId"))
+
+instance ToJSON Application where
+        toJSON Application'{..}
+          = object
+              (catMaybes
+                 [("defaultHostname" .=) <$> _aDefaultHostname,
+                  ("defaultCookieExpiration" .=) <$>
+                    _aDefaultCookieExpiration,
+                  ("authDomain" .=) <$> _aAuthDomain,
+                  ("codeBucket" .=) <$> _aCodeBucket,
+                  ("name" .=) <$> _aName,
+                  ("dispatchRules" .=) <$> _aDispatchRules,
+                  ("defaultBucket" .=) <$> _aDefaultBucket,
+                  ("id" .=) <$> _aId,
+                  ("locationId" .=) <$> _aLocationId])
+
+-- | Metadata settings that are supplied to this version to enable beta
+-- runtime features.
+--
+-- /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 resource 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 tasks such as backend data analysis or API
+-- requests from mobile devices. 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
+    }
+
+-- | 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})
+
+-- | 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})
+
+-- | Relative name 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])
+
+-- | A resource that represents Google Cloud Platform location.
+--
+-- /See:/ 'location' smart constructor.
+data Location = Location'
+    { _locName       :: !(Maybe Text)
+    , _locMetadata   :: !(Maybe LocationSchema)
+    , _locLabels     :: !(Maybe LocationLabels)
+    , _locLocationId :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Location' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'locName'
+--
+-- * 'locMetadata'
+--
+-- * 'locLabels'
+--
+-- * 'locLocationId'
+location
+    :: Location
+location =
+    Location'
+    { _locName = Nothing
+    , _locMetadata = Nothing
+    , _locLabels = Nothing
+    , _locLocationId = Nothing
+    }
+
+-- | Resource name for the location, which may vary between implementations.
+-- For example: \`\"projects\/example-project\/locations\/us-east1\"\`
+locName :: Lens' Location (Maybe Text)
+locName = lens _locName (\ s a -> s{_locName = a})
+
+-- | Service-specific metadata. For example the available capacity at the
+-- given location.
+locMetadata :: Lens' Location (Maybe LocationSchema)
+locMetadata
+  = lens _locMetadata (\ s a -> s{_locMetadata = a})
+
+-- | Cross-service attributes for the location. For example
+-- {\"cloud.googleapis.com\/region\": \"us-east1\"}
+locLabels :: Lens' Location (Maybe LocationLabels)
+locLabels
+  = lens _locLabels (\ s a -> s{_locLabels = a})
+
+-- | The canonical id for this location. For example: \`\"us-east1\"\`.
+locLocationId :: Lens' Location (Maybe Text)
+locLocationId
+  = lens _locLocationId
+      (\ s a -> s{_locLocationId = a})
+
+instance FromJSON Location where
+        parseJSON
+          = withObject "Location"
+              (\ o ->
+                 Location' <$>
+                   (o .:? "name") <*> (o .:? "metadata") <*>
+                     (o .:? "labels")
+                     <*> (o .:? "locationId"))
+
+instance ToJSON Location where
+        toJSON Location'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _locName,
+                  ("metadata" .=) <$> _locMetadata,
+                  ("labels" .=) <$> _locLabels,
+                  ("locationId" .=) <$> _locLocationId])
+
+-- | 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])
+
+-- | The zip file information for a zip deployment.
+--
+-- /See:/ 'zipInfo' smart constructor.
+data ZipInfo = ZipInfo'
+    { _ziFilesCount :: !(Maybe (Textual Int32))
+    , _ziSourceURL  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZipInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ziFilesCount'
+--
+-- * 'ziSourceURL'
+zipInfo
+    :: ZipInfo
+zipInfo =
+    ZipInfo'
+    { _ziFilesCount = Nothing
+    , _ziSourceURL = Nothing
+    }
+
+-- | An estimate of the number of files in a zip for a zip deployment. If
+-- set, must be greater than or equal to the actual number of files. Used
+-- for optimizing performance; if not provided, deployment may be slow.
+ziFilesCount :: Lens' ZipInfo (Maybe Int32)
+ziFilesCount
+  = lens _ziFilesCount (\ s a -> s{_ziFilesCount = a})
+      . mapping _Coerce
+
+-- | URL of the zip file to deploy from. Must be a URL to a resource in
+-- Google Cloud Storage in the form
+-- \'http(s):\/\/storage.googleapis.com\/\\\/\\\'.
+ziSourceURL :: Lens' ZipInfo (Maybe Text)
+ziSourceURL
+  = lens _ziSourceURL (\ s a -> s{_ziSourceURL = a})
+
+instance FromJSON ZipInfo where
+        parseJSON
+          = withObject "ZipInfo"
+              (\ o ->
+                 ZipInfo' <$>
+                   (o .:? "filesCount") <*> (o .:? "sourceUrl"))
+
+instance ToJSON ZipInfo where
+        toJSON ZipInfo'{..}
+          = object
+              (catMaybes
+                 [("filesCount" .=) <$> _ziFilesCount,
+                  ("sourceUrl" .=) <$> _ziSourceURL])
+
+-- | 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
+    }
+
+-- | Pathname within the host. Must start with a \"\`\/\`\". A single
+-- \"\`*\`\" 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})
+
+-- | Resource ID of a service in this application that should serve the
+-- matched request. The service must already exist. Example: \`default\`.
+udrService :: Lens' URLDispatchRule (Maybe Text)
+udrService
+  = lens _udrService (\ s a -> s{_udrService = a})
+
+-- | Domain name to match against. The wildcard \"\`*\`\" is supported if
+-- specified before a period: \"\`*.\`\". Defaults to matching all domains:
+-- \"\`*\`\".
+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 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])
+
+-- | Single source file that is part of the version to be deployed. Each
+-- source file that is deployed must be specified separately.
+--
+-- /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 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. Defaults to the value from Google Cloud
+-- Storage.
+fiMimeType :: Lens' FileInfo (Maybe Text)
+fiMimeType
+  = lens _fiMimeType (\ s a -> s{_fiMimeType = a})
+
+-- | 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 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})
+
+-- | Maximum number of instances that should be started to handle requests.
+asMaxTotalInstances :: Lens' AutomaticScaling (Maybe Int32)
+asMaxTotalInstances
+  = lens _asMaxTotalInstances
+      (\ s a -> s{_asMaxTotalInstances = a})
+      . mapping _Coerce
+
+-- | Minimum number of idle instances that should be maintained for this
+-- version. Only applicable for the default version of a service.
+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})
+
+-- | Minimum amount of time a request should 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})
+
+-- | Maximum number of idle instances that should be maintained for this
+-- version.
+asMaxIdleInstances :: Lens' AutomaticScaling (Maybe Int32)
+asMaxIdleInstances
+  = lens _asMaxIdleInstances
+      (\ s a -> s{_asMaxIdleInstances = a})
+      . mapping _Coerce
+
+-- | Minimum number of instances that should be maintained for this version.
+asMinTotalInstances :: Lens' AutomaticScaling (Maybe Int32)
+asMinTotalInstances
+  = lens _asMinTotalInstances
+      (\ s a -> s{_asMinTotalInstances = a})
+      . mapping _Coerce
+
+-- | Number of concurrent requests an automatic scaling instance can accept
+-- before the scheduler spawns a new instance. Defaults to a
+-- runtime-specific value.
+asMaxConcurrentRequests :: Lens' AutomaticScaling (Maybe Int32)
+asMaxConcurrentRequests
+  = lens _asMaxConcurrentRequests
+      (\ s a -> s{_asMaxConcurrentRequests = a})
+      . mapping _Coerce
+
+-- | Amount of time that the
+-- [Autoscaler](https:\/\/cloud.google.com\/compute\/docs\/autoscaler\/)
+-- should wait between changes to the number of virtual machines. Only
+-- applicable for VM runtimes.
+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})
+
+-- | Maximum amount of time that a request should 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 created. \'OutputOnly
+omvbInsertTime :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+omvbInsertTime
+  = lens _omvbInsertTime
+      (\ s a -> s{_omvbInsertTime = a})
+
+-- | User who requested this operation. \'OutputOnly
+omvbUser :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+omvbUser = lens _omvbUser (\ s a -> s{_omvbUser = a})
+
+-- | API method name that initiated this 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 completed. \'OutputOnly
+omvbEndTime :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+omvbEndTime
+  = lens _omvbEndTime (\ s a -> s{_omvbEndTime = a})
+
+-- | Name of the 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])
+
+-- | Uses 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
+    }
+
+-- | 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 \'type 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
+
+-- | Extra network settings. Only applicable for VM runtimes.
+--
+-- /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
+    }
+
+-- | List of ports, or port pairs, to forward from the virtual machine to the
+-- application container.
+nForwardedPorts :: Lens' Network [Text]
+nForwardedPorts
+  = lens _nForwardedPorts
+      (\ s a -> s{_nForwardedPorts = a})
+      . _Default
+      . _Coerce
+
+-- | Tag to apply to the VM instance during creation.
+nInstanceTag :: Lens' Network (Maybe Text)
+nInstanceTag
+  = lens _nInstanceTag (\ s a -> s{_nInstanceTag = a})
+
+-- | Google Cloud Platform network where the virtual machines are created.
+-- Specify the short name, not the resource path. Defaults to \`default\`.
+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])
+
+-- | Request message for \`Instances.DebugInstance\`.
+--
+-- /See:/ 'debugInstanceRequest' smart constructor.
+data DebugInstanceRequest =
+    DebugInstanceRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DebugInstanceRequest' with the minimum fields required to make a request.
+--
+debugInstanceRequest
+    :: DebugInstanceRequest
+debugInstanceRequest = DebugInstanceRequest'
+
+instance FromJSON DebugInstanceRequest where
+        parseJSON
+          = withObject "DebugInstanceRequest"
+              (\ o -> pure DebugInstanceRequest')
+
+instance ToJSON DebugInstanceRequest where
+        toJSON = const emptyObject
+
+-- | 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
+
+-- | Machine resources for a version.
+--
+-- /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
+    }
+
+-- | Memory (GB) needed.
+rMemoryGb :: Lens' Resources (Maybe Double)
+rMemoryGb
+  = lens _rMemoryGb (\ s a -> s{_rMemoryGb = a}) .
+      mapping _Coerce
+
+-- | Disk size (GB) needed.
+rDiskGb :: Lens' Resources (Maybe Double)
+rDiskGb
+  = lens _rDiskGb (\ s a -> s{_rDiskGb = a}) .
+      mapping _Coerce
+
+-- | Number of CPU cores needed.
+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])
+
+-- | Manifest of the files stored in Google Cloud Storage that are included
+-- as part of this version. 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
+    }
+
+-- | Period of time over which CPU utilization is calculated.
+cuAggregationWindowLength :: Lens' CPUUtilization (Maybe Text)
+cuAggregationWindowLength
+  = lens _cuAggregationWindowLength
+      (\ s a -> s{_cuAggregationWindowLength = a})
+
+-- | Target CPU utilization ratio to maintain when scaling. Must be between 0
+-- and 1.
+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 version IDs within the service to fractional (0.000, 1]
+-- allocations of traffic for that version. Each version can be specified
+-- only once, but some versions in the service may not have any traffic
+-- allocation. Services that have traffic allocated cannot be deleted until
+-- either the service is deleted or their traffic allocation is removed.
+-- Allocations must sum to 1. Up to two decimal place precision is
+-- supported for IP-based splits and up to three decimal places is
+-- supported 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
+    }
+
+-- | 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
+    }
+
+-- | Maximum number of instances to create for this version.
+bsMaxInstances :: Lens' BasicScaling (Maybe Int32)
+bsMaxInstances
+  = lens _bsMaxInstances
+      (\ s a -> s{_bsMaxInstances = a})
+      . mapping _Coerce
+
+-- | Duration of time after the last request that an instance must wait
+-- before the instance is shut down.
+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])
+
+-- | Metadata for the given google.longrunning.Operation.
+--
+-- /See:/ 'operationMetadataV1' smart constructor.
+data OperationMetadataV1 = OperationMetadataV1'
+    { _omvInsertTime :: !(Maybe Text)
+    , _omvUser       :: !(Maybe Text)
+    , _omvMethod     :: !(Maybe Text)
+    , _omvEndTime    :: !(Maybe Text)
+    , _omvTarget     :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationMetadataV1' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'omvInsertTime'
+--
+-- * 'omvUser'
+--
+-- * 'omvMethod'
+--
+-- * 'omvEndTime'
+--
+-- * 'omvTarget'
+operationMetadataV1
+    :: OperationMetadataV1
+operationMetadataV1 =
+    OperationMetadataV1'
+    { _omvInsertTime = Nothing
+    , _omvUser = Nothing
+    , _omvMethod = Nothing
+    , _omvEndTime = Nothing
+    , _omvTarget = Nothing
+    }
+
+-- | Time that this operation was created. \'OutputOnly
+omvInsertTime :: Lens' OperationMetadataV1 (Maybe Text)
+omvInsertTime
+  = lens _omvInsertTime
+      (\ s a -> s{_omvInsertTime = a})
+
+-- | User who requested this operation. \'OutputOnly
+omvUser :: Lens' OperationMetadataV1 (Maybe Text)
+omvUser = lens _omvUser (\ s a -> s{_omvUser = a})
+
+-- | API method that initiated this operation. Example:
+-- \`google.appengine.v1.Versions.CreateVersion\`. \'OutputOnly
+omvMethod :: Lens' OperationMetadataV1 (Maybe Text)
+omvMethod
+  = lens _omvMethod (\ s a -> s{_omvMethod = a})
+
+-- | Time that this operation completed. \'OutputOnly
+omvEndTime :: Lens' OperationMetadataV1 (Maybe Text)
+omvEndTime
+  = lens _omvEndTime (\ s a -> s{_omvEndTime = a})
+
+-- | Name of the resource that this operation is acting on. Example:
+-- \`apps\/myapp\/services\/default\`. \'OutputOnly
+omvTarget :: Lens' OperationMetadataV1 (Maybe Text)
+omvTarget
+  = lens _omvTarget (\ s a -> s{_omvTarget = a})
+
+instance FromJSON OperationMetadataV1 where
+        parseJSON
+          = withObject "OperationMetadataV1"
+              (\ o ->
+                 OperationMetadataV1' <$>
+                   (o .:? "insertTime") <*> (o .:? "user") <*>
+                     (o .:? "method")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "target"))
+
+instance ToJSON OperationMetadataV1 where
+        toJSON OperationMetadataV1'{..}
+          = object
+              (catMaybes
+                 [("insertTime" .=) <$> _omvInsertTime,
+                  ("user" .=) <$> _omvUser,
+                  ("method" .=) <$> _omvMethod,
+                  ("endTime" .=) <$> _omvEndTime,
+                  ("target" .=) <$> _omvTarget])
+
+-- | A Version resource is a specific set of source code and configuration
+-- files that are deployed into a service.
+--
+-- /See:/ 'version' smart constructor.
+data Version = Version'
+    { _vRuntime           :: !(Maybe Text)
+    , _vNobuildFilesRegex :: !(Maybe Text)
+    , _vInstanceClass     :: !(Maybe Text)
+    , _vHealthCheck       :: !(Maybe HealthCheck)
+    , _vEnv               :: !(Maybe Text)
+    , _vDefaultExpiration :: !(Maybe Text)
+    , _vAutomaticScaling  :: !(Maybe AutomaticScaling)
+    , _vErrorHandlers     :: !(Maybe [ErrorHandler])
+    , _vCreatedBy         :: !(Maybe Text)
+    , _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))
+    , _vCreateTime        :: !(Maybe Text)
+    , _vLibraries         :: !(Maybe [Library])
+    , _vVersionURL        :: !(Maybe Text)
+    , _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:
+--
+-- * 'vRuntime'
+--
+-- * 'vNobuildFilesRegex'
+--
+-- * 'vInstanceClass'
+--
+-- * 'vHealthCheck'
+--
+-- * 'vEnv'
+--
+-- * 'vDefaultExpiration'
+--
+-- * 'vAutomaticScaling'
+--
+-- * 'vErrorHandlers'
+--
+-- * 'vCreatedBy'
+--
+-- * 'vVM'
+--
+-- * 'vHandlers'
+--
+-- * 'vInboundServices'
+--
+-- * 'vNetwork'
+--
+-- * 'vResources'
+--
+-- * 'vName'
+--
+-- * 'vThreadsafe'
+--
+-- * 'vBetaSettings'
+--
+-- * 'vBasicScaling'
+--
+-- * 'vManualScaling'
+--
+-- * 'vAPIConfig'
+--
+-- * 'vId'
+--
+-- * 'vEnvVariables'
+--
+-- * 'vServingStatus'
+--
+-- * 'vDiskUsageBytes'
+--
+-- * 'vCreateTime'
+--
+-- * 'vLibraries'
+--
+-- * 'vVersionURL'
+--
+-- * 'vDeployment'
+version
+    :: Version
+version =
+    Version'
+    { _vRuntime = Nothing
+    , _vNobuildFilesRegex = Nothing
+    , _vInstanceClass = Nothing
+    , _vHealthCheck = Nothing
+    , _vEnv = Nothing
+    , _vDefaultExpiration = Nothing
+    , _vAutomaticScaling = Nothing
+    , _vErrorHandlers = Nothing
+    , _vCreatedBy = 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
+    , _vCreateTime = Nothing
+    , _vLibraries = Nothing
+    , _vVersionURL = Nothing
+    , _vDeployment = Nothing
+    }
+
+-- | Desired runtime. Example: \`python27\`.
+vRuntime :: Lens' Version (Maybe Text)
+vRuntime = lens _vRuntime (\ s a -> s{_vRuntime = a})
+
+-- | Files that match this pattern will not be built into this version. Only
+-- applicable for Go runtimes. Only returned in \`GET\` requests if
+-- \`view=FULL\` is set.
+vNobuildFilesRegex :: Lens' Version (Maybe Text)
+vNobuildFilesRegex
+  = lens _vNobuildFilesRegex
+      (\ s a -> s{_vNobuildFilesRegex = a})
+
+-- | Instance class that is used to run this version. Valid values are: *
+-- AutomaticScaling: \`F1\`, \`F2\`, \`F4\`, \`F4_1G\` * ManualScaling or
+-- BasicScaling: \`B1\`, \`B2\`, \`B4\`, \`B8\`, \`B4_1G\` Defaults to
+-- \`F1\` for AutomaticScaling and \`B1\` for ManualScaling or
+-- BasicScaling.
+vInstanceClass :: Lens' Version (Maybe Text)
+vInstanceClass
+  = lens _vInstanceClass
+      (\ s a -> s{_vInstanceClass = a})
+
+-- | Configures health checking for VM instances. Unhealthy instances are
+-- stopped and replaced with new instances. Only applicable for VM
+-- runtimes. Only returned in \`GET\` requests if \`view=FULL\` is set.
+vHealthCheck :: Lens' Version (Maybe HealthCheck)
+vHealthCheck
+  = lens _vHealthCheck (\ s a -> s{_vHealthCheck = a})
+
+-- | App Engine execution environment for this version. Defaults to
+-- \`standard\`.
+vEnv :: Lens' Version (Maybe Text)
+vEnv = lens _vEnv (\ s a -> s{_vEnv = a})
+
+-- | Duration that static files should be cached by web proxies and browsers.
+-- Only applicable if the corresponding
+-- [StaticFilesHandler](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#staticfileshandler)
+-- does not specify its own expiration time. Only returned in \`GET\`
+-- requests if \`view=FULL\` is set.
+vDefaultExpiration :: Lens' Version (Maybe Text)
+vDefaultExpiration
+  = lens _vDefaultExpiration
+      (\ s a -> s{_vDefaultExpiration = a})
+
+-- | Automatic scaling 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. Limited to 10KB per page. Only returned in
+-- \`GET\` requests if \`view=FULL\` is set.
+vErrorHandlers :: Lens' Version [ErrorHandler]
+vErrorHandlers
+  = lens _vErrorHandlers
+      (\ s a -> s{_vErrorHandlers = a})
+      . _Default
+      . _Coerce
+
+-- | Email address of the user who created this version. \'OutputOnly
+vCreatedBy :: Lens' Version (Maybe Text)
+vCreatedBy
+  = lens _vCreatedBy (\ s a -> s{_vCreatedBy = a})
+
+-- | Whether to deploy this version in a container on a virtual machine.
+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 handles the request and other
+-- request handlers are not attempted. Only returned in \`GET\` requests if
+-- \`view=FULL\` is set.
+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
+
+-- | Extra network settings. Only applicable for VM runtimes.
+vNetwork :: Lens' Version (Maybe Network)
+vNetwork = lens _vNetwork (\ s a -> s{_vNetwork = a})
+
+-- | Machine resources for this version. Only applicable for VM runtimes.
+vResources :: Lens' Version (Maybe Resources)
+vResources
+  = lens _vResources (\ s a -> s{_vResources = a})
+
+-- | 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})
+
+-- | Whether multiple requests can be dispatched to this version at once.
+vThreadsafe :: Lens' Version (Maybe Bool)
+vThreadsafe
+  = lens _vThreadsafe (\ s a -> s{_vThreadsafe = a})
+
+-- | Metadata settings that are supplied to this version to enable beta
+-- runtime features.
+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](https:\/\/cloud.google.com\/appengine\/docs\/python\/endpoints\/).
+-- Only returned in \`GET\` requests if \`view=FULL\` is set.
+vAPIConfig :: Lens' Version (Maybe APIConfigHandler)
+vAPIConfig
+  = lens _vAPIConfig (\ s a -> s{_vAPIConfig = a})
+
+-- | Relative name of the version within the service. Example: \`v1\`.
+-- Version names can contain only lowercase letters, numbers, or hyphens.
+-- Reserved names: \"default\", \"latest\", and any name with the prefix
+-- \"ah-\".
+vId :: Lens' Version (Maybe Text)
+vId = lens _vId (\ s a -> s{_vId = a})
+
+-- | Environment variables available to the application. Only returned in
+-- \`GET\` requests if \`view=FULL\` is set.
+vEnvVariables :: Lens' Version (Maybe VersionEnvVariables)
+vEnvVariables
+  = lens _vEnvVariables
+      (\ s a -> s{_vEnvVariables = a})
+
+-- | Current serving status of this version. Only the versions with a
+-- \`SERVING\` status create instances and can be billed.
+-- \`SERVING_STATUS_UNSPECIFIED\` is an invalid value. Defaults to
+-- \`SERVING\`.
+vServingStatus :: Lens' Version (Maybe Text)
+vServingStatus
+  = lens _vServingStatus
+      (\ s a -> s{_vServingStatus = a})
+
+-- | Total size in bytes of all the files that are included in this version
+-- and curerntly hosted on the App Engine disk. \'OutputOnly
+vDiskUsageBytes :: Lens' Version (Maybe Int64)
+vDiskUsageBytes
+  = lens _vDiskUsageBytes
+      (\ s a -> s{_vDiskUsageBytes = a})
+      . mapping _Coerce
+
+-- | Time that this version was created. \'OutputOnly
+vCreateTime :: Lens' Version (Maybe Text)
+vCreateTime
+  = lens _vCreateTime (\ s a -> s{_vCreateTime = a})
+
+-- | Configuration for third-party Python runtime libraries that are required
+-- by the application. Only returned in \`GET\` requests if \`view=FULL\`
+-- is set.
+vLibraries :: Lens' Version [Library]
+vLibraries
+  = lens _vLibraries (\ s a -> s{_vLibraries = a}) .
+      _Default
+      . _Coerce
+
+-- | Serving URL for this version. Example:
+-- \"https:\/\/myversion-dot-myservice-dot-myapp.appspot.com\" \'OutputOnly
+vVersionURL :: Lens' Version (Maybe Text)
+vVersionURL
+  = lens _vVersionURL (\ s a -> s{_vVersionURL = a})
+
+-- | Code and application artifacts that make up this version. Only returned
+-- in \`GET\` requests if \`view=FULL\` is set.
+vDeployment :: Lens' Version (Maybe Deployment)
+vDeployment
+  = lens _vDeployment (\ s a -> s{_vDeployment = a})
+
+instance FromJSON Version where
+        parseJSON
+          = withObject "Version"
+              (\ o ->
+                 Version' <$>
+                   (o .:? "runtime") <*> (o .:? "nobuildFilesRegex") <*>
+                     (o .:? "instanceClass")
+                     <*> (o .:? "healthCheck")
+                     <*> (o .:? "env")
+                     <*> (o .:? "defaultExpiration")
+                     <*> (o .:? "automaticScaling")
+                     <*> (o .:? "errorHandlers" .!= mempty)
+                     <*> (o .:? "createdBy")
+                     <*> (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 .:? "createTime")
+                     <*> (o .:? "libraries" .!= mempty)
+                     <*> (o .:? "versionUrl")
+                     <*> (o .:? "deployment"))
+
+instance ToJSON Version where
+        toJSON Version'{..}
+          = object
+              (catMaybes
+                 [("runtime" .=) <$> _vRuntime,
+                  ("nobuildFilesRegex" .=) <$> _vNobuildFilesRegex,
+                  ("instanceClass" .=) <$> _vInstanceClass,
+                  ("healthCheck" .=) <$> _vHealthCheck,
+                  ("env" .=) <$> _vEnv,
+                  ("defaultExpiration" .=) <$> _vDefaultExpiration,
+                  ("automaticScaling" .=) <$> _vAutomaticScaling,
+                  ("errorHandlers" .=) <$> _vErrorHandlers,
+                  ("createdBy" .=) <$> _vCreatedBy, ("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,
+                  ("createTime" .=) <$> _vCreateTime,
+                  ("libraries" .=) <$> _vLibraries,
+                  ("versionUrl" .=) <$> _vVersionURL,
+                  ("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})
+
+-- | 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})
+
+-- | Whether this handler should match the request if the file referenced by
+-- the handler does not exist.
+sfhRequireMatchingFile :: Lens' StaticFilesHandler (Maybe Bool)
+sfhRequireMatchingFile
+  = lens _sfhRequireMatchingFile
+      (\ s a -> s{_sfhRequireMatchingFile = a})
+
+-- | Time a static file served by this handler should be cached by web
+-- proxies and browsers.
+sfhExpiration :: Lens' StaticFilesHandler (Maybe Text)
+sfhExpiration
+  = lens _sfhExpiration
+      (\ s a -> s{_sfhExpiration = a})
+
+-- | MIME type used to serve all files served by this handler. Defaults to
+-- file-specific MIME types, which are derived from each file\'s filename
+-- extension.
+sfhMimeType :: Lens' StaticFilesHandler (Maybe Text)
+sfhMimeType
+  = lens _sfhMimeType (\ s a -> s{_sfhMimeType = a})
+
+-- | Whether files should also be uploaded as code data. 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 the application. If
+-- enabled, uploads are charged against both your code and static data
+-- storage resource quotas.
+sfhApplicationReadable :: Lens' StaticFilesHandler (Maybe Bool)
+sfhApplicationReadable
+  = lens _sfhApplicationReadable
+      (\ s a -> s{_sfhApplicationReadable = a})
+
+-- | Regular expression that matches the file paths for all files that should
+-- 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])
+
+-- | 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. Defaults to \`text\/html\`.
+ehMimeType :: Lens' ErrorHandler (Maybe Text)
+ehMimeType
+  = lens _ehMimeType (\ s a -> s{_ehMimeType = a})
+
+-- | 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])
+
+-- | Cross-service attributes for the location. For example
+-- {\"cloud.googleapis.com\/region\": \"us-east1\"}
+--
+-- /See:/ 'locationLabels' smart constructor.
+newtype LocationLabels = LocationLabels'
+    { _llAddtional :: HashMap Text Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LocationLabels' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'llAddtional'
+locationLabels
+    :: HashMap Text Text -- ^ 'llAddtional'
+    -> LocationLabels
+locationLabels pLlAddtional_ =
+    LocationLabels'
+    { _llAddtional = _Coerce # pLlAddtional_
+    }
+
+llAddtional :: Lens' LocationLabels (HashMap Text Text)
+llAddtional
+  = lens _llAddtional (\ s a -> s{_llAddtional = a}) .
+      _Coerce
+
+instance FromJSON LocationLabels where
+        parseJSON
+          = withObject "LocationLabels"
+              (\ o -> LocationLabels' <$> (parseJSONObject o))
+
+instance ToJSON LocationLabels where
+        toJSON = toJSON . _llAddtional
+
+-- | Metadata for the given google.cloud.location.Location.
+--
+-- /See:/ 'locationMetadata' smart constructor.
+data LocationMetadata = LocationMetadata'
+    { _lmStandardEnvironmentAvailable :: !(Maybe Bool)
+    , _lmFlexibleEnvironmentAvailable :: !(Maybe Bool)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LocationMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lmStandardEnvironmentAvailable'
+--
+-- * 'lmFlexibleEnvironmentAvailable'
+locationMetadata
+    :: LocationMetadata
+locationMetadata =
+    LocationMetadata'
+    { _lmStandardEnvironmentAvailable = Nothing
+    , _lmFlexibleEnvironmentAvailable = Nothing
+    }
+
+-- | App Engine Standard Environment is available in the given location.
+-- \'OutputOnly
+lmStandardEnvironmentAvailable :: Lens' LocationMetadata (Maybe Bool)
+lmStandardEnvironmentAvailable
+  = lens _lmStandardEnvironmentAvailable
+      (\ s a -> s{_lmStandardEnvironmentAvailable = a})
+
+-- | App Engine Flexible Environment is available in the given location.
+-- \'OutputOnly
+lmFlexibleEnvironmentAvailable :: Lens' LocationMetadata (Maybe Bool)
+lmFlexibleEnvironmentAvailable
+  = lens _lmFlexibleEnvironmentAvailable
+      (\ s a -> s{_lmFlexibleEnvironmentAvailable = a})
+
+instance FromJSON LocationMetadata where
+        parseJSON
+          = withObject "LocationMetadata"
+              (\ o ->
+                 LocationMetadata' <$>
+                   (o .:? "standardEnvironmentAvailable") <*>
+                     (o .:? "flexibleEnvironmentAvailable"))
+
+instance ToJSON LocationMetadata where
+        toJSON LocationMetadata'{..}
+          = object
+              (catMaybes
+                 [("standardEnvironmentAvailable" .=) <$>
+                    _lmStandardEnvironmentAvailable,
+                  ("flexibleEnvironmentAvailable" .=) <$>
+                    _lmFlexibleEnvironmentAvailable])
+
+-- | 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 created. \'OutputOnly
+omInsertTime :: Lens' OperationMetadata (Maybe Text)
+omInsertTime
+  = lens _omInsertTime (\ s a -> s{_omInsertTime = a})
+
+-- | User who requested this operation. \'OutputOnly
+omUser :: Lens' OperationMetadata (Maybe Text)
+omUser = lens _omUser (\ s a -> s{_omUser = a})
+
+-- | API method that initiated this 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 completed. \'OutputOnly
+omEndTime :: Lens' OperationMetadata (Maybe Text)
+omEndTime
+  = lens _omEndTime (\ s a -> s{_omEndTime = a})
+
+-- | Type of this operation. Deprecated, use method field instead. Example:
+-- \"create_version\". \'OutputOnly
+omOperationType :: Lens' OperationMetadata (Maybe Text)
+omOperationType
+  = lens _omOperationType
+      (\ s a -> s{_omOperationType = a})
+
+-- | Name of the 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. Only applicable for VM runtimes.
+--
+-- /See:/ 'requestUtilization' smart constructor.
+data RequestUtilization = RequestUtilization'
+    { _ruTargetConcurrentRequests    :: !(Maybe (Textual Int32))
+    , _ruTargetRequestCountPerSecond :: !(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'
+--
+-- * 'ruTargetRequestCountPerSecond'
+requestUtilization
+    :: RequestUtilization
+requestUtilization =
+    RequestUtilization'
+    { _ruTargetConcurrentRequests = Nothing
+    , _ruTargetRequestCountPerSecond = 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.
+ruTargetRequestCountPerSecond :: Lens' RequestUtilization (Maybe Int32)
+ruTargetRequestCountPerSecond
+  = lens _ruTargetRequestCountPerSecond
+      (\ s a -> s{_ruTargetRequestCountPerSecond = a})
+      . mapping _Coerce
+
+instance FromJSON RequestUtilization where
+        parseJSON
+          = withObject "RequestUtilization"
+              (\ o ->
+                 RequestUtilization' <$>
+                   (o .:? "targetConcurrentRequests") <*>
+                     (o .:? "targetRequestCountPerSecond"))
+
+instance ToJSON RequestUtilization where
+        toJSON RequestUtilization'{..}
+          = object
+              (catMaybes
+                 [("targetConcurrentRequests" .=) <$>
+                    _ruTargetConcurrentRequests,
+                  ("targetRequestCountPerSecond" .=) <$>
+                    _ruTargetRequestCountPerSecond])
+
+-- | Request message for \'Applications.RepairApplication\'.
+--
+-- /See:/ 'repairApplicationRequest' smart constructor.
+data RepairApplicationRequest =
+    RepairApplicationRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RepairApplicationRequest' with the minimum fields required to make a request.
+--
+repairApplicationRequest
+    :: RepairApplicationRequest
+repairApplicationRequest = RepairApplicationRequest'
+
+instance FromJSON RepairApplicationRequest where
+        parseJSON
+          = withObject "RepairApplicationRequest"
+              (\ o -> pure RepairApplicationRequest')
+
+instance ToJSON RepairApplicationRequest where
+        toJSON = const emptyObject
+
+-- | 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 \'type 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
+
+-- | Docker image that is used to start a VM container for the version you
+-- deploy.
+--
+-- /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
+    }
+
+-- | URI to the hosted container image in a Docker repository. The URI must
+-- be fully qualified and include a tag or digest. Examples:
+-- \"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])
+
+-- | An Instance resource is the computing unit 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)
+    , _iStartTime        :: !(Maybe Text)
+    , _iVMId             :: !(Maybe Text)
+    , _iAvailability     :: !(Maybe Text)
+    , _iVMName           :: !(Maybe Text)
+    , _iName             :: !(Maybe Text)
+    , _iVMDebugEnabled   :: !(Maybe Bool)
+    , _iRequests         :: !(Maybe (Textual Int32))
+    , _iQps              :: !(Maybe (Textual Double))
+    , _iId               :: !(Maybe Text)
+    , _iErrors           :: !(Maybe (Textual Int32))
+    , _iAverageLatency   :: !(Maybe (Textual Int32))
+    , _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'
+--
+-- * 'iStartTime'
+--
+-- * 'iVMId'
+--
+-- * 'iAvailability'
+--
+-- * 'iVMName'
+--
+-- * 'iName'
+--
+-- * 'iVMDebugEnabled'
+--
+-- * 'iRequests'
+--
+-- * 'iQps'
+--
+-- * 'iId'
+--
+-- * 'iErrors'
+--
+-- * 'iAverageLatency'
+--
+-- * 'iAppEngineRelease'
+instance'
+    :: Instance
+instance' =
+    Instance'
+    { _iMemoryUsage = Nothing
+    , _iVMStatus = Nothing
+    , _iVMZoneName = Nothing
+    , _iStartTime = Nothing
+    , _iVMId = Nothing
+    , _iAvailability = Nothing
+    , _iVMName = Nothing
+    , _iName = Nothing
+    , _iVMDebugEnabled = Nothing
+    , _iRequests = Nothing
+    , _iQps = Nothing
+    , _iId = Nothing
+    , _iErrors = Nothing
+    , _iAverageLatency = Nothing
+    , _iAppEngineRelease = Nothing
+    }
+
+-- | Total memory in use (bytes). \'OutputOnly
+iMemoryUsage :: Lens' Instance (Maybe Int64)
+iMemoryUsage
+  = lens _iMemoryUsage (\ s a -> s{_iMemoryUsage = a})
+      . mapping _Coerce
+
+-- | Status of the virtual machine where this instance lives. Only applicable
+-- for instances in App Engine flexible environment. \'OutputOnly
+iVMStatus :: Lens' Instance (Maybe Text)
+iVMStatus
+  = lens _iVMStatus (\ s a -> s{_iVMStatus = a})
+
+-- | Zone where the virtual machine is located. Only applicable for instances
+-- in App Engine flexible environment. \'OutputOnly
+iVMZoneName :: Lens' Instance (Maybe Text)
+iVMZoneName
+  = lens _iVMZoneName (\ s a -> s{_iVMZoneName = a})
+
+-- | Time that this instance was started. \'OutputOnly
+iStartTime :: Lens' Instance (Maybe Text)
+iStartTime
+  = lens _iStartTime (\ s a -> s{_iStartTime = a})
+
+-- | Virtual machine ID of this instance. Only applicable for instances in
+-- App Engine flexible environment. \'OutputOnly
+iVMId :: Lens' Instance (Maybe Text)
+iVMId = lens _iVMId (\ s a -> s{_iVMId = a})
+
+-- | Availability of the instance. \'OutputOnly
+iAvailability :: Lens' Instance (Maybe Text)
+iAvailability
+  = lens _iAvailability
+      (\ s a -> s{_iAvailability = a})
+
+-- | Name of the virtual machine where this instance lives. Only applicable
+-- for instances in App Engine flexible environment. \'OutputOnly
+iVMName :: Lens' Instance (Maybe Text)
+iVMName = lens _iVMName (\ s a -> s{_iVMName = a})
+
+-- | 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})
+
+-- | Whether this instance is in debug mode. Only applicable for instances in
+-- App Engine flexible environment. \'OutputOnly
+iVMDebugEnabled :: Lens' Instance (Maybe Bool)
+iVMDebugEnabled
+  = lens _iVMDebugEnabled
+      (\ s a -> s{_iVMDebugEnabled = a})
+
+-- | Number of requests since this instance was started. \'OutputOnly
+iRequests :: Lens' Instance (Maybe Int32)
+iRequests
+  = lens _iRequests (\ s a -> s{_iRequests = a}) .
+      mapping _Coerce
+
+-- | Average queries per second (QPS) over the last minute. \'OutputOnly
+iQps :: Lens' Instance (Maybe Double)
+iQps
+  = lens _iQps (\ s a -> s{_iQps = a}) .
+      mapping _Coerce
+
+-- | Relative name 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 this instance was started. \'OutputOnly
+iErrors :: Lens' Instance (Maybe Int32)
+iErrors
+  = lens _iErrors (\ s a -> s{_iErrors = a}) .
+      mapping _Coerce
+
+-- | Average latency (ms) over the last minute. \'OutputOnly
+iAverageLatency :: Lens' Instance (Maybe Int32)
+iAverageLatency
+  = lens _iAverageLatency
+      (\ s a -> s{_iAverageLatency = a})
+      . mapping _Coerce
+
+-- | App Engine release this 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 .:? "startTime")
+                     <*> (o .:? "vmId")
+                     <*> (o .:? "availability")
+                     <*> (o .:? "vmName")
+                     <*> (o .:? "name")
+                     <*> (o .:? "vmDebugEnabled")
+                     <*> (o .:? "requests")
+                     <*> (o .:? "qps")
+                     <*> (o .:? "id")
+                     <*> (o .:? "errors")
+                     <*> (o .:? "averageLatency")
+                     <*> (o .:? "appEngineRelease"))
+
+instance ToJSON Instance where
+        toJSON Instance'{..}
+          = object
+              (catMaybes
+                 [("memoryUsage" .=) <$> _iMemoryUsage,
+                  ("vmStatus" .=) <$> _iVMStatus,
+                  ("vmZoneName" .=) <$> _iVMZoneName,
+                  ("startTime" .=) <$> _iStartTime,
+                  ("vmId" .=) <$> _iVMId,
+                  ("availability" .=) <$> _iAvailability,
+                  ("vmName" .=) <$> _iVMName, ("name" .=) <$> _iName,
+                  ("vmDebugEnabled" .=) <$> _iVMDebugEnabled,
+                  ("requests" .=) <$> _iRequests, ("qps" .=) <$> _iQps,
+                  ("id" .=) <$> _iId, ("errors" .=) <$> _iErrors,
+                  ("averageLatency" .=) <$> _iAverageLatency,
+                  ("appEngineRelease" .=) <$> _iAppEngineRelease])
+
+-- | Code and application artifacts used to deploy a version to App Engine.
+--
+-- /See:/ 'deployment' smart constructor.
+data Deployment = Deployment'
+    { _dZip       :: !(Maybe ZipInfo)
+    , _dContainer :: !(Maybe ContainerInfo)
+    , _dFiles     :: !(Maybe DeploymentFiles)
+    } 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:
+--
+-- * 'dZip'
+--
+-- * 'dContainer'
+--
+-- * 'dFiles'
+deployment
+    :: Deployment
+deployment =
+    Deployment'
+    { _dZip = Nothing
+    , _dContainer = Nothing
+    , _dFiles = Nothing
+    }
+
+-- | The zip file for this deployment, if this is a zip deployment.
+dZip :: Lens' Deployment (Maybe ZipInfo)
+dZip = lens _dZip (\ s a -> s{_dZip = a})
+
+-- | A Docker image that App Engine uses to run the version. Only applicable
+-- for instances in App Engine flexible environment.
+dContainer :: Lens' Deployment (Maybe ContainerInfo)
+dContainer
+  = lens _dContainer (\ s a -> s{_dContainer = a})
+
+-- | Manifest of the files stored in Google Cloud Storage that are included
+-- as part of this version. 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})
+
+instance FromJSON Deployment where
+        parseJSON
+          = withObject "Deployment"
+              (\ o ->
+                 Deployment' <$>
+                   (o .:? "zip") <*> (o .:? "container") <*>
+                     (o .:? "files"))
+
+instance ToJSON Deployment where
+        toJSON Deployment'{..}
+          = object
+              (catMaybes
+                 [("zip" .=) <$> _dZip,
+                  ("container" .=) <$> _dContainer,
+                  ("files" .=) <$> _dFiles])
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
@@ -40,7 +40,6 @@
     , agUploadType
     , agBearerToken
     , agAppsId
-    , agEnsureResourcesExist
     , agCallback
     ) where
 
@@ -50,7 +49,7 @@
 -- | A resource alias for @appengine.apps.get@ method which the
 -- 'AppsGet' request conforms to.
 type AppsGetResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            QueryParam "$.xgafv" Text :>
@@ -59,23 +58,21 @@
                  QueryParam "access_token" Text :>
                    QueryParam "uploadType" Text :>
                      QueryParam "bearer_token" Text :>
-                       QueryParam "ensureResourcesExist" Bool :>
-                         QueryParam "callback" Text :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] Application
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] Application
 
 -- | Gets information about an application.
 --
 -- /See:/ 'appsGet' smart constructor.
 data AppsGet = AppsGet'
-    { _agXgafv                :: !(Maybe Text)
-    , _agUploadProtocol       :: !(Maybe Text)
-    , _agPp                   :: !Bool
-    , _agAccessToken          :: !(Maybe Text)
-    , _agUploadType           :: !(Maybe Text)
-    , _agBearerToken          :: !(Maybe Text)
-    , _agAppsId               :: !Text
-    , _agEnsureResourcesExist :: !(Maybe Bool)
-    , _agCallback             :: !(Maybe Text)
+    { _agXgafv          :: !(Maybe Text)
+    , _agUploadProtocol :: !(Maybe Text)
+    , _agPp             :: !Bool
+    , _agAccessToken    :: !(Maybe Text)
+    , _agUploadType     :: !(Maybe Text)
+    , _agBearerToken    :: !(Maybe Text)
+    , _agAppsId         :: !Text
+    , _agCallback       :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'AppsGet' with the minimum fields required to make a request.
@@ -96,8 +93,6 @@
 --
 -- * 'agAppsId'
 --
--- * 'agEnsureResourcesExist'
---
 -- * 'agCallback'
 appsGet
     :: Text -- ^ 'agAppsId'
@@ -111,7 +106,6 @@
     , _agUploadType = Nothing
     , _agBearerToken = Nothing
     , _agAppsId = pAgAppsId_
-    , _agEnsureResourcesExist = Nothing
     , _agCallback = Nothing
     }
 
@@ -146,22 +140,11 @@
   = lens _agBearerToken
       (\ s a -> s{_agBearerToken = a})
 
--- | Part of \`name\`. Name of the application to get. For example:
--- \"apps\/myapp\".
+-- | Part of \`name\`. Name of the Application resource to get. Example:
+-- \`apps\/myapp\`.
 agAppsId :: Lens' AppsGet Text
 agAppsId = lens _agAppsId (\ s a -> s{_agAppsId = a})
 
--- | 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 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
-      (\ s a -> s{_agEnsureResourcesExist = a})
-
 -- | JSONP
 agCallback :: Lens' AppsGet (Maybe Text)
 agCallback
@@ -177,7 +160,6 @@
               _agAccessToken
               _agUploadType
               _agBearerToken
-              _agEnsureResourcesExist
               _agCallback
               (Just AltJSON)
               appEngineService
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Locations/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Locations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Locations/Get.hs
@@ -0,0 +1,185 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AppEngine.Apps.Locations.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)
+--
+-- Get information about a location.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.locations.get@.
+module Network.Google.Resource.AppEngine.Apps.Locations.Get
+    (
+    -- * REST Resource
+      AppsLocationsGetResource
+
+    -- * Creating a Request
+    , appsLocationsGet
+    , AppsLocationsGet
+
+    -- * Request Lenses
+    , algXgafv
+    , algUploadProtocol
+    , algPp
+    , algAccessToken
+    , algUploadType
+    , algBearerToken
+    , algAppsId
+    , algLocationsId
+    , algCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.locations.get@ method which the
+-- 'AppsLocationsGet' request conforms to.
+type AppsLocationsGetResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "locations" :>
+             Capture "locationsId" 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] Location
+
+-- | Get information about a location.
+--
+-- /See:/ 'appsLocationsGet' smart constructor.
+data AppsLocationsGet = AppsLocationsGet'
+    { _algXgafv          :: !(Maybe Text)
+    , _algUploadProtocol :: !(Maybe Text)
+    , _algPp             :: !Bool
+    , _algAccessToken    :: !(Maybe Text)
+    , _algUploadType     :: !(Maybe Text)
+    , _algBearerToken    :: !(Maybe Text)
+    , _algAppsId         :: !Text
+    , _algLocationsId    :: !Text
+    , _algCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsLocationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'algXgafv'
+--
+-- * 'algUploadProtocol'
+--
+-- * 'algPp'
+--
+-- * 'algAccessToken'
+--
+-- * 'algUploadType'
+--
+-- * 'algBearerToken'
+--
+-- * 'algAppsId'
+--
+-- * 'algLocationsId'
+--
+-- * 'algCallback'
+appsLocationsGet
+    :: Text -- ^ 'algAppsId'
+    -> Text -- ^ 'algLocationsId'
+    -> AppsLocationsGet
+appsLocationsGet pAlgAppsId_ pAlgLocationsId_ =
+    AppsLocationsGet'
+    { _algXgafv = Nothing
+    , _algUploadProtocol = Nothing
+    , _algPp = True
+    , _algAccessToken = Nothing
+    , _algUploadType = Nothing
+    , _algBearerToken = Nothing
+    , _algAppsId = pAlgAppsId_
+    , _algLocationsId = pAlgLocationsId_
+    , _algCallback = Nothing
+    }
+
+-- | V1 error format.
+algXgafv :: Lens' AppsLocationsGet (Maybe Text)
+algXgafv = lens _algXgafv (\ s a -> s{_algXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+algUploadProtocol :: Lens' AppsLocationsGet (Maybe Text)
+algUploadProtocol
+  = lens _algUploadProtocol
+      (\ s a -> s{_algUploadProtocol = a})
+
+-- | Pretty-print response.
+algPp :: Lens' AppsLocationsGet Bool
+algPp = lens _algPp (\ s a -> s{_algPp = a})
+
+-- | OAuth access token.
+algAccessToken :: Lens' AppsLocationsGet (Maybe Text)
+algAccessToken
+  = lens _algAccessToken
+      (\ s a -> s{_algAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+algUploadType :: Lens' AppsLocationsGet (Maybe Text)
+algUploadType
+  = lens _algUploadType
+      (\ s a -> s{_algUploadType = a})
+
+-- | OAuth bearer token.
+algBearerToken :: Lens' AppsLocationsGet (Maybe Text)
+algBearerToken
+  = lens _algBearerToken
+      (\ s a -> s{_algBearerToken = a})
+
+-- | Part of \`name\`. Resource name for the location.
+algAppsId :: Lens' AppsLocationsGet Text
+algAppsId
+  = lens _algAppsId (\ s a -> s{_algAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+algLocationsId :: Lens' AppsLocationsGet Text
+algLocationsId
+  = lens _algLocationsId
+      (\ s a -> s{_algLocationsId = a})
+
+-- | JSONP
+algCallback :: Lens' AppsLocationsGet (Maybe Text)
+algCallback
+  = lens _algCallback (\ s a -> s{_algCallback = a})
+
+instance GoogleRequest AppsLocationsGet where
+        type Rs AppsLocationsGet = Location
+        type Scopes AppsLocationsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsLocationsGet'{..}
+          = go _algAppsId _algLocationsId _algXgafv
+              _algUploadProtocol
+              (Just _algPp)
+              _algAccessToken
+              _algUploadType
+              _algBearerToken
+              _algCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsLocationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Locations/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Locations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Locations/List.hs
@@ -0,0 +1,210 @@
+{-# 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.Locations.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 information about the supported locations for this service.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.locations.list@.
+module Network.Google.Resource.AppEngine.Apps.Locations.List
+    (
+    -- * REST Resource
+      AppsLocationsListResource
+
+    -- * Creating a Request
+    , appsLocationsList
+    , AppsLocationsList
+
+    -- * Request Lenses
+    , allXgafv
+    , allUploadProtocol
+    , allPp
+    , allAccessToken
+    , allUploadType
+    , allBearerToken
+    , allAppsId
+    , allFilter
+    , allPageToken
+    , allPageSize
+    , allCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.locations.list@ method which the
+-- 'AppsLocationsList' request conforms to.
+type AppsLocationsListResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "locations" :>
+             QueryParam "$.xgafv" Text :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "filter" Text :>
+                           QueryParam "pageToken" Text :>
+                             QueryParam "pageSize" (Textual Int32) :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] ListLocationsResponse
+
+-- | Lists information about the supported locations for this service.
+--
+-- /See:/ 'appsLocationsList' smart constructor.
+data AppsLocationsList = AppsLocationsList'
+    { _allXgafv          :: !(Maybe Text)
+    , _allUploadProtocol :: !(Maybe Text)
+    , _allPp             :: !Bool
+    , _allAccessToken    :: !(Maybe Text)
+    , _allUploadType     :: !(Maybe Text)
+    , _allBearerToken    :: !(Maybe Text)
+    , _allAppsId         :: !Text
+    , _allFilter         :: !(Maybe Text)
+    , _allPageToken      :: !(Maybe Text)
+    , _allPageSize       :: !(Maybe (Textual Int32))
+    , _allCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsLocationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'allXgafv'
+--
+-- * 'allUploadProtocol'
+--
+-- * 'allPp'
+--
+-- * 'allAccessToken'
+--
+-- * 'allUploadType'
+--
+-- * 'allBearerToken'
+--
+-- * 'allAppsId'
+--
+-- * 'allFilter'
+--
+-- * 'allPageToken'
+--
+-- * 'allPageSize'
+--
+-- * 'allCallback'
+appsLocationsList
+    :: Text -- ^ 'allAppsId'
+    -> AppsLocationsList
+appsLocationsList pAllAppsId_ =
+    AppsLocationsList'
+    { _allXgafv = Nothing
+    , _allUploadProtocol = Nothing
+    , _allPp = True
+    , _allAccessToken = Nothing
+    , _allUploadType = Nothing
+    , _allBearerToken = Nothing
+    , _allAppsId = pAllAppsId_
+    , _allFilter = Nothing
+    , _allPageToken = Nothing
+    , _allPageSize = Nothing
+    , _allCallback = Nothing
+    }
+
+-- | V1 error format.
+allXgafv :: Lens' AppsLocationsList (Maybe Text)
+allXgafv = lens _allXgafv (\ s a -> s{_allXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+allUploadProtocol :: Lens' AppsLocationsList (Maybe Text)
+allUploadProtocol
+  = lens _allUploadProtocol
+      (\ s a -> s{_allUploadProtocol = a})
+
+-- | Pretty-print response.
+allPp :: Lens' AppsLocationsList Bool
+allPp = lens _allPp (\ s a -> s{_allPp = a})
+
+-- | OAuth access token.
+allAccessToken :: Lens' AppsLocationsList (Maybe Text)
+allAccessToken
+  = lens _allAccessToken
+      (\ s a -> s{_allAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+allUploadType :: Lens' AppsLocationsList (Maybe Text)
+allUploadType
+  = lens _allUploadType
+      (\ s a -> s{_allUploadType = a})
+
+-- | OAuth bearer token.
+allBearerToken :: Lens' AppsLocationsList (Maybe Text)
+allBearerToken
+  = lens _allBearerToken
+      (\ s a -> s{_allBearerToken = a})
+
+-- | Part of \`name\`. The resource that owns the locations collection, if
+-- applicable.
+allAppsId :: Lens' AppsLocationsList Text
+allAppsId
+  = lens _allAppsId (\ s a -> s{_allAppsId = a})
+
+-- | The standard list filter.
+allFilter :: Lens' AppsLocationsList (Maybe Text)
+allFilter
+  = lens _allFilter (\ s a -> s{_allFilter = a})
+
+-- | The standard list page token.
+allPageToken :: Lens' AppsLocationsList (Maybe Text)
+allPageToken
+  = lens _allPageToken (\ s a -> s{_allPageToken = a})
+
+-- | The standard list page size.
+allPageSize :: Lens' AppsLocationsList (Maybe Int32)
+allPageSize
+  = lens _allPageSize (\ s a -> s{_allPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+allCallback :: Lens' AppsLocationsList (Maybe Text)
+allCallback
+  = lens _allCallback (\ s a -> s{_allCallback = a})
+
+instance GoogleRequest AppsLocationsList where
+        type Rs AppsLocationsList = ListLocationsResponse
+        type Scopes AppsLocationsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsLocationsList'{..}
+          = go _allAppsId _allXgafv _allUploadProtocol
+              (Just _allPp)
+              _allAccessToken
+              _allUploadType
+              _allBearerToken
+              _allFilter
+              _allPageToken
+              _allPageSize
+              _allCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsLocationsListResource)
+                      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
@@ -52,7 +52,7 @@
 -- | A resource alias for @appengine.apps.operations.get@ method which the
 -- 'AppsOperationsGet' request conforms to.
 type AppsOperationsGetResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "operations" :>
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
@@ -56,7 +56,7 @@
 -- | A resource alias for @appengine.apps.operations.list@ method which the
 -- 'AppsOperationsList' request conforms to.
 type AppsOperationsListResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "operations" :>
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Patch.hs
@@ -0,0 +1,194 @@
+{-# 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.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 application parameters.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.patch@.
+module Network.Google.Resource.AppEngine.Apps.Patch
+    (
+    -- * REST Resource
+      AppsPatchResource
+
+    -- * Creating a Request
+    , appsPatch
+    , AppsPatch
+
+    -- * Request Lenses
+    , apXgafv
+    , apUploadProtocol
+    , apUpdateMask
+    , apPp
+    , apAccessToken
+    , apUploadType
+    , apPayload
+    , apBearerToken
+    , apAppsId
+    , apCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.patch@ method which the
+-- 'AppsPatch' request conforms to.
+type AppsPatchResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           QueryParam "$.xgafv" Text :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "updateMask" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] Application :>
+                               Patch '[JSON] Operation
+
+-- | Updates application parameters.
+--
+-- /See:/ 'appsPatch' smart constructor.
+data AppsPatch = AppsPatch'
+    { _apXgafv          :: !(Maybe Text)
+    , _apUploadProtocol :: !(Maybe Text)
+    , _apUpdateMask     :: !(Maybe Text)
+    , _apPp             :: !Bool
+    , _apAccessToken    :: !(Maybe Text)
+    , _apUploadType     :: !(Maybe Text)
+    , _apPayload        :: !Application
+    , _apBearerToken    :: !(Maybe Text)
+    , _apAppsId         :: !Text
+    , _apCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apXgafv'
+--
+-- * 'apUploadProtocol'
+--
+-- * 'apUpdateMask'
+--
+-- * 'apPp'
+--
+-- * 'apAccessToken'
+--
+-- * 'apUploadType'
+--
+-- * 'apPayload'
+--
+-- * 'apBearerToken'
+--
+-- * 'apAppsId'
+--
+-- * 'apCallback'
+appsPatch
+    :: Application -- ^ 'apPayload'
+    -> Text -- ^ 'apAppsId'
+    -> AppsPatch
+appsPatch pApPayload_ pApAppsId_ =
+    AppsPatch'
+    { _apXgafv = Nothing
+    , _apUploadProtocol = Nothing
+    , _apUpdateMask = Nothing
+    , _apPp = True
+    , _apAccessToken = Nothing
+    , _apUploadType = Nothing
+    , _apPayload = pApPayload_
+    , _apBearerToken = Nothing
+    , _apAppsId = pApAppsId_
+    , _apCallback = Nothing
+    }
+
+-- | V1 error format.
+apXgafv :: Lens' AppsPatch (Maybe Text)
+apXgafv = lens _apXgafv (\ s a -> s{_apXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+apUploadProtocol :: Lens' AppsPatch (Maybe Text)
+apUploadProtocol
+  = lens _apUploadProtocol
+      (\ s a -> s{_apUploadProtocol = a})
+
+-- | Standard field mask for the set of fields to be updated.
+apUpdateMask :: Lens' AppsPatch (Maybe Text)
+apUpdateMask
+  = lens _apUpdateMask (\ s a -> s{_apUpdateMask = a})
+
+-- | Pretty-print response.
+apPp :: Lens' AppsPatch Bool
+apPp = lens _apPp (\ s a -> s{_apPp = a})
+
+-- | OAuth access token.
+apAccessToken :: Lens' AppsPatch (Maybe Text)
+apAccessToken
+  = lens _apAccessToken
+      (\ s a -> s{_apAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+apUploadType :: Lens' AppsPatch (Maybe Text)
+apUploadType
+  = lens _apUploadType (\ s a -> s{_apUploadType = a})
+
+-- | Multipart request metadata.
+apPayload :: Lens' AppsPatch Application
+apPayload
+  = lens _apPayload (\ s a -> s{_apPayload = a})
+
+-- | OAuth bearer token.
+apBearerToken :: Lens' AppsPatch (Maybe Text)
+apBearerToken
+  = lens _apBearerToken
+      (\ s a -> s{_apBearerToken = a})
+
+-- | Part of \`name\`. Name of the application to update. Example:
+-- \`apps\/myapp\`.
+apAppsId :: Lens' AppsPatch Text
+apAppsId = lens _apAppsId (\ s a -> s{_apAppsId = a})
+
+-- | JSONP
+apCallback :: Lens' AppsPatch (Maybe Text)
+apCallback
+  = lens _apCallback (\ s a -> s{_apCallback = a})
+
+instance GoogleRequest AppsPatch where
+        type Rs AppsPatch = Operation
+        type Scopes AppsPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsPatch'{..}
+          = go _apAppsId _apXgafv _apUploadProtocol
+              _apUpdateMask
+              (Just _apPp)
+              _apAccessToken
+              _apUploadType
+              _apBearerToken
+              _apCallback
+              (Just AltJSON)
+              _apPayload
+              appEngineService
+          where go
+                  = buildClient (Proxy :: Proxy AppsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Repair.hs b/gen/Network/Google/Resource/AppEngine/Apps/Repair.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Repair.hs
@@ -0,0 +1,190 @@
+{-# 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.Repair
+-- 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)
+--
+-- Recreates the required App Engine features for the application in your
+-- project, for example a Cloud Storage bucket or App Engine service
+-- account. Use this method if you receive an error message about a missing
+-- feature, for example \"*Error retrieving the App Engine service
+-- account*\".
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.repair@.
+module Network.Google.Resource.AppEngine.Apps.Repair
+    (
+    -- * REST Resource
+      AppsRepairResource
+
+    -- * Creating a Request
+    , appsRepair
+    , AppsRepair
+
+    -- * Request Lenses
+    , arXgafv
+    , arUploadProtocol
+    , arPp
+    , arAccessToken
+    , arUploadType
+    , arPayload
+    , arBearerToken
+    , arAppsId
+    , arCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.repair@ method which the
+-- 'AppsRepair' request conforms to.
+type AppsRepairResource =
+     "v1" :>
+       "apps" :>
+         CaptureMode "appsId" "repair" 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 :>
+                           ReqBody '[JSON] RepairApplicationRequest :>
+                             Post '[JSON] Operation
+
+-- | Recreates the required App Engine features for the application in your
+-- project, for example a Cloud Storage bucket or App Engine service
+-- account. Use this method if you receive an error message about a missing
+-- feature, for example \"*Error retrieving the App Engine service
+-- account*\".
+--
+-- /See:/ 'appsRepair' smart constructor.
+data AppsRepair = AppsRepair'
+    { _arXgafv          :: !(Maybe Text)
+    , _arUploadProtocol :: !(Maybe Text)
+    , _arPp             :: !Bool
+    , _arAccessToken    :: !(Maybe Text)
+    , _arUploadType     :: !(Maybe Text)
+    , _arPayload        :: !RepairApplicationRequest
+    , _arBearerToken    :: !(Maybe Text)
+    , _arAppsId         :: !Text
+    , _arCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsRepair' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arXgafv'
+--
+-- * 'arUploadProtocol'
+--
+-- * 'arPp'
+--
+-- * 'arAccessToken'
+--
+-- * 'arUploadType'
+--
+-- * 'arPayload'
+--
+-- * 'arBearerToken'
+--
+-- * 'arAppsId'
+--
+-- * 'arCallback'
+appsRepair
+    :: RepairApplicationRequest -- ^ 'arPayload'
+    -> Text -- ^ 'arAppsId'
+    -> AppsRepair
+appsRepair pArPayload_ pArAppsId_ =
+    AppsRepair'
+    { _arXgafv = Nothing
+    , _arUploadProtocol = Nothing
+    , _arPp = True
+    , _arAccessToken = Nothing
+    , _arUploadType = Nothing
+    , _arPayload = pArPayload_
+    , _arBearerToken = Nothing
+    , _arAppsId = pArAppsId_
+    , _arCallback = Nothing
+    }
+
+-- | V1 error format.
+arXgafv :: Lens' AppsRepair (Maybe Text)
+arXgafv = lens _arXgafv (\ s a -> s{_arXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+arUploadProtocol :: Lens' AppsRepair (Maybe Text)
+arUploadProtocol
+  = lens _arUploadProtocol
+      (\ s a -> s{_arUploadProtocol = a})
+
+-- | Pretty-print response.
+arPp :: Lens' AppsRepair Bool
+arPp = lens _arPp (\ s a -> s{_arPp = a})
+
+-- | OAuth access token.
+arAccessToken :: Lens' AppsRepair (Maybe Text)
+arAccessToken
+  = lens _arAccessToken
+      (\ s a -> s{_arAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+arUploadType :: Lens' AppsRepair (Maybe Text)
+arUploadType
+  = lens _arUploadType (\ s a -> s{_arUploadType = a})
+
+-- | Multipart request metadata.
+arPayload :: Lens' AppsRepair RepairApplicationRequest
+arPayload
+  = lens _arPayload (\ s a -> s{_arPayload = a})
+
+-- | OAuth bearer token.
+arBearerToken :: Lens' AppsRepair (Maybe Text)
+arBearerToken
+  = lens _arBearerToken
+      (\ s a -> s{_arBearerToken = a})
+
+-- | Part of \`name\`. Name of the application to repair. Example:
+-- \`apps\/myapp\`
+arAppsId :: Lens' AppsRepair Text
+arAppsId = lens _arAppsId (\ s a -> s{_arAppsId = a})
+
+-- | JSONP
+arCallback :: Lens' AppsRepair (Maybe Text)
+arCallback
+  = lens _arCallback (\ s a -> s{_arCallback = a})
+
+instance GoogleRequest AppsRepair where
+        type Rs AppsRepair = Operation
+        type Scopes AppsRepair =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsRepair'{..}
+          = go _arAppsId _arXgafv _arUploadProtocol
+              (Just _arPp)
+              _arAccessToken
+              _arUploadType
+              _arBearerToken
+              _arCallback
+              (Just AltJSON)
+              _arPayload
+              appEngineService
+          where go
+                  = buildClient (Proxy :: Proxy AppsRepairResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Delete.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Delete.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Delete.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Deletes a service and all enclosed versions.
+-- Deletes the specified 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
@@ -50,7 +50,7 @@
 -- | A resource alias for @appengine.apps.services.delete@ method which the
 -- 'AppsServicesDelete' request conforms to.
 type AppsServicesDeleteResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -65,7 +65,7 @@
                              QueryParam "alt" AltJSON :>
                                Delete '[JSON] Operation
 
--- | Deletes a service and all enclosed versions.
+-- | Deletes the specified service and all enclosed versions.
 --
 -- /See:/ 'appsServicesDelete' smart constructor.
 data AppsServicesDelete = AppsServicesDelete'
@@ -150,8 +150,8 @@
   = lens _asdBearerToken
       (\ s a -> s{_asdBearerToken = a})
 
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/services\/default\".
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- \`apps\/myapp\/services\/default\`.
 asdAppsId :: Lens' AppsServicesDelete Text
 asdAppsId
   = lens _asdAppsId (\ s a -> s{_asdAppsId = a})
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Get.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Get.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Get.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Gets the current configuration of the service.
+-- Gets the current configuration of the specified 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
@@ -50,7 +50,7 @@
 -- | A resource alias for @appengine.apps.services.get@ method which the
 -- 'AppsServicesGet' request conforms to.
 type AppsServicesGetResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -64,7 +64,7 @@
                            QueryParam "callback" Text :>
                              QueryParam "alt" AltJSON :> Get '[JSON] Service
 
--- | Gets the current configuration of the service.
+-- | Gets the current configuration of the specified service.
 --
 -- /See:/ 'appsServicesGet' smart constructor.
 data AppsServicesGet = AppsServicesGet'
@@ -149,8 +149,8 @@
   = lens _asgBearerToken
       (\ s a -> s{_asgBearerToken = a})
 
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/services\/default\".
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- \`apps\/myapp\/services\/default\`.
 asgAppsId :: Lens' AppsServicesGet Text
 asgAppsId
   = lens _asgAppsId (\ s a -> s{_asgAppsId = a})
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/List.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/List.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/List.hs
@@ -51,7 +51,7 @@
 -- | A resource alias for @appengine.apps.services.list@ method which the
 -- 'AppsServicesList' request conforms to.
 type AppsServicesListResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -155,8 +155,8 @@
   = lens _aslBearerToken
       (\ s a -> s{_aslBearerToken = a})
 
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\".
+-- | Part of \`parent\`. Name of the parent Application resource. Example:
+-- \`apps\/myapp\`.
 aslAppsId :: Lens' AppsServicesList Text
 aslAppsId
   = lens _aslAppsId (\ s a -> s{_aslAppsId = a})
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Patch.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Patch.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Patch.hs
@@ -35,12 +35,12 @@
     -- * Request Lenses
     , aspXgafv
     , aspUploadProtocol
+    , aspUpdateMask
     , aspPp
     , aspAccessToken
     , aspUploadType
     , aspPayload
     , aspMigrateTraffic
-    , aspMask
     , aspBearerToken
     , aspAppsId
     , aspServicesId
@@ -53,18 +53,18 @@
 -- | A resource alias for @appengine.apps.services.patch@ method which the
 -- 'AppsServicesPatch' request conforms to.
 type AppsServicesPatchResource =
-     "v1beta5" :>
+     "v1" :>
        "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 "updateMask" Text :>
+                     QueryParam "pp" Bool :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "migrateTraffic" Bool :>
                              QueryParam "bearer_token" Text :>
                                QueryParam "callback" Text :>
                                  QueryParam "alt" AltJSON :>
@@ -77,12 +77,12 @@
 data AppsServicesPatch = AppsServicesPatch'
     { _aspXgafv          :: !(Maybe Text)
     , _aspUploadProtocol :: !(Maybe Text)
+    , _aspUpdateMask     :: !(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
@@ -97,6 +97,8 @@
 --
 -- * 'aspUploadProtocol'
 --
+-- * 'aspUpdateMask'
+--
 -- * 'aspPp'
 --
 -- * 'aspAccessToken'
@@ -107,8 +109,6 @@
 --
 -- * 'aspMigrateTraffic'
 --
--- * 'aspMask'
---
 -- * 'aspBearerToken'
 --
 -- * 'aspAppsId'
@@ -125,12 +125,12 @@
     AppsServicesPatch'
     { _aspXgafv = Nothing
     , _aspUploadProtocol = Nothing
+    , _aspUpdateMask = Nothing
     , _aspPp = True
     , _aspAccessToken = Nothing
     , _aspUploadType = Nothing
     , _aspPayload = pAspPayload_
     , _aspMigrateTraffic = Nothing
-    , _aspMask = Nothing
     , _aspBearerToken = Nothing
     , _aspAppsId = pAspAppsId_
     , _aspServicesId = pAspServicesId_
@@ -147,6 +147,12 @@
   = lens _aspUploadProtocol
       (\ s a -> s{_aspUploadProtocol = a})
 
+-- | Standard field mask for the set of fields to be updated.
+aspUpdateMask :: Lens' AppsServicesPatch (Maybe Text)
+aspUpdateMask
+  = lens _aspUpdateMask
+      (\ s a -> s{_aspUpdateMask = a})
+
 -- | Pretty-print response.
 aspPp :: Lens' AppsServicesPatch Bool
 aspPp = lens _aspPp (\ s a -> s{_aspPp = a})
@@ -168,25 +174,32 @@
 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.
+-- | Set to \`true\` to gradually shift traffic from one version to another
+-- single version. By default, traffic is shifted immediately. For gradual
+-- traffic migration, the target version must be located within instances
+-- that are configured for both [warmup
+-- requests](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#inboundservicetype)
+-- and [automatic
+-- scaling](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#automaticscaling).
+-- You must specify the
+-- [\`shardBy\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services#shardby)
+-- field in the Service resource. Gradual traffic migration is not
+-- supported in the App Engine flexible environment. For examples, see
+-- [Migrating and Splitting
+-- Traffic](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/migrating-splitting-traffic).
 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\".
+-- | Part of \`name\`. Name of the resource to update. Example:
+-- \`apps\/myapp\/services\/default\`.
 aspAppsId :: Lens' AppsServicesPatch Text
 aspAppsId
   = lens _aspAppsId (\ s a -> s{_aspAppsId = a})
@@ -209,11 +222,11 @@
         requestClient AppsServicesPatch'{..}
           = go _aspAppsId _aspServicesId _aspXgafv
               _aspUploadProtocol
+              _aspUpdateMask
               (Just _aspPp)
               _aspAccessToken
               _aspUploadType
               _aspMigrateTraffic
-              _aspMask
               _aspBearerToken
               _aspCallback
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Create.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Create.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Create.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Create.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Deploys new code and resource files to a version.
+-- Deploys code and resource files to a new 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
@@ -51,7 +51,7 @@
 -- | A resource alias for @appengine.apps.services.versions.create@ method which the
 -- 'AppsServicesVersionsCreate' request conforms to.
 type AppsServicesVersionsCreateResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -68,7 +68,7 @@
                                  ReqBody '[JSON] Version :>
                                    Post '[JSON] Operation
 
--- | Deploys new code and resource files to a version.
+-- | Deploys code and resource files to a new version.
 --
 -- /See:/ 'appsServicesVersionsCreate' smart constructor.
 data AppsServicesVersionsCreate = AppsServicesVersionsCreate'
@@ -164,13 +164,13 @@
   = lens _asvcBearerToken
       (\ s a -> s{_asvcBearerToken = a})
 
--- | Part of \`name\`. Name of the resource to update. For example:
--- \"apps\/myapp\/services\/default\".
+-- | Part of \`parent\`. Name of the parent resource to create this version
+-- under. Example: \`apps\/myapp\/services\/default\`.
 asvcAppsId :: Lens' AppsServicesVersionsCreate Text
 asvcAppsId
   = lens _asvcAppsId (\ s a -> s{_asvcAppsId = a})
 
--- | Part of \`name\`. See documentation of \`appsId\`.
+-- | Part of \`parent\`. See documentation of \`appsId\`.
 asvcServicesId :: Lens' AppsServicesVersionsCreate Text
 asvcServicesId
   = lens _asvcServicesId
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Delete.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Delete.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Delete.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Deletes an existing version.
+-- Deletes an existing Version resource.
 --
 -- /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
@@ -51,7 +51,7 @@
 -- | A resource alias for @appengine.apps.services.versions.delete@ method which the
 -- 'AppsServicesVersionsDelete' request conforms to.
 type AppsServicesVersionsDeleteResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -68,7 +68,7 @@
                                  QueryParam "alt" AltJSON :>
                                    Delete '[JSON] Operation
 
--- | Deletes an existing version.
+-- | Deletes an existing Version resource.
 --
 -- /See:/ 'appsServicesVersionsDelete' smart constructor.
 data AppsServicesVersionsDelete = AppsServicesVersionsDelete'
@@ -165,8 +165,8 @@
   = lens _asvdBearerToken
       (\ s a -> s{_asvdBearerToken = a})
 
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/services\/default\/versions\/v1\".
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- \`apps\/myapp\/services\/default\/versions\/v1\`.
 asvdAppsId :: Lens' AppsServicesVersionsDelete Text
 asvdAppsId
   = lens _asvdAppsId (\ s a -> s{_asvdAppsId = a})
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Get.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Get.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Get.hs
@@ -20,7 +20,9 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Gets application deployment information.
+-- Gets the specified Version resource. By default, only a \`BASIC_VIEW\`
+-- will be returned. Specify the \`FULL_VIEW\` parameter to get the full
+-- resource.
 --
 -- /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
@@ -52,7 +54,7 @@
 -- | A resource alias for @appengine.apps.services.versions.get@ method which the
 -- 'AppsServicesVersionsGet' request conforms to.
 type AppsServicesVersionsGetResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -70,7 +72,9 @@
                                    QueryParam "alt" AltJSON :>
                                      Get '[JSON] Version
 
--- | Gets application deployment information.
+-- | Gets the specified Version resource. By default, only a \`BASIC_VIEW\`
+-- will be returned. Specify the \`FULL_VIEW\` parameter to get the full
+-- resource.
 --
 -- /See:/ 'appsServicesVersionsGet' smart constructor.
 data AppsServicesVersionsGet = AppsServicesVersionsGet'
@@ -171,8 +175,8 @@
   = lens _asvgBearerToken
       (\ s a -> s{_asvgBearerToken = a})
 
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/services\/default\/versions\/v1\".
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- \`apps\/myapp\/services\/default\/versions\/v1\`.
 asvgAppsId :: Lens' AppsServicesVersionsGet Text
 asvgAppsId
   = lens _asvgAppsId (\ s a -> s{_asvgAppsId = a})
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Debug.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Debug.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Debug.hs
@@ -0,0 +1,247 @@
+{-# 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.Debug
+-- 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)
+--
+-- Enables debugging on a VM instance. This allows you to use the SSH
+-- command to connect to the virtual machine where the instance lives.
+-- While in \"debug mode\", the instance continues to serve live traffic.
+-- You should delete the instance when you are done debugging and then
+-- allow the system to take over and determine if another instance should
+-- be started. Only applicable for instances in App Engine flexible
+-- environment.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.instances.debug@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Debug
+    (
+    -- * REST Resource
+      AppsServicesVersionsInstancesDebugResource
+
+    -- * Creating a Request
+    , appsServicesVersionsInstancesDebug
+    , AppsServicesVersionsInstancesDebug
+
+    -- * Request Lenses
+    , asvidXgafv
+    , asvidInstancesId
+    , asvidUploadProtocol
+    , asvidPp
+    , asvidAccessToken
+    , asvidUploadType
+    , asvidPayload
+    , asvidVersionsId
+    , asvidBearerToken
+    , asvidAppsId
+    , asvidServicesId
+    , asvidCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.instances.debug@ method which the
+-- 'AppsServicesVersionsInstancesDebug' request conforms to.
+type AppsServicesVersionsInstancesDebugResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 Capture "versionsId" Text :>
+                   "instances" :>
+                     CaptureMode "instancesId" "debug" 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 :>
+                                       ReqBody '[JSON] DebugInstanceRequest :>
+                                         Post '[JSON] Operation
+
+-- | Enables debugging on a VM instance. This allows you to use the SSH
+-- command to connect to the virtual machine where the instance lives.
+-- While in \"debug mode\", the instance continues to serve live traffic.
+-- You should delete the instance when you are done debugging and then
+-- allow the system to take over and determine if another instance should
+-- be started. Only applicable for instances in App Engine flexible
+-- environment.
+--
+-- /See:/ 'appsServicesVersionsInstancesDebug' smart constructor.
+data AppsServicesVersionsInstancesDebug = AppsServicesVersionsInstancesDebug'
+    { _asvidXgafv          :: !(Maybe Text)
+    , _asvidInstancesId    :: !Text
+    , _asvidUploadProtocol :: !(Maybe Text)
+    , _asvidPp             :: !Bool
+    , _asvidAccessToken    :: !(Maybe Text)
+    , _asvidUploadType     :: !(Maybe Text)
+    , _asvidPayload        :: !DebugInstanceRequest
+    , _asvidVersionsId     :: !Text
+    , _asvidBearerToken    :: !(Maybe Text)
+    , _asvidAppsId         :: !Text
+    , _asvidServicesId     :: !Text
+    , _asvidCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsInstancesDebug' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asvidXgafv'
+--
+-- * 'asvidInstancesId'
+--
+-- * 'asvidUploadProtocol'
+--
+-- * 'asvidPp'
+--
+-- * 'asvidAccessToken'
+--
+-- * 'asvidUploadType'
+--
+-- * 'asvidPayload'
+--
+-- * 'asvidVersionsId'
+--
+-- * 'asvidBearerToken'
+--
+-- * 'asvidAppsId'
+--
+-- * 'asvidServicesId'
+--
+-- * 'asvidCallback'
+appsServicesVersionsInstancesDebug
+    :: Text -- ^ 'asvidInstancesId'
+    -> DebugInstanceRequest -- ^ 'asvidPayload'
+    -> Text -- ^ 'asvidVersionsId'
+    -> Text -- ^ 'asvidAppsId'
+    -> Text -- ^ 'asvidServicesId'
+    -> AppsServicesVersionsInstancesDebug
+appsServicesVersionsInstancesDebug pAsvidInstancesId_ pAsvidPayload_ pAsvidVersionsId_ pAsvidAppsId_ pAsvidServicesId_ =
+    AppsServicesVersionsInstancesDebug'
+    { _asvidXgafv = Nothing
+    , _asvidInstancesId = pAsvidInstancesId_
+    , _asvidUploadProtocol = Nothing
+    , _asvidPp = True
+    , _asvidAccessToken = Nothing
+    , _asvidUploadType = Nothing
+    , _asvidPayload = pAsvidPayload_
+    , _asvidVersionsId = pAsvidVersionsId_
+    , _asvidBearerToken = Nothing
+    , _asvidAppsId = pAsvidAppsId_
+    , _asvidServicesId = pAsvidServicesId_
+    , _asvidCallback = Nothing
+    }
+
+-- | V1 error format.
+asvidXgafv :: Lens' AppsServicesVersionsInstancesDebug (Maybe Text)
+asvidXgafv
+  = lens _asvidXgafv (\ s a -> s{_asvidXgafv = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvidInstancesId :: Lens' AppsServicesVersionsInstancesDebug Text
+asvidInstancesId
+  = lens _asvidInstancesId
+      (\ s a -> s{_asvidInstancesId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asvidUploadProtocol :: Lens' AppsServicesVersionsInstancesDebug (Maybe Text)
+asvidUploadProtocol
+  = lens _asvidUploadProtocol
+      (\ s a -> s{_asvidUploadProtocol = a})
+
+-- | Pretty-print response.
+asvidPp :: Lens' AppsServicesVersionsInstancesDebug Bool
+asvidPp = lens _asvidPp (\ s a -> s{_asvidPp = a})
+
+-- | OAuth access token.
+asvidAccessToken :: Lens' AppsServicesVersionsInstancesDebug (Maybe Text)
+asvidAccessToken
+  = lens _asvidAccessToken
+      (\ s a -> s{_asvidAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asvidUploadType :: Lens' AppsServicesVersionsInstancesDebug (Maybe Text)
+asvidUploadType
+  = lens _asvidUploadType
+      (\ s a -> s{_asvidUploadType = a})
+
+-- | Multipart request metadata.
+asvidPayload :: Lens' AppsServicesVersionsInstancesDebug DebugInstanceRequest
+asvidPayload
+  = lens _asvidPayload (\ s a -> s{_asvidPayload = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvidVersionsId :: Lens' AppsServicesVersionsInstancesDebug Text
+asvidVersionsId
+  = lens _asvidVersionsId
+      (\ s a -> s{_asvidVersionsId = a})
+
+-- | OAuth bearer token.
+asvidBearerToken :: Lens' AppsServicesVersionsInstancesDebug (Maybe Text)
+asvidBearerToken
+  = lens _asvidBearerToken
+      (\ s a -> s{_asvidBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- \`apps\/myapp\/services\/default\/versions\/v1\/instances\/instance-1\`.
+asvidAppsId :: Lens' AppsServicesVersionsInstancesDebug Text
+asvidAppsId
+  = lens _asvidAppsId (\ s a -> s{_asvidAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvidServicesId :: Lens' AppsServicesVersionsInstancesDebug Text
+asvidServicesId
+  = lens _asvidServicesId
+      (\ s a -> s{_asvidServicesId = a})
+
+-- | JSONP
+asvidCallback :: Lens' AppsServicesVersionsInstancesDebug (Maybe Text)
+asvidCallback
+  = lens _asvidCallback
+      (\ s a -> s{_asvidCallback = a})
+
+instance GoogleRequest
+         AppsServicesVersionsInstancesDebug where
+        type Rs AppsServicesVersionsInstancesDebug =
+             Operation
+        type Scopes AppsServicesVersionsInstancesDebug =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesVersionsInstancesDebug'{..}
+          = go _asvidAppsId _asvidServicesId _asvidVersionsId
+              _asvidInstancesId
+              _asvidXgafv
+              _asvidUploadProtocol
+              (Just _asvidPp)
+              _asvidAccessToken
+              _asvidUploadType
+              _asvidBearerToken
+              _asvidCallback
+              (Just AltJSON)
+              _asvidPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsServicesVersionsInstancesDebugResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Delete.hs
@@ -0,0 +1,213 @@
+{-# 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.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)
+--
+-- Stops a running instance.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.instances.delete@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Delete
+    (
+    -- * REST Resource
+      AppsServicesVersionsInstancesDeleteResource
+
+    -- * Creating a Request
+    , appsServicesVersionsInstancesDelete
+    , AppsServicesVersionsInstancesDelete
+
+    -- * Request Lenses
+    , aXgafv
+    , aInstancesId
+    , aUploadProtocol
+    , aPp
+    , aAccessToken
+    , aUploadType
+    , aVersionsId
+    , aBearerToken
+    , aAppsId
+    , aServicesId
+    , aCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.instances.delete@ method which the
+-- 'AppsServicesVersionsInstancesDelete' request conforms to.
+type AppsServicesVersionsInstancesDeleteResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 Capture "versionsId" Text :>
+                   "instances" :>
+                     Capture "instancesId" 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
+
+-- | Stops a running instance.
+--
+-- /See:/ 'appsServicesVersionsInstancesDelete' smart constructor.
+data AppsServicesVersionsInstancesDelete = AppsServicesVersionsInstancesDelete'
+    { _aXgafv          :: !(Maybe Text)
+    , _aInstancesId    :: !Text
+    , _aUploadProtocol :: !(Maybe Text)
+    , _aPp             :: !Bool
+    , _aAccessToken    :: !(Maybe Text)
+    , _aUploadType     :: !(Maybe Text)
+    , _aVersionsId     :: !Text
+    , _aBearerToken    :: !(Maybe Text)
+    , _aAppsId         :: !Text
+    , _aServicesId     :: !Text
+    , _aCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsInstancesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aXgafv'
+--
+-- * 'aInstancesId'
+--
+-- * 'aUploadProtocol'
+--
+-- * 'aPp'
+--
+-- * 'aAccessToken'
+--
+-- * 'aUploadType'
+--
+-- * 'aVersionsId'
+--
+-- * 'aBearerToken'
+--
+-- * 'aAppsId'
+--
+-- * 'aServicesId'
+--
+-- * 'aCallback'
+appsServicesVersionsInstancesDelete
+    :: Text -- ^ 'aInstancesId'
+    -> Text -- ^ 'aVersionsId'
+    -> Text -- ^ 'aAppsId'
+    -> Text -- ^ 'aServicesId'
+    -> AppsServicesVersionsInstancesDelete
+appsServicesVersionsInstancesDelete pAInstancesId_ pAVersionsId_ pAAppsId_ pAServicesId_ =
+    AppsServicesVersionsInstancesDelete'
+    { _aXgafv = Nothing
+    , _aInstancesId = pAInstancesId_
+    , _aUploadProtocol = Nothing
+    , _aPp = True
+    , _aAccessToken = Nothing
+    , _aUploadType = Nothing
+    , _aVersionsId = pAVersionsId_
+    , _aBearerToken = Nothing
+    , _aAppsId = pAAppsId_
+    , _aServicesId = pAServicesId_
+    , _aCallback = Nothing
+    }
+
+-- | V1 error format.
+aXgafv :: Lens' AppsServicesVersionsInstancesDelete (Maybe Text)
+aXgafv = lens _aXgafv (\ s a -> s{_aXgafv = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+aInstancesId :: Lens' AppsServicesVersionsInstancesDelete Text
+aInstancesId
+  = lens _aInstancesId (\ s a -> s{_aInstancesId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aUploadProtocol :: Lens' AppsServicesVersionsInstancesDelete (Maybe Text)
+aUploadProtocol
+  = lens _aUploadProtocol
+      (\ s a -> s{_aUploadProtocol = a})
+
+-- | Pretty-print response.
+aPp :: Lens' AppsServicesVersionsInstancesDelete Bool
+aPp = lens _aPp (\ s a -> s{_aPp = a})
+
+-- | OAuth access token.
+aAccessToken :: Lens' AppsServicesVersionsInstancesDelete (Maybe Text)
+aAccessToken
+  = lens _aAccessToken (\ s a -> s{_aAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aUploadType :: Lens' AppsServicesVersionsInstancesDelete (Maybe Text)
+aUploadType
+  = lens _aUploadType (\ s a -> s{_aUploadType = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+aVersionsId :: Lens' AppsServicesVersionsInstancesDelete Text
+aVersionsId
+  = lens _aVersionsId (\ s a -> s{_aVersionsId = a})
+
+-- | OAuth bearer token.
+aBearerToken :: Lens' AppsServicesVersionsInstancesDelete (Maybe Text)
+aBearerToken
+  = lens _aBearerToken (\ s a -> s{_aBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- \`apps\/myapp\/services\/default\/versions\/v1\/instances\/instance-1\`.
+aAppsId :: Lens' AppsServicesVersionsInstancesDelete Text
+aAppsId = lens _aAppsId (\ s a -> s{_aAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+aServicesId :: Lens' AppsServicesVersionsInstancesDelete Text
+aServicesId
+  = lens _aServicesId (\ s a -> s{_aServicesId = a})
+
+-- | JSONP
+aCallback :: Lens' AppsServicesVersionsInstancesDelete (Maybe Text)
+aCallback
+  = lens _aCallback (\ s a -> s{_aCallback = a})
+
+instance GoogleRequest
+         AppsServicesVersionsInstancesDelete where
+        type Rs AppsServicesVersionsInstancesDelete =
+             Operation
+        type Scopes AppsServicesVersionsInstancesDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient
+          AppsServicesVersionsInstancesDelete'{..}
+          = go _aAppsId _aServicesId _aVersionsId _aInstancesId
+              _aXgafv
+              _aUploadProtocol
+              (Just _aPp)
+              _aAccessToken
+              _aUploadType
+              _aBearerToken
+              _aCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsServicesVersionsInstancesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Get.hs
@@ -0,0 +1,221 @@
+{-# 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.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 instance information.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.instances.get@.
+module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Get
+    (
+    -- * REST Resource
+      AppsServicesVersionsInstancesGetResource
+
+    -- * Creating a Request
+    , appsServicesVersionsInstancesGet
+    , AppsServicesVersionsInstancesGet
+
+    -- * Request Lenses
+    , asvigXgafv
+    , asvigInstancesId
+    , asvigUploadProtocol
+    , asvigPp
+    , asvigAccessToken
+    , asvigUploadType
+    , asvigVersionsId
+    , asvigBearerToken
+    , asvigAppsId
+    , asvigServicesId
+    , asvigCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.services.versions.instances.get@ method which the
+-- 'AppsServicesVersionsInstancesGet' request conforms to.
+type AppsServicesVersionsInstancesGetResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "services" :>
+             Capture "servicesId" Text :>
+               "versions" :>
+                 Capture "versionsId" Text :>
+                   "instances" :>
+                     Capture "instancesId" 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] Instance
+
+-- | Gets instance information.
+--
+-- /See:/ 'appsServicesVersionsInstancesGet' smart constructor.
+data AppsServicesVersionsInstancesGet = AppsServicesVersionsInstancesGet'
+    { _asvigXgafv          :: !(Maybe Text)
+    , _asvigInstancesId    :: !Text
+    , _asvigUploadProtocol :: !(Maybe Text)
+    , _asvigPp             :: !Bool
+    , _asvigAccessToken    :: !(Maybe Text)
+    , _asvigUploadType     :: !(Maybe Text)
+    , _asvigVersionsId     :: !Text
+    , _asvigBearerToken    :: !(Maybe Text)
+    , _asvigAppsId         :: !Text
+    , _asvigServicesId     :: !Text
+    , _asvigCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsServicesVersionsInstancesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asvigXgafv'
+--
+-- * 'asvigInstancesId'
+--
+-- * 'asvigUploadProtocol'
+--
+-- * 'asvigPp'
+--
+-- * 'asvigAccessToken'
+--
+-- * 'asvigUploadType'
+--
+-- * 'asvigVersionsId'
+--
+-- * 'asvigBearerToken'
+--
+-- * 'asvigAppsId'
+--
+-- * 'asvigServicesId'
+--
+-- * 'asvigCallback'
+appsServicesVersionsInstancesGet
+    :: Text -- ^ 'asvigInstancesId'
+    -> Text -- ^ 'asvigVersionsId'
+    -> Text -- ^ 'asvigAppsId'
+    -> Text -- ^ 'asvigServicesId'
+    -> AppsServicesVersionsInstancesGet
+appsServicesVersionsInstancesGet pAsvigInstancesId_ pAsvigVersionsId_ pAsvigAppsId_ pAsvigServicesId_ =
+    AppsServicesVersionsInstancesGet'
+    { _asvigXgafv = Nothing
+    , _asvigInstancesId = pAsvigInstancesId_
+    , _asvigUploadProtocol = Nothing
+    , _asvigPp = True
+    , _asvigAccessToken = Nothing
+    , _asvigUploadType = Nothing
+    , _asvigVersionsId = pAsvigVersionsId_
+    , _asvigBearerToken = Nothing
+    , _asvigAppsId = pAsvigAppsId_
+    , _asvigServicesId = pAsvigServicesId_
+    , _asvigCallback = Nothing
+    }
+
+-- | V1 error format.
+asvigXgafv :: Lens' AppsServicesVersionsInstancesGet (Maybe Text)
+asvigXgafv
+  = lens _asvigXgafv (\ s a -> s{_asvigXgafv = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvigInstancesId :: Lens' AppsServicesVersionsInstancesGet Text
+asvigInstancesId
+  = lens _asvigInstancesId
+      (\ s a -> s{_asvigInstancesId = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+asvigUploadProtocol :: Lens' AppsServicesVersionsInstancesGet (Maybe Text)
+asvigUploadProtocol
+  = lens _asvigUploadProtocol
+      (\ s a -> s{_asvigUploadProtocol = a})
+
+-- | Pretty-print response.
+asvigPp :: Lens' AppsServicesVersionsInstancesGet Bool
+asvigPp = lens _asvigPp (\ s a -> s{_asvigPp = a})
+
+-- | OAuth access token.
+asvigAccessToken :: Lens' AppsServicesVersionsInstancesGet (Maybe Text)
+asvigAccessToken
+  = lens _asvigAccessToken
+      (\ s a -> s{_asvigAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+asvigUploadType :: Lens' AppsServicesVersionsInstancesGet (Maybe Text)
+asvigUploadType
+  = lens _asvigUploadType
+      (\ s a -> s{_asvigUploadType = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvigVersionsId :: Lens' AppsServicesVersionsInstancesGet Text
+asvigVersionsId
+  = lens _asvigVersionsId
+      (\ s a -> s{_asvigVersionsId = a})
+
+-- | OAuth bearer token.
+asvigBearerToken :: Lens' AppsServicesVersionsInstancesGet (Maybe Text)
+asvigBearerToken
+  = lens _asvigBearerToken
+      (\ s a -> s{_asvigBearerToken = a})
+
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- \`apps\/myapp\/services\/default\/versions\/v1\/instances\/instance-1\`.
+asvigAppsId :: Lens' AppsServicesVersionsInstancesGet Text
+asvigAppsId
+  = lens _asvigAppsId (\ s a -> s{_asvigAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+asvigServicesId :: Lens' AppsServicesVersionsInstancesGet Text
+asvigServicesId
+  = lens _asvigServicesId
+      (\ s a -> s{_asvigServicesId = a})
+
+-- | JSONP
+asvigCallback :: Lens' AppsServicesVersionsInstancesGet (Maybe Text)
+asvigCallback
+  = lens _asvigCallback
+      (\ s a -> s{_asvigCallback = a})
+
+instance GoogleRequest
+         AppsServicesVersionsInstancesGet where
+        type Rs AppsServicesVersionsInstancesGet = Instance
+        type Scopes AppsServicesVersionsInstancesGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsServicesVersionsInstancesGet'{..}
+          = go _asvigAppsId _asvigServicesId _asvigVersionsId
+              _asvigInstancesId
+              _asvigXgafv
+              _asvigUploadProtocol
+              (Just _asvigPp)
+              _asvigAccessToken
+              _asvigUploadType
+              _asvigBearerToken
+              _asvigCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsServicesVersionsInstancesGetResource)
+                      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
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/List.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/List.hs
@@ -53,7 +53,7 @@
 -- | A resource alias for @appengine.apps.services.versions.instances.list@ method which the
 -- 'AppsServicesVersionsInstancesList' request conforms to.
 type AppsServicesVersionsInstancesListResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -166,7 +166,7 @@
   = lens _asvilUploadType
       (\ s a -> s{_asvilUploadType = a})
 
--- | Part of \`name\`. See documentation of \`appsId\`.
+-- | Part of \`parent\`. See documentation of \`appsId\`.
 asvilVersionsId :: Lens' AppsServicesVersionsInstancesList Text
 asvilVersionsId
   = lens _asvilVersionsId
@@ -178,8 +178,8 @@
   = lens _asvilBearerToken
       (\ s a -> s{_asvilBearerToken = a})
 
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/services\/default\/versions\/v1\".
+-- | Part of \`parent\`. Name of the parent Version resource. Example:
+-- \`apps\/myapp\/services\/default\/versions\/v1\`.
 asvilAppsId :: Lens' AppsServicesVersionsInstancesList Text
 asvilAppsId
   = lens _asvilAppsId (\ s a -> s{_asvilAppsId = a})
@@ -190,7 +190,7 @@
   = lens _asvilPageToken
       (\ s a -> s{_asvilPageToken = a})
 
--- | Part of \`name\`. See documentation of \`appsId\`.
+-- | Part of \`parent\`. See documentation of \`appsId\`.
 asvilServicesId :: Lens' AppsServicesVersionsInstancesList Text
 asvilServicesId
   = lens _asvilServicesId
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/List.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/List.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/List.hs
@@ -53,7 +53,7 @@
 -- | A resource alias for @appengine.apps.services.versions.list@ method which the
 -- 'AppsServicesVersionsList' request conforms to.
 type AppsServicesVersionsListResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -170,8 +170,8 @@
   = lens _asvlBearerToken
       (\ s a -> s{_asvlBearerToken = a})
 
--- | Part of \`name\`. Name of the resource requested. For example:
--- \"apps\/myapp\/services\/default\".
+-- | Part of \`parent\`. Name of the parent Service resource. Example:
+-- \`apps\/myapp\/services\/default\`.
 asvlAppsId :: Lens' AppsServicesVersionsList Text
 asvlAppsId
   = lens _asvlAppsId (\ s a -> s{_asvlAppsId = a})
@@ -186,7 +186,7 @@
   = lens _asvlPageToken
       (\ s a -> s{_asvlPageToken = a})
 
--- | Part of \`name\`. See documentation of \`appsId\`.
+-- | Part of \`parent\`. See documentation of \`appsId\`.
 asvlServicesId :: Lens' AppsServicesVersionsList Text
 asvlServicesId
   = lens _asvlServicesId
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Patch.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Patch.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Patch.hs
@@ -20,7 +20,20 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Updates an existing version. Note: UNIMPLEMENTED.
+-- Updates the specified Version resource. You can specify the following
+-- fields depending on the App Engine environment and type of scaling that
+-- the version resource uses: *
+-- [\`serving_status\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.serving_status):
+-- For Version resources that use basic scaling, manual scaling, or run in
+-- the App Engine flexible environment. *
+-- [\`instance_class\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.instance_class):
+-- For Version resources that run in the App Engine standard environment. *
+-- [\`automatic_scaling.min_idle_instances\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling):
+-- For Version resources that use automatic scaling and run in the App
+-- Engine standard environment. *
+-- [\`automatic_scaling.max_idle_instances\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling):
+-- For Version resources that use automatic scaling and run in the App
+-- Engine standard environment.
 --
 -- /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
@@ -35,12 +48,12 @@
     -- * Request Lenses
     , asvpXgafv
     , asvpUploadProtocol
+    , asvpUpdateMask
     , asvpPp
     , asvpAccessToken
     , asvpUploadType
     , asvpPayload
     , asvpVersionsId
-    , asvpMask
     , asvpBearerToken
     , asvpAppsId
     , asvpServicesId
@@ -53,7 +66,7 @@
 -- | A resource alias for @appengine.apps.services.versions.patch@ method which the
 -- 'AppsServicesVersionsPatch' request conforms to.
 type AppsServicesVersionsPatchResource =
-     "v1beta5" :>
+     "v1" :>
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
@@ -62,28 +75,41 @@
                  Capture "versionsId" Text :>
                    QueryParam "$.xgafv" Text :>
                      QueryParam "upload_protocol" Text :>
-                       QueryParam "pp" Bool :>
-                         QueryParam "access_token" Text :>
-                           QueryParam "uploadType" Text :>
-                             QueryParam "mask" Text :>
+                       QueryParam "updateMask" Text :>
+                         QueryParam "pp" Bool :>
+                           QueryParam "access_token" Text :>
+                             QueryParam "uploadType" Text :>
                                QueryParam "bearer_token" Text :>
                                  QueryParam "callback" Text :>
                                    QueryParam "alt" AltJSON :>
                                      ReqBody '[JSON] Version :>
                                        Patch '[JSON] Operation
 
--- | Updates an existing version. Note: UNIMPLEMENTED.
+-- | Updates the specified Version resource. You can specify the following
+-- fields depending on the App Engine environment and type of scaling that
+-- the version resource uses: *
+-- [\`serving_status\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.serving_status):
+-- For Version resources that use basic scaling, manual scaling, or run in
+-- the App Engine flexible environment. *
+-- [\`instance_class\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.instance_class):
+-- For Version resources that run in the App Engine standard environment. *
+-- [\`automatic_scaling.min_idle_instances\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling):
+-- For Version resources that use automatic scaling and run in the App
+-- Engine standard environment. *
+-- [\`automatic_scaling.max_idle_instances\`](https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling):
+-- For Version resources that use automatic scaling and run in the App
+-- Engine standard environment.
 --
 -- /See:/ 'appsServicesVersionsPatch' smart constructor.
 data AppsServicesVersionsPatch = AppsServicesVersionsPatch'
     { _asvpXgafv          :: !(Maybe Text)
     , _asvpUploadProtocol :: !(Maybe Text)
+    , _asvpUpdateMask     :: !(Maybe Text)
     , _asvpPp             :: !Bool
     , _asvpAccessToken    :: !(Maybe Text)
     , _asvpUploadType     :: !(Maybe Text)
     , _asvpPayload        :: !Version
     , _asvpVersionsId     :: !Text
-    , _asvpMask           :: !(Maybe Text)
     , _asvpBearerToken    :: !(Maybe Text)
     , _asvpAppsId         :: !Text
     , _asvpServicesId     :: !Text
@@ -98,6 +124,8 @@
 --
 -- * 'asvpUploadProtocol'
 --
+-- * 'asvpUpdateMask'
+--
 -- * 'asvpPp'
 --
 -- * 'asvpAccessToken'
@@ -108,8 +136,6 @@
 --
 -- * 'asvpVersionsId'
 --
--- * 'asvpMask'
---
 -- * 'asvpBearerToken'
 --
 -- * 'asvpAppsId'
@@ -127,12 +153,12 @@
     AppsServicesVersionsPatch'
     { _asvpXgafv = Nothing
     , _asvpUploadProtocol = Nothing
+    , _asvpUpdateMask = Nothing
     , _asvpPp = True
     , _asvpAccessToken = Nothing
     , _asvpUploadType = Nothing
     , _asvpPayload = pAsvpPayload_
     , _asvpVersionsId = pAsvpVersionsId_
-    , _asvpMask = Nothing
     , _asvpBearerToken = Nothing
     , _asvpAppsId = pAsvpAppsId_
     , _asvpServicesId = pAsvpServicesId_
@@ -150,6 +176,12 @@
   = lens _asvpUploadProtocol
       (\ s a -> s{_asvpUploadProtocol = a})
 
+-- | Standard field mask for the set of fields to be updated.
+asvpUpdateMask :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpUpdateMask
+  = lens _asvpUpdateMask
+      (\ s a -> s{_asvpUpdateMask = a})
+
 -- | Pretty-print response.
 asvpPp :: Lens' AppsServicesVersionsPatch Bool
 asvpPp = lens _asvpPp (\ s a -> s{_asvpPp = a})
@@ -177,18 +209,14 @@
   = 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\".
+-- | Part of \`name\`. Name of the resource to update. Example:
+-- \`apps\/myapp\/services\/default\/versions\/1\`.
 asvpAppsId :: Lens' AppsServicesVersionsPatch Text
 asvpAppsId
   = lens _asvpAppsId (\ s a -> s{_asvpAppsId = a})
@@ -213,10 +241,10 @@
           = go _asvpAppsId _asvpServicesId _asvpVersionsId
               _asvpXgafv
               _asvpUploadProtocol
+              _asvpUpdateMask
               (Just _asvpPp)
               _asvpAccessToken
               _asvpUploadType
-              _asvpMask
               _asvpBearerToken
               _asvpCallback
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/AppEngine/Experimental/Apps/Operations/Get.hs b/gen/Network/Google/Resource/AppEngine/Experimental/Apps/Operations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Experimental/Apps/Operations/Get.hs
@@ -0,0 +1,192 @@
+{-# 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.Experimental.Apps.Operations.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 latest state of a long-running operation. Clients can use this
+-- method to poll the operation result at intervals as recommended by the
+-- API service.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.experimental.apps.operations.get@.
+module Network.Google.Resource.AppEngine.Experimental.Apps.Operations.Get
+    (
+    -- * REST Resource
+      ExperimentalAppsOperationsGetResource
+
+    -- * Creating a Request
+    , experimentalAppsOperationsGet
+    , ExperimentalAppsOperationsGet
+
+    -- * Request Lenses
+    , eaogXgafv
+    , eaogUploadProtocol
+    , eaogPp
+    , eaogAccessToken
+    , eaogUploadType
+    , eaogBearerToken
+    , eaogAppsId
+    , eaogOperationsId
+    , eaogCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.experimental.apps.operations.get@ method which the
+-- 'ExperimentalAppsOperationsGet' request conforms to.
+type ExperimentalAppsOperationsGetResource =
+     "experimental" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "operations" :>
+             Capture "operationsId" 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] Operation
+
+-- | Gets the latest state of a long-running operation. Clients can use this
+-- method to poll the operation result at intervals as recommended by the
+-- API service.
+--
+-- /See:/ 'experimentalAppsOperationsGet' smart constructor.
+data ExperimentalAppsOperationsGet = ExperimentalAppsOperationsGet'
+    { _eaogXgafv          :: !(Maybe Text)
+    , _eaogUploadProtocol :: !(Maybe Text)
+    , _eaogPp             :: !Bool
+    , _eaogAccessToken    :: !(Maybe Text)
+    , _eaogUploadType     :: !(Maybe Text)
+    , _eaogBearerToken    :: !(Maybe Text)
+    , _eaogAppsId         :: !Text
+    , _eaogOperationsId   :: !Text
+    , _eaogCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ExperimentalAppsOperationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eaogXgafv'
+--
+-- * 'eaogUploadProtocol'
+--
+-- * 'eaogPp'
+--
+-- * 'eaogAccessToken'
+--
+-- * 'eaogUploadType'
+--
+-- * 'eaogBearerToken'
+--
+-- * 'eaogAppsId'
+--
+-- * 'eaogOperationsId'
+--
+-- * 'eaogCallback'
+experimentalAppsOperationsGet
+    :: Text -- ^ 'eaogAppsId'
+    -> Text -- ^ 'eaogOperationsId'
+    -> ExperimentalAppsOperationsGet
+experimentalAppsOperationsGet pEaogAppsId_ pEaogOperationsId_ =
+    ExperimentalAppsOperationsGet'
+    { _eaogXgafv = Nothing
+    , _eaogUploadProtocol = Nothing
+    , _eaogPp = True
+    , _eaogAccessToken = Nothing
+    , _eaogUploadType = Nothing
+    , _eaogBearerToken = Nothing
+    , _eaogAppsId = pEaogAppsId_
+    , _eaogOperationsId = pEaogOperationsId_
+    , _eaogCallback = Nothing
+    }
+
+-- | V1 error format.
+eaogXgafv :: Lens' ExperimentalAppsOperationsGet (Maybe Text)
+eaogXgafv
+  = lens _eaogXgafv (\ s a -> s{_eaogXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+eaogUploadProtocol :: Lens' ExperimentalAppsOperationsGet (Maybe Text)
+eaogUploadProtocol
+  = lens _eaogUploadProtocol
+      (\ s a -> s{_eaogUploadProtocol = a})
+
+-- | Pretty-print response.
+eaogPp :: Lens' ExperimentalAppsOperationsGet Bool
+eaogPp = lens _eaogPp (\ s a -> s{_eaogPp = a})
+
+-- | OAuth access token.
+eaogAccessToken :: Lens' ExperimentalAppsOperationsGet (Maybe Text)
+eaogAccessToken
+  = lens _eaogAccessToken
+      (\ s a -> s{_eaogAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+eaogUploadType :: Lens' ExperimentalAppsOperationsGet (Maybe Text)
+eaogUploadType
+  = lens _eaogUploadType
+      (\ s a -> s{_eaogUploadType = a})
+
+-- | OAuth bearer token.
+eaogBearerToken :: Lens' ExperimentalAppsOperationsGet (Maybe Text)
+eaogBearerToken
+  = lens _eaogBearerToken
+      (\ s a -> s{_eaogBearerToken = a})
+
+-- | Part of \`name\`. The name of the operation resource.
+eaogAppsId :: Lens' ExperimentalAppsOperationsGet Text
+eaogAppsId
+  = lens _eaogAppsId (\ s a -> s{_eaogAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+eaogOperationsId :: Lens' ExperimentalAppsOperationsGet Text
+eaogOperationsId
+  = lens _eaogOperationsId
+      (\ s a -> s{_eaogOperationsId = a})
+
+-- | JSONP
+eaogCallback :: Lens' ExperimentalAppsOperationsGet (Maybe Text)
+eaogCallback
+  = lens _eaogCallback (\ s a -> s{_eaogCallback = a})
+
+instance GoogleRequest ExperimentalAppsOperationsGet
+         where
+        type Rs ExperimentalAppsOperationsGet = Operation
+        type Scopes ExperimentalAppsOperationsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ExperimentalAppsOperationsGet'{..}
+          = go _eaogAppsId _eaogOperationsId _eaogXgafv
+              _eaogUploadProtocol
+              (Just _eaogPp)
+              _eaogAccessToken
+              _eaogUploadType
+              _eaogBearerToken
+              _eaogCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ExperimentalAppsOperationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Experimental/Apps/Operations/List.hs b/gen/Network/Google/Resource/AppEngine/Experimental/Apps/Operations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Experimental/Apps/Operations/List.hs
@@ -0,0 +1,222 @@
+{-# 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.Experimental.Apps.Operations.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 operations that match the specified filter in the request. If the
+-- server doesn\'t support this method, it returns \`UNIMPLEMENTED\`. NOTE:
+-- the \`name\` binding below allows API services to override the binding
+-- to use different resource name schemes, such as
+-- \`users\/*\/operations\`.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.experimental.apps.operations.list@.
+module Network.Google.Resource.AppEngine.Experimental.Apps.Operations.List
+    (
+    -- * REST Resource
+      ExperimentalAppsOperationsListResource
+
+    -- * Creating a Request
+    , experimentalAppsOperationsList
+    , ExperimentalAppsOperationsList
+
+    -- * Request Lenses
+    , eaolXgafv
+    , eaolUploadProtocol
+    , eaolPp
+    , eaolAccessToken
+    , eaolUploadType
+    , eaolBearerToken
+    , eaolAppsId
+    , eaolFilter
+    , eaolPageToken
+    , eaolPageSize
+    , eaolCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.experimental.apps.operations.list@ method which the
+-- 'ExperimentalAppsOperationsList' request conforms to.
+type ExperimentalAppsOperationsListResource =
+     "experimental" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "operations" :>
+             QueryParam "$.xgafv" Text :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "pp" Bool :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "bearer_token" Text :>
+                         QueryParam "filter" Text :>
+                           QueryParam "pageToken" Text :>
+                             QueryParam "pageSize" (Textual Int32) :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] ListOperationsResponse
+
+-- | Lists operations that match the specified filter in the request. If the
+-- server doesn\'t support this method, it returns \`UNIMPLEMENTED\`. NOTE:
+-- the \`name\` binding below allows API services to override the binding
+-- to use different resource name schemes, such as
+-- \`users\/*\/operations\`.
+--
+-- /See:/ 'experimentalAppsOperationsList' smart constructor.
+data ExperimentalAppsOperationsList = ExperimentalAppsOperationsList'
+    { _eaolXgafv          :: !(Maybe Text)
+    , _eaolUploadProtocol :: !(Maybe Text)
+    , _eaolPp             :: !Bool
+    , _eaolAccessToken    :: !(Maybe Text)
+    , _eaolUploadType     :: !(Maybe Text)
+    , _eaolBearerToken    :: !(Maybe Text)
+    , _eaolAppsId         :: !Text
+    , _eaolFilter         :: !(Maybe Text)
+    , _eaolPageToken      :: !(Maybe Text)
+    , _eaolPageSize       :: !(Maybe (Textual Int32))
+    , _eaolCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ExperimentalAppsOperationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eaolXgafv'
+--
+-- * 'eaolUploadProtocol'
+--
+-- * 'eaolPp'
+--
+-- * 'eaolAccessToken'
+--
+-- * 'eaolUploadType'
+--
+-- * 'eaolBearerToken'
+--
+-- * 'eaolAppsId'
+--
+-- * 'eaolFilter'
+--
+-- * 'eaolPageToken'
+--
+-- * 'eaolPageSize'
+--
+-- * 'eaolCallback'
+experimentalAppsOperationsList
+    :: Text -- ^ 'eaolAppsId'
+    -> ExperimentalAppsOperationsList
+experimentalAppsOperationsList pEaolAppsId_ =
+    ExperimentalAppsOperationsList'
+    { _eaolXgafv = Nothing
+    , _eaolUploadProtocol = Nothing
+    , _eaolPp = True
+    , _eaolAccessToken = Nothing
+    , _eaolUploadType = Nothing
+    , _eaolBearerToken = Nothing
+    , _eaolAppsId = pEaolAppsId_
+    , _eaolFilter = Nothing
+    , _eaolPageToken = Nothing
+    , _eaolPageSize = Nothing
+    , _eaolCallback = Nothing
+    }
+
+-- | V1 error format.
+eaolXgafv :: Lens' ExperimentalAppsOperationsList (Maybe Text)
+eaolXgafv
+  = lens _eaolXgafv (\ s a -> s{_eaolXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+eaolUploadProtocol :: Lens' ExperimentalAppsOperationsList (Maybe Text)
+eaolUploadProtocol
+  = lens _eaolUploadProtocol
+      (\ s a -> s{_eaolUploadProtocol = a})
+
+-- | Pretty-print response.
+eaolPp :: Lens' ExperimentalAppsOperationsList Bool
+eaolPp = lens _eaolPp (\ s a -> s{_eaolPp = a})
+
+-- | OAuth access token.
+eaolAccessToken :: Lens' ExperimentalAppsOperationsList (Maybe Text)
+eaolAccessToken
+  = lens _eaolAccessToken
+      (\ s a -> s{_eaolAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+eaolUploadType :: Lens' ExperimentalAppsOperationsList (Maybe Text)
+eaolUploadType
+  = lens _eaolUploadType
+      (\ s a -> s{_eaolUploadType = a})
+
+-- | OAuth bearer token.
+eaolBearerToken :: Lens' ExperimentalAppsOperationsList (Maybe Text)
+eaolBearerToken
+  = lens _eaolBearerToken
+      (\ s a -> s{_eaolBearerToken = a})
+
+-- | Part of \`name\`. The name of the operation collection.
+eaolAppsId :: Lens' ExperimentalAppsOperationsList Text
+eaolAppsId
+  = lens _eaolAppsId (\ s a -> s{_eaolAppsId = a})
+
+-- | The standard list filter.
+eaolFilter :: Lens' ExperimentalAppsOperationsList (Maybe Text)
+eaolFilter
+  = lens _eaolFilter (\ s a -> s{_eaolFilter = a})
+
+-- | The standard list page token.
+eaolPageToken :: Lens' ExperimentalAppsOperationsList (Maybe Text)
+eaolPageToken
+  = lens _eaolPageToken
+      (\ s a -> s{_eaolPageToken = a})
+
+-- | The standard list page size.
+eaolPageSize :: Lens' ExperimentalAppsOperationsList (Maybe Int32)
+eaolPageSize
+  = lens _eaolPageSize (\ s a -> s{_eaolPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+eaolCallback :: Lens' ExperimentalAppsOperationsList (Maybe Text)
+eaolCallback
+  = lens _eaolCallback (\ s a -> s{_eaolCallback = a})
+
+instance GoogleRequest ExperimentalAppsOperationsList
+         where
+        type Rs ExperimentalAppsOperationsList =
+             ListOperationsResponse
+        type Scopes ExperimentalAppsOperationsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ExperimentalAppsOperationsList'{..}
+          = go _eaolAppsId _eaolXgafv _eaolUploadProtocol
+              (Just _eaolPp)
+              _eaolAccessToken
+              _eaolUploadType
+              _eaolBearerToken
+              _eaolFilter
+              _eaolPageToken
+              _eaolPageSize
+              _eaolCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ExperimentalAppsOperationsListResource)
+                      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.1.0
+version:               0.1.1
 synopsis:              Google App Engine Admin SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -11,7 +11,7 @@
 category:              Network, Google, Cloud
 build-type:            Simple
 cabal-version:         >= 1.10
-extra-source-files:    README.md
+extra-source-files:    README.md src/.gitkeep
 
 description:
     Provisions and manages App Engine applications.
@@ -19,7 +19,7 @@
     /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 @v1beta5@
+    This library is compatible with version @v1@
     of the API.
 
 source-repository head
@@ -36,8 +36,12 @@
           Network.Google.AppEngine
         , Network.Google.AppEngine.Types
         , Network.Google.Resource.AppEngine.Apps.Get
+        , Network.Google.Resource.AppEngine.Apps.Locations.Get
+        , Network.Google.Resource.AppEngine.Apps.Locations.List
         , Network.Google.Resource.AppEngine.Apps.Operations.Get
         , Network.Google.Resource.AppEngine.Apps.Operations.List
+        , Network.Google.Resource.AppEngine.Apps.Patch
+        , Network.Google.Resource.AppEngine.Apps.Repair
         , Network.Google.Resource.AppEngine.Apps.Services.Delete
         , Network.Google.Resource.AppEngine.Apps.Services.Get
         , Network.Google.Resource.AppEngine.Apps.Services.List
@@ -45,14 +49,19 @@
         , 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.Debug
+        , Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Delete
+        , Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.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
+        , Network.Google.Resource.AppEngine.Experimental.Apps.Operations.Get
+        , Network.Google.Resource.AppEngine.Experimental.Apps.Operations.List
 
     other-modules:
           Network.Google.AppEngine.Types.Product
         , Network.Google.AppEngine.Types.Sum
 
     build-depends:
-          gogol-core == 0.1.0.*
+          gogol-core == 0.1.1.*
         , base       >= 4.7 && < 5
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
