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
@@ -13,9 +13,9 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Provisions and manages App Engine applications.
+-- Provisions and manages developers\' App Engine applications.
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference>
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference>
 module Network.Google.AppEngine
     (
     -- * Service Configuration
@@ -31,9 +31,60 @@
 
     -- * Resources
 
+    -- ** appengine.apps.authorizedCertificates.create
+    , module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Create
+
+    -- ** appengine.apps.authorizedCertificates.delete
+    , module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Delete
+
+    -- ** appengine.apps.authorizedCertificates.get
+    , module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Get
+
+    -- ** appengine.apps.authorizedCertificates.list
+    , module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.List
+
+    -- ** appengine.apps.authorizedCertificates.patch
+    , module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Patch
+
+    -- ** appengine.apps.authorizedDomains.list
+    , module Network.Google.Resource.AppEngine.Apps.AuthorizedDomains.List
+
     -- ** appengine.apps.create
     , module Network.Google.Resource.AppEngine.Apps.Create
 
+    -- ** appengine.apps.domainMappings.create
+    , module Network.Google.Resource.AppEngine.Apps.DomainMAppings.Create
+
+    -- ** appengine.apps.domainMappings.delete
+    , module Network.Google.Resource.AppEngine.Apps.DomainMAppings.Delete
+
+    -- ** appengine.apps.domainMappings.get
+    , module Network.Google.Resource.AppEngine.Apps.DomainMAppings.Get
+
+    -- ** appengine.apps.domainMappings.list
+    , module Network.Google.Resource.AppEngine.Apps.DomainMAppings.List
+
+    -- ** appengine.apps.domainMappings.patch
+    , module Network.Google.Resource.AppEngine.Apps.DomainMAppings.Patch
+
+    -- ** appengine.apps.firewall.ingressRules.batchUpdate
+    , module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.BatchUpdate
+
+    -- ** appengine.apps.firewall.ingressRules.create
+    , module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Create
+
+    -- ** appengine.apps.firewall.ingressRules.delete
+    , module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Delete
+
+    -- ** appengine.apps.firewall.ingressRules.get
+    , module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Get
+
+    -- ** appengine.apps.firewall.ingressRules.list
+    , module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.List
+
+    -- ** appengine.apps.firewall.ingressRules.patch
+    , module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Patch
+
     -- ** appengine.apps.get
     , module Network.Google.Resource.AppEngine.Apps.Get
 
@@ -96,15 +147,12 @@
 
     -- * Types
 
-    -- ** OperationMetadataExperimental
-    , OperationMetadataExperimental
-    , operationMetadataExperimental
-    , omeInsertTime
-    , omeUser
-    , omeMethod
-    , omeEndTime
-    , omeTarget
+    -- ** ApplicationServingStatus
+    , ApplicationServingStatus (..)
 
+    -- ** URLMapLogin
+    , URLMapLogin (..)
+
     -- ** NetworkUtilization
     , NetworkUtilization
     , networkUtilization
@@ -113,6 +161,9 @@
     , nuTargetReceivedPacketsPerSecond
     , nuTargetSentBytesPerSecond
 
+    -- ** ManagedCertificateStatus
+    , ManagedCertificateStatus (..)
+
     -- ** Status
     , Status
     , status
@@ -130,6 +181,12 @@
     , locationSchema
     , lsAddtional
 
+    -- ** AuthorizedDomain
+    , AuthorizedDomain
+    , authorizedDomain
+    , adName
+    , adId
+
     -- ** TrafficSplit
     , TrafficSplit
     , trafficSplit
@@ -165,6 +222,13 @@
     , lName
     , lVersion
 
+    -- ** ResourceRecord
+    , ResourceRecord
+    , resourceRecord
+    , rrRrData
+    , rrName
+    , rrType
+
     -- ** ListLocationsResponse
     , ListLocationsResponse
     , listLocationsResponse
@@ -196,6 +260,19 @@
     , hcTimeout
     , hcUnhealthyThreshold
 
+    -- ** AuthorizedCertificate
+    , AuthorizedCertificate
+    , authorizedCertificate
+    , acManagedCertificate
+    , acCertificateRawData
+    , acDomainNames
+    , acDomainMAppingsCount
+    , acName
+    , acDisplayName
+    , acId
+    , acExpireTime
+    , acVisibleDomainMAppings
+
     -- ** APIConfigHandler
     , APIConfigHandler
     , apiConfigHandler
@@ -210,18 +287,25 @@
     , versionEnvVariables
     , vevAddtional
 
+    -- ** APIConfigHandlerSecurityLevel
+    , APIConfigHandlerSecurityLevel (..)
+
     -- ** Application
     , Application
     , application
     , aDefaultHostname
     , aDefaultCookieExpiration
+    , aIap
     , aAuthDomain
     , aCodeBucket
+    , aGcrDomain
+    , aFeatureSettings
     , aName
     , aDispatchRules
     , aDefaultBucket
     , aId
     , aLocationId
+    , aServingStatus
 
     -- ** VersionBetaSettings
     , VersionBetaSettings
@@ -235,17 +319,23 @@
     , sName
     , sId
 
+    -- ** ErrorHandlerErrorCode
+    , ErrorHandlerErrorCode (..)
+
     -- ** EndpointsAPIService
     , EndpointsAPIService
     , endpointsAPIService
+    , easDisableTraceSampling
     , easName
     , easConfigId
+    , easRolloutStrategy
 
     -- ** Location
     , Location
     , location
     , locName
     , locMetadata
+    , locDisplayName
     , locLabels
     , locLocationId
 
@@ -258,12 +348,19 @@
     , oName
     , oMetadata
 
+    -- ** EndpointsAPIServiceRolloutStrategy
+    , EndpointsAPIServiceRolloutStrategy (..)
+
     -- ** ZipInfo
     , ZipInfo
     , zipInfo
     , ziFilesCount
     , ziSourceURL
 
+    -- ** Empty
+    , Empty
+    , empty
+
     -- ** URLDispatchRule
     , URLDispatchRule
     , urlDispatchRule
@@ -271,12 +368,46 @@
     , udrService
     , udrDomain
 
+    -- ** OperationMetadataV1Beta
+    , OperationMetadataV1Beta
+    , operationMetadataV1Beta
+    , omvbEphemeralMessage
+    , omvbInsertTime
+    , omvbUser
+    , omvbMethod
+    , omvbEndTime
+    , omvbWarning
+    , omvbCreateVersionMetadata
+    , omvbTarget
+
+    -- ** ListAuthorizedDomainsResponse
+    , ListAuthorizedDomainsResponse
+    , listAuthorizedDomainsResponse
+    , ladrNextPageToken
+    , ladrDomains
+
+    -- ** Entrypoint
+    , Entrypoint
+    , entrypoint
+    , eShell
+
     -- ** ListVersionsResponse
     , ListVersionsResponse
     , listVersionsResponse
     , lvrNextPageToken
     , lvrVersions
 
+    -- ** ManagedCertificate
+    , ManagedCertificate
+    , managedCertificate
+    , mcStatus
+    , mcLastRenewalTime
+
+    -- ** CreateVersionMetadataV1Alpha
+    , CreateVersionMetadataV1Alpha
+    , createVersionMetadataV1Alpha
+    , cvmvaCloudBuildId
+
     -- ** FileInfo
     , FileInfo
     , fileInfo
@@ -299,15 +430,16 @@
     , asCoolDownPeriod
     , asRequestUtilization
     , asMaxPendingLatency
+    , asStandardSchedulerSettings
 
     -- ** OperationMetadataV1Beta5
     , OperationMetadataV1Beta5
     , operationMetadataV1Beta5
-    , omvbInsertTime
-    , omvbUser
-    , omvbMethod
-    , omvbEndTime
-    , omvbTarget
+    , oInsertTime
+    , oUser
+    , oMethod
+    , oEndTime
+    , oTarget
 
     -- ** Volume
     , Volume
@@ -326,6 +458,12 @@
     , statusDetailsItem
     , sdiAddtional
 
+    -- ** ListIngressRulesResponse
+    , ListIngressRulesResponse
+    , listIngressRulesResponse
+    , lirrNextPageToken
+    , lirrIngressRules
+
     -- ** Network
     , Network
     , network
@@ -334,6 +472,25 @@
     , nInstanceTag
     , nName
 
+    -- ** APIConfigHandlerAuthFailAction
+    , APIConfigHandlerAuthFailAction (..)
+
+    -- ** ReadinessCheck
+    , ReadinessCheck
+    , readinessCheck
+    , rcSuccessThreshold
+    , rcFailureThreshold
+    , rcPath
+    , rcCheckInterval
+    , rcAppStartTimeout
+    , rcHost
+    , rcTimeout
+
+    -- ** BatchUpdateIngressRulesRequest
+    , BatchUpdateIngressRulesRequest
+    , batchUpdateIngressRulesRequest
+    , buirrIngressRules
+
     -- ** DebugInstanceRequest
     , DebugInstanceRequest
     , debugInstanceRequest
@@ -352,22 +509,60 @@
     , rVolumes
     , rCPU
 
+    -- ** FeatureSettings
+    , FeatureSettings
+    , featureSettings
+    , fsSplitHealthChecks
+
+    -- ** CertificateRawData
+    , CertificateRawData
+    , certificateRawData
+    , crdPrivateKey
+    , crdPublicCertificate
+
+    -- ** DomainMApping
+    , DomainMApping
+    , domainMApping
+    , dmaResourceRecords
+    , dmaName
+    , dmaId
+    , dmaSSLSettings
+
+    -- ** VersionServingStatus
+    , VersionServingStatus (..)
+
     -- ** DeploymentFiles
     , DeploymentFiles
     , deploymentFiles
     , dfAddtional
 
+    -- ** BatchUpdateIngressRulesResponse
+    , BatchUpdateIngressRulesResponse
+    , batchUpdateIngressRulesResponse
+    , bIngressRules
+
     -- ** CPUUtilization
     , CPUUtilization
     , cpuUtilization
     , cuAggregationWindowLength
     , cuTargetUtilization
 
+    -- ** CreateVersionMetadataV1
+    , CreateVersionMetadataV1
+    , createVersionMetadataV1
+    , cvmvCloudBuildId
+
     -- ** TrafficSplitAllocations
     , TrafficSplitAllocations
     , trafficSplitAllocations
     , tsaAddtional
 
+    -- ** CloudBuildOptions
+    , CloudBuildOptions
+    , cloudBuildOptions
+    , cboCloudBuildTimeout
+    , cboAppYamlPath
+
     -- ** ManualScaling
     , ManualScaling
     , manualScaling
@@ -379,6 +574,12 @@
     , bsMaxInstances
     , bsIdleTimeout
 
+    -- ** URLMapSecurityLevel
+    , URLMapSecurityLevel (..)
+
+    -- ** ResourceRecordType
+    , ResourceRecordType (..)
+
     -- ** OperationMetadataV1
     , OperationMetadataV1
     , operationMetadataV1
@@ -388,6 +589,7 @@
     , omvMethod
     , omvEndTime
     , omvWarning
+    , omvCreateVersionMetadata
     , omvTarget
 
     -- ** Version
@@ -396,9 +598,13 @@
     , verRuntime
     , verNobuildFilesRegex
     , verInstanceClass
+    , verRuntimeChannel
+    , verRuntimeMainExecutablePath
     , verHealthCheck
     , verEndpointsAPIService
     , verEnv
+    , verZones
+    , verEntrypoint
     , verDefaultExpiration
     , verAutomaticScaling
     , verErrorHandlers
@@ -406,6 +612,7 @@
     , verVM
     , verHandlers
     , verInboundServices
+    , verReadinessCheck
     , verNetwork
     , verResources
     , verName
@@ -416,6 +623,8 @@
     , verAPIConfig
     , verId
     , verEnvVariables
+    , verLivenessCheck
+    , verRuntimeAPIVersion
     , verServingStatus
     , verDiskUsageBytes
     , verCreateTime
@@ -423,6 +632,17 @@
     , verVersionURL
     , verDeployment
 
+    -- ** Xgafv
+    , Xgafv (..)
+
+    -- ** IdentityAwareProxy
+    , IdentityAwareProxy
+    , identityAwareProxy
+    , iapEnabled
+    , iapOAuth2ClientSecretSha256
+    , iapOAuth2ClientSecret
+    , iapOAuth2ClientId
+
     -- ** StaticFilesHandler
     , StaticFilesHandler
     , staticFilesHandler
@@ -441,11 +661,31 @@
     , ehErrorCode
     , ehStaticFile
 
+    -- ** TrafficSplitShardBy
+    , TrafficSplitShardBy (..)
+
+    -- ** InstanceAvailability
+    , InstanceAvailability (..)
+
     -- ** LocationLabels
     , LocationLabels
     , locationLabels
     , llAddtional
 
+    -- ** ListAuthorizedCertificatesResponse
+    , ListAuthorizedCertificatesResponse
+    , listAuthorizedCertificatesResponse
+    , lacrNextPageToken
+    , lacrCertificates
+
+    -- ** FirewallRule
+    , FirewallRule
+    , firewallRule
+    , frPriority
+    , frAction
+    , frSourceRange
+    , frDescription
+
     -- ** LocationMetadata
     , LocationMetadata
     , locationMetadata
@@ -462,18 +702,53 @@
     , omOperationType
     , omTarget
 
+    -- ** URLMapAuthFailAction
+    , URLMapAuthFailAction (..)
+
     -- ** ListInstancesResponse
     , ListInstancesResponse
     , listInstancesResponse
     , lirNextPageToken
     , lirInstances
 
+    -- ** OperationMetadataV1Alpha
+    , OperationMetadataV1Alpha
+    , operationMetadataV1Alpha
+    , omvaEphemeralMessage
+    , omvaInsertTime
+    , omvaUser
+    , omvaMethod
+    , omvaEndTime
+    , omvaWarning
+    , omvaCreateVersionMetadata
+    , omvaTarget
+
+    -- ** LivenessCheck
+    , LivenessCheck
+    , livenessCheck
+    , lcSuccessThreshold
+    , lcFailureThreshold
+    , lcPath
+    , lcCheckInterval
+    , lcHost
+    , lcInitialDelay
+    , lcTimeout
+
+    -- ** URLMapRedirectHTTPResponseCode
+    , URLMapRedirectHTTPResponseCode (..)
+
     -- ** RequestUtilization
     , RequestUtilization
     , requestUtilization
     , ruTargetConcurrentRequests
     , ruTargetRequestCountPerSecond
 
+    -- ** FirewallRuleAction
+    , FirewallRuleAction (..)
+
+    -- ** SSLSettingsSSLManagementType
+    , SSLSettingsSSLManagementType (..)
+
     -- ** RepairApplicationRequest
     , RepairApplicationRequest
     , repairApplicationRequest
@@ -483,6 +758,28 @@
     , operationResponse
     , orAddtional
 
+    -- ** CreateVersionMetadataV1Beta
+    , CreateVersionMetadataV1Beta
+    , createVersionMetadataV1Beta
+    , cvmvbCloudBuildId
+
+    -- ** ListDomainMAppingsResponse
+    , ListDomainMAppingsResponse
+    , listDomainMAppingsResponse
+    , ldmarDomainMAppings
+    , ldmarNextPageToken
+
+    -- ** StandardSchedulerSettings
+    , StandardSchedulerSettings
+    , standardSchedulerSettings
+    , sssTargetCPUUtilization
+    , sssMinInstances
+    , sssMaxInstances
+    , sssTargetThroughputUtilization
+
+    -- ** APIConfigHandlerLogin
+    , APIConfigHandlerLogin (..)
+
     -- ** ContainerInfo
     , ContainerInfo
     , containerInfo
@@ -508,17 +805,42 @@
     , iAverageLatency
     , iAppEngineRelease
 
+    -- ** SSLSettings
+    , SSLSettings
+    , sslSettings
+    , ssSSLManagementType
+    , ssCertificateId
+    , ssPendingManagedCertificateId
+
     -- ** Deployment
     , Deployment
     , deployment
     , dZip
+    , dCloudBuildOptions
     , dContainer
     , dFiles
     ) where
 
 import           Network.Google.AppEngine.Types
 import           Network.Google.Prelude
+import           Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Create
+import           Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Delete
+import           Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Get
+import           Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.List
+import           Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Patch
+import           Network.Google.Resource.AppEngine.Apps.AuthorizedDomains.List
 import           Network.Google.Resource.AppEngine.Apps.Create
+import           Network.Google.Resource.AppEngine.Apps.DomainMAppings.Create
+import           Network.Google.Resource.AppEngine.Apps.DomainMAppings.Delete
+import           Network.Google.Resource.AppEngine.Apps.DomainMAppings.Get
+import           Network.Google.Resource.AppEngine.Apps.DomainMAppings.List
+import           Network.Google.Resource.AppEngine.Apps.DomainMAppings.Patch
+import           Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.BatchUpdate
+import           Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Create
+import           Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Delete
+import           Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Get
+import           Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.List
+import           Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Patch
 import           Network.Google.Resource.AppEngine.Apps.Get
 import           Network.Google.Resource.AppEngine.Apps.Locations.Get
 import           Network.Google.Resource.AppEngine.Apps.Locations.List
@@ -544,10 +866,22 @@
 TODO
 -}
 
--- | Represents the entirety of the methods and resources available for the Google App Engine Admin API service.
+-- | Represents the entirety of the methods and resources available for the App Engine Admin API service.
 type AppEngineAPI =
-     AppsOperationsListResource :<|>
-       AppsOperationsGetResource
+     AppsAuthorizedDomainsListResource :<|>
+       AppsDomainMAppingsListResource
+       :<|> AppsDomainMAppingsPatchResource
+       :<|> AppsDomainMAppingsGetResource
+       :<|> AppsDomainMAppingsCreateResource
+       :<|> AppsDomainMAppingsDeleteResource
+       :<|> AppsFirewallIngressRulesListResource
+       :<|> AppsFirewallIngressRulesPatchResource
+       :<|> AppsFirewallIngressRulesGetResource
+       :<|> AppsFirewallIngressRulesCreateResource
+       :<|> AppsFirewallIngressRulesBatchUpdateResource
+       :<|> AppsFirewallIngressRulesDeleteResource
+       :<|> AppsOperationsListResource
+       :<|> AppsOperationsGetResource
        :<|> AppsLocationsListResource
        :<|> AppsLocationsGetResource
        :<|> AppsServicesVersionsInstancesListResource
@@ -563,6 +897,11 @@
        :<|> AppsServicesPatchResource
        :<|> AppsServicesGetResource
        :<|> AppsServicesDeleteResource
+       :<|> AppsAuthorizedCertificatesListResource
+       :<|> AppsAuthorizedCertificatesPatchResource
+       :<|> AppsAuthorizedCertificatesGetResource
+       :<|> AppsAuthorizedCertificatesCreateResource
+       :<|> AppsAuthorizedCertificatesDeleteResource
        :<|> AppsPatchResource
        :<|> AppsGetResource
        :<|> AppsCreateResource
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
@@ -24,15 +24,12 @@
     , appEngineAdminScope
     , cloudPlatformScope
 
-    -- * OperationMetadataExperimental
-    , OperationMetadataExperimental
-    , operationMetadataExperimental
-    , omeInsertTime
-    , omeUser
-    , omeMethod
-    , omeEndTime
-    , omeTarget
+    -- * ApplicationServingStatus
+    , ApplicationServingStatus (..)
 
+    -- * URLMapLogin
+    , URLMapLogin (..)
+
     -- * NetworkUtilization
     , NetworkUtilization
     , networkUtilization
@@ -41,6 +38,9 @@
     , nuTargetReceivedPacketsPerSecond
     , nuTargetSentBytesPerSecond
 
+    -- * ManagedCertificateStatus
+    , ManagedCertificateStatus (..)
+
     -- * Status
     , Status
     , status
@@ -58,6 +58,12 @@
     , locationSchema
     , lsAddtional
 
+    -- * AuthorizedDomain
+    , AuthorizedDomain
+    , authorizedDomain
+    , adName
+    , adId
+
     -- * TrafficSplit
     , TrafficSplit
     , trafficSplit
@@ -93,6 +99,13 @@
     , lName
     , lVersion
 
+    -- * ResourceRecord
+    , ResourceRecord
+    , resourceRecord
+    , rrRrData
+    , rrName
+    , rrType
+
     -- * ListLocationsResponse
     , ListLocationsResponse
     , listLocationsResponse
@@ -124,6 +137,19 @@
     , hcTimeout
     , hcUnhealthyThreshold
 
+    -- * AuthorizedCertificate
+    , AuthorizedCertificate
+    , authorizedCertificate
+    , acManagedCertificate
+    , acCertificateRawData
+    , acDomainNames
+    , acDomainMAppingsCount
+    , acName
+    , acDisplayName
+    , acId
+    , acExpireTime
+    , acVisibleDomainMAppings
+
     -- * APIConfigHandler
     , APIConfigHandler
     , apiConfigHandler
@@ -138,18 +164,25 @@
     , versionEnvVariables
     , vevAddtional
 
+    -- * APIConfigHandlerSecurityLevel
+    , APIConfigHandlerSecurityLevel (..)
+
     -- * Application
     , Application
     , application
     , aDefaultHostname
     , aDefaultCookieExpiration
+    , aIap
     , aAuthDomain
     , aCodeBucket
+    , aGcrDomain
+    , aFeatureSettings
     , aName
     , aDispatchRules
     , aDefaultBucket
     , aId
     , aLocationId
+    , aServingStatus
 
     -- * VersionBetaSettings
     , VersionBetaSettings
@@ -163,17 +196,23 @@
     , sName
     , sId
 
+    -- * ErrorHandlerErrorCode
+    , ErrorHandlerErrorCode (..)
+
     -- * EndpointsAPIService
     , EndpointsAPIService
     , endpointsAPIService
+    , easDisableTraceSampling
     , easName
     , easConfigId
+    , easRolloutStrategy
 
     -- * Location
     , Location
     , location
     , locName
     , locMetadata
+    , locDisplayName
     , locLabels
     , locLocationId
 
@@ -186,12 +225,19 @@
     , oName
     , oMetadata
 
+    -- * EndpointsAPIServiceRolloutStrategy
+    , EndpointsAPIServiceRolloutStrategy (..)
+
     -- * ZipInfo
     , ZipInfo
     , zipInfo
     , ziFilesCount
     , ziSourceURL
 
+    -- * Empty
+    , Empty
+    , empty
+
     -- * URLDispatchRule
     , URLDispatchRule
     , urlDispatchRule
@@ -199,12 +245,46 @@
     , udrService
     , udrDomain
 
+    -- * OperationMetadataV1Beta
+    , OperationMetadataV1Beta
+    , operationMetadataV1Beta
+    , omvbEphemeralMessage
+    , omvbInsertTime
+    , omvbUser
+    , omvbMethod
+    , omvbEndTime
+    , omvbWarning
+    , omvbCreateVersionMetadata
+    , omvbTarget
+
+    -- * ListAuthorizedDomainsResponse
+    , ListAuthorizedDomainsResponse
+    , listAuthorizedDomainsResponse
+    , ladrNextPageToken
+    , ladrDomains
+
+    -- * Entrypoint
+    , Entrypoint
+    , entrypoint
+    , eShell
+
     -- * ListVersionsResponse
     , ListVersionsResponse
     , listVersionsResponse
     , lvrNextPageToken
     , lvrVersions
 
+    -- * ManagedCertificate
+    , ManagedCertificate
+    , managedCertificate
+    , mcStatus
+    , mcLastRenewalTime
+
+    -- * CreateVersionMetadataV1Alpha
+    , CreateVersionMetadataV1Alpha
+    , createVersionMetadataV1Alpha
+    , cvmvaCloudBuildId
+
     -- * FileInfo
     , FileInfo
     , fileInfo
@@ -227,15 +307,16 @@
     , asCoolDownPeriod
     , asRequestUtilization
     , asMaxPendingLatency
+    , asStandardSchedulerSettings
 
     -- * OperationMetadataV1Beta5
     , OperationMetadataV1Beta5
     , operationMetadataV1Beta5
-    , omvbInsertTime
-    , omvbUser
-    , omvbMethod
-    , omvbEndTime
-    , omvbTarget
+    , oInsertTime
+    , oUser
+    , oMethod
+    , oEndTime
+    , oTarget
 
     -- * Volume
     , Volume
@@ -254,6 +335,12 @@
     , statusDetailsItem
     , sdiAddtional
 
+    -- * ListIngressRulesResponse
+    , ListIngressRulesResponse
+    , listIngressRulesResponse
+    , lirrNextPageToken
+    , lirrIngressRules
+
     -- * Network
     , Network
     , network
@@ -262,6 +349,25 @@
     , nInstanceTag
     , nName
 
+    -- * APIConfigHandlerAuthFailAction
+    , APIConfigHandlerAuthFailAction (..)
+
+    -- * ReadinessCheck
+    , ReadinessCheck
+    , readinessCheck
+    , rcSuccessThreshold
+    , rcFailureThreshold
+    , rcPath
+    , rcCheckInterval
+    , rcAppStartTimeout
+    , rcHost
+    , rcTimeout
+
+    -- * BatchUpdateIngressRulesRequest
+    , BatchUpdateIngressRulesRequest
+    , batchUpdateIngressRulesRequest
+    , buirrIngressRules
+
     -- * DebugInstanceRequest
     , DebugInstanceRequest
     , debugInstanceRequest
@@ -280,22 +386,60 @@
     , rVolumes
     , rCPU
 
+    -- * FeatureSettings
+    , FeatureSettings
+    , featureSettings
+    , fsSplitHealthChecks
+
+    -- * CertificateRawData
+    , CertificateRawData
+    , certificateRawData
+    , crdPrivateKey
+    , crdPublicCertificate
+
+    -- * DomainMApping
+    , DomainMApping
+    , domainMApping
+    , dmaResourceRecords
+    , dmaName
+    , dmaId
+    , dmaSSLSettings
+
+    -- * VersionServingStatus
+    , VersionServingStatus (..)
+
     -- * DeploymentFiles
     , DeploymentFiles
     , deploymentFiles
     , dfAddtional
 
+    -- * BatchUpdateIngressRulesResponse
+    , BatchUpdateIngressRulesResponse
+    , batchUpdateIngressRulesResponse
+    , bIngressRules
+
     -- * CPUUtilization
     , CPUUtilization
     , cpuUtilization
     , cuAggregationWindowLength
     , cuTargetUtilization
 
+    -- * CreateVersionMetadataV1
+    , CreateVersionMetadataV1
+    , createVersionMetadataV1
+    , cvmvCloudBuildId
+
     -- * TrafficSplitAllocations
     , TrafficSplitAllocations
     , trafficSplitAllocations
     , tsaAddtional
 
+    -- * CloudBuildOptions
+    , CloudBuildOptions
+    , cloudBuildOptions
+    , cboCloudBuildTimeout
+    , cboAppYamlPath
+
     -- * ManualScaling
     , ManualScaling
     , manualScaling
@@ -307,6 +451,12 @@
     , bsMaxInstances
     , bsIdleTimeout
 
+    -- * URLMapSecurityLevel
+    , URLMapSecurityLevel (..)
+
+    -- * ResourceRecordType
+    , ResourceRecordType (..)
+
     -- * OperationMetadataV1
     , OperationMetadataV1
     , operationMetadataV1
@@ -316,6 +466,7 @@
     , omvMethod
     , omvEndTime
     , omvWarning
+    , omvCreateVersionMetadata
     , omvTarget
 
     -- * Version
@@ -324,9 +475,13 @@
     , verRuntime
     , verNobuildFilesRegex
     , verInstanceClass
+    , verRuntimeChannel
+    , verRuntimeMainExecutablePath
     , verHealthCheck
     , verEndpointsAPIService
     , verEnv
+    , verZones
+    , verEntrypoint
     , verDefaultExpiration
     , verAutomaticScaling
     , verErrorHandlers
@@ -334,6 +489,7 @@
     , verVM
     , verHandlers
     , verInboundServices
+    , verReadinessCheck
     , verNetwork
     , verResources
     , verName
@@ -344,6 +500,8 @@
     , verAPIConfig
     , verId
     , verEnvVariables
+    , verLivenessCheck
+    , verRuntimeAPIVersion
     , verServingStatus
     , verDiskUsageBytes
     , verCreateTime
@@ -351,6 +509,17 @@
     , verVersionURL
     , verDeployment
 
+    -- * Xgafv
+    , Xgafv (..)
+
+    -- * IdentityAwareProxy
+    , IdentityAwareProxy
+    , identityAwareProxy
+    , iapEnabled
+    , iapOAuth2ClientSecretSha256
+    , iapOAuth2ClientSecret
+    , iapOAuth2ClientId
+
     -- * StaticFilesHandler
     , StaticFilesHandler
     , staticFilesHandler
@@ -369,11 +538,31 @@
     , ehErrorCode
     , ehStaticFile
 
+    -- * TrafficSplitShardBy
+    , TrafficSplitShardBy (..)
+
+    -- * InstanceAvailability
+    , InstanceAvailability (..)
+
     -- * LocationLabels
     , LocationLabels
     , locationLabels
     , llAddtional
 
+    -- * ListAuthorizedCertificatesResponse
+    , ListAuthorizedCertificatesResponse
+    , listAuthorizedCertificatesResponse
+    , lacrNextPageToken
+    , lacrCertificates
+
+    -- * FirewallRule
+    , FirewallRule
+    , firewallRule
+    , frPriority
+    , frAction
+    , frSourceRange
+    , frDescription
+
     -- * LocationMetadata
     , LocationMetadata
     , locationMetadata
@@ -390,18 +579,53 @@
     , omOperationType
     , omTarget
 
+    -- * URLMapAuthFailAction
+    , URLMapAuthFailAction (..)
+
     -- * ListInstancesResponse
     , ListInstancesResponse
     , listInstancesResponse
     , lirNextPageToken
     , lirInstances
 
+    -- * OperationMetadataV1Alpha
+    , OperationMetadataV1Alpha
+    , operationMetadataV1Alpha
+    , omvaEphemeralMessage
+    , omvaInsertTime
+    , omvaUser
+    , omvaMethod
+    , omvaEndTime
+    , omvaWarning
+    , omvaCreateVersionMetadata
+    , omvaTarget
+
+    -- * LivenessCheck
+    , LivenessCheck
+    , livenessCheck
+    , lcSuccessThreshold
+    , lcFailureThreshold
+    , lcPath
+    , lcCheckInterval
+    , lcHost
+    , lcInitialDelay
+    , lcTimeout
+
+    -- * URLMapRedirectHTTPResponseCode
+    , URLMapRedirectHTTPResponseCode (..)
+
     -- * RequestUtilization
     , RequestUtilization
     , requestUtilization
     , ruTargetConcurrentRequests
     , ruTargetRequestCountPerSecond
 
+    -- * FirewallRuleAction
+    , FirewallRuleAction (..)
+
+    -- * SSLSettingsSSLManagementType
+    , SSLSettingsSSLManagementType (..)
+
     -- * RepairApplicationRequest
     , RepairApplicationRequest
     , repairApplicationRequest
@@ -411,6 +635,28 @@
     , operationResponse
     , orAddtional
 
+    -- * CreateVersionMetadataV1Beta
+    , CreateVersionMetadataV1Beta
+    , createVersionMetadataV1Beta
+    , cvmvbCloudBuildId
+
+    -- * ListDomainMAppingsResponse
+    , ListDomainMAppingsResponse
+    , listDomainMAppingsResponse
+    , ldmarDomainMAppings
+    , ldmarNextPageToken
+
+    -- * StandardSchedulerSettings
+    , StandardSchedulerSettings
+    , standardSchedulerSettings
+    , sssTargetCPUUtilization
+    , sssMinInstances
+    , sssMaxInstances
+    , sssTargetThroughputUtilization
+
+    -- * APIConfigHandlerLogin
+    , APIConfigHandlerLogin (..)
+
     -- * ContainerInfo
     , ContainerInfo
     , containerInfo
@@ -436,10 +682,18 @@
     , iAverageLatency
     , iAppEngineRelease
 
+    -- * SSLSettings
+    , SSLSettings
+    , sslSettings
+    , ssSSLManagementType
+    , ssCertificateId
+    , ssPendingManagedCertificateId
+
     -- * Deployment
     , Deployment
     , deployment
     , dZip
+    , dCloudBuildOptions
     , dContainer
     , dFiles
     ) where
@@ -448,7 +702,7 @@
 import           Network.Google.AppEngine.Types.Sum
 import           Network.Google.Prelude
 
--- | 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.
+-- | Default request referring to version 'v1' of the 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:v1")
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,3942 +20,5933 @@
 import           Network.Google.AppEngine.Types.Sum
 import           Network.Google.Prelude
 
--- | Metadata for the given google.longrunning.Operation.
---
--- /See:/ 'operationMetadataExperimental' smart constructor.
-data OperationMetadataExperimental = OperationMetadataExperimental'
-    { _omeInsertTime :: !(Maybe Text)
-    , _omeUser       :: !(Maybe Text)
-    , _omeMethod     :: !(Maybe Text)
-    , _omeEndTime    :: !(Maybe Text)
-    , _omeTarget     :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'OperationMetadataExperimental' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'omeInsertTime'
---
--- * 'omeUser'
---
--- * 'omeMethod'
---
--- * 'omeEndTime'
---
--- * 'omeTarget'
-operationMetadataExperimental
-    :: OperationMetadataExperimental
-operationMetadataExperimental =
-    OperationMetadataExperimental'
-    { _omeInsertTime = Nothing
-    , _omeUser = Nothing
-    , _omeMethod = Nothing
-    , _omeEndTime = Nothing
-    , _omeTarget = Nothing
-    }
-
--- | Time that this operation was created.\'OutputOnly
-omeInsertTime :: Lens' OperationMetadataExperimental (Maybe Text)
-omeInsertTime
-  = lens _omeInsertTime
-      (\ s a -> s{_omeInsertTime = a})
-
--- | User who requested this operation.\'OutputOnly
-omeUser :: Lens' OperationMetadataExperimental (Maybe Text)
-omeUser = lens _omeUser (\ s a -> s{_omeUser = a})
-
--- | API method that initiated this operation. Example:
--- google.appengine.experimental.CustomDomains.CreateCustomDomain.\'OutputOnly
-omeMethod :: Lens' OperationMetadataExperimental (Maybe Text)
-omeMethod
-  = lens _omeMethod (\ s a -> s{_omeMethod = a})
-
--- | Time that this operation completed.\'OutputOnly
-omeEndTime :: Lens' OperationMetadataExperimental (Maybe Text)
-omeEndTime
-  = lens _omeEndTime (\ s a -> s{_omeEndTime = a})
-
--- | Name of the resource that this operation is acting on. Example:
--- apps\/myapp\/customDomains\/example.com.\'OutputOnly
-omeTarget :: Lens' OperationMetadataExperimental (Maybe Text)
-omeTarget
-  = lens _omeTarget (\ s a -> s{_omeTarget = a})
-
-instance FromJSON OperationMetadataExperimental where
-        parseJSON
-          = withObject "OperationMetadataExperimental"
-              (\ o ->
-                 OperationMetadataExperimental' <$>
-                   (o .:? "insertTime") <*> (o .:? "user") <*>
-                     (o .:? "method")
-                     <*> (o .:? "endTime")
-                     <*> (o .:? "target"))
-
-instance ToJSON OperationMetadataExperimental where
-        toJSON OperationMetadataExperimental'{..}
-          = object
-              (catMaybes
-                 [("insertTime" .=) <$> _omeInsertTime,
-                  ("user" .=) <$> _omeUser,
-                  ("method" .=) <$> _omeMethod,
-                  ("endTime" .=) <$> _omeEndTime,
-                  ("target" .=) <$> _omeTarget])
-
--- | 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 needsOverviewThe 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 mappingThe 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 usesThe 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.
-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 USeurope-west - Western
--- Europeus-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])
-
--- | Cloud Endpoints (https:\/\/cloud.google.com\/endpoints) configuration.
--- The Endpoints API Service provides tooling for serving Open API and gRPC
--- endpoints via an NGINX proxy.The fields here refer to the name and
--- configuration id of a \"service\" resource in the Service Management API
--- (https:\/\/cloud.google.com\/service-management\/overview).
---
--- /See:/ 'endpointsAPIService' smart constructor.
-data EndpointsAPIService = EndpointsAPIService'
-    { _easName     :: !(Maybe Text)
-    , _easConfigId :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EndpointsAPIService' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'easName'
---
--- * 'easConfigId'
-endpointsAPIService
-    :: EndpointsAPIService
-endpointsAPIService =
-    EndpointsAPIService'
-    { _easName = Nothing
-    , _easConfigId = Nothing
-    }
-
--- | Endpoints service name which is the name of the \"service\" resource in
--- the Service Management API. For example
--- \"myapi.endpoints.myproject.cloud.goog\"
-easName :: Lens' EndpointsAPIService (Maybe Text)
-easName = lens _easName (\ s a -> s{_easName = a})
-
--- | Endpoints service configuration id as specified by the Service
--- Management API. For example \"2016-09-19r1\"
-easConfigId :: Lens' EndpointsAPIService (Maybe Text)
-easConfigId
-  = lens _easConfigId (\ s a -> s{_easConfigId = a})
-
-instance FromJSON EndpointsAPIService where
-        parseJSON
-          = withObject "EndpointsAPIService"
-              (\ o ->
-                 EndpointsAPIService' <$>
-                   (o .:? "name") <*> (o .:? "configId"))
-
-instance ToJSON EndpointsAPIService where
-        toJSON EndpointsAPIService'{..}
-          = object
-              (catMaybes
-                 [("name" .=) <$> _easName,
-                  ("configId" .=) <$> _easConfigId])
-
--- | 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 or cancellation.
-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])
-
--- | Volumes mounted within the app container. Only applicable for VM
--- runtimes.
---
--- /See:/ 'volume' smart constructor.
-data Volume = Volume'
-    { _vSizeGb     :: !(Maybe (Textual Double))
-    , _vName       :: !(Maybe Text)
-    , _vVolumeType :: !(Maybe Text)
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Volume' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vSizeGb'
---
--- * 'vName'
---
--- * 'vVolumeType'
-volume
-    :: Volume
-volume =
-    Volume'
-    { _vSizeGb = Nothing
-    , _vName = Nothing
-    , _vVolumeType = Nothing
-    }
-
--- | Volume size in gigabytes.
-vSizeGb :: Lens' Volume (Maybe Double)
-vSizeGb
-  = lens _vSizeGb (\ s a -> s{_vSizeGb = a}) .
-      mapping _Coerce
-
--- | Unique name for the volume.
-vName :: Lens' Volume (Maybe Text)
-vName = lens _vName (\ s a -> s{_vName = a})
-
--- | Underlying volume type, e.g. \'tmpfs\'.
-vVolumeType :: Lens' Volume (Maybe Text)
-vVolumeType
-  = lens _vVolumeType (\ s a -> s{_vVolumeType = a})
-
-instance FromJSON Volume where
-        parseJSON
-          = withObject "Volume"
-              (\ o ->
-                 Volume' <$>
-                   (o .:? "sizeGb") <*> (o .:? "name") <*>
-                     (o .:? "volumeType"))
-
-instance ToJSON Volume where
-        toJSON Volume'{..}
-          = object
-              (catMaybes
-                 [("sizeGb" .=) <$> _vSizeGb, ("name" .=) <$> _vName,
-                  ("volumeType" .=) <$> _vVolumeType])
-
--- | 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'
-    { _nSubnetworkName :: !(Maybe Text)
-    , _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:
---
--- * 'nSubnetworkName'
---
--- * 'nForwardedPorts'
---
--- * 'nInstanceTag'
---
--- * 'nName'
-network
-    :: Network
-network =
-    Network'
-    { _nSubnetworkName = Nothing
-    , _nForwardedPorts = Nothing
-    , _nInstanceTag = Nothing
-    , _nName = Nothing
-    }
-
--- | Google Cloud Platform sub-network where the virtual machines are
--- created. Specify the short name, not the resource path.If a subnetwork
--- name is specified, a network name will also be required unless it is for
--- the default network. If the network the VM instance is being created in
--- is a Legacy network, then the IP address is allocated from the
--- IPv4Range. If the network the VM instance is being created in is an auto
--- Subnet Mode Network, then only network name should be specified (not the
--- subnetwork_name) and the IP address is created from the IPCidrRange of
--- the subnetwork that exists in that zone for that network. If the network
--- the VM instance is being created in is a custom Subnet Mode Network,
--- then the subnetwork_name must be specified and the IP address is created
--- from the IPCidrRange of the subnetwork.If specified, the subnetwork must
--- exist in the same region as the Flex app.
-nSubnetworkName :: Lens' Network (Maybe Text)
-nSubnetworkName
-  = lens _nSubnetworkName
-      (\ s a -> s{_nSubnetworkName = a})
-
--- | 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 .:? "subnetworkName") <*>
-                     (o .:? "forwardedPorts" .!= mempty)
-                     <*> (o .:? "instanceTag")
-                     <*> (o .:? "name"))
-
-instance ToJSON Network where
-        toJSON Network'{..}
-          = object
-              (catMaybes
-                 [("subnetworkName" .=) <$> _nSubnetworkName,
-                  ("forwardedPorts" .=) <$> _nForwardedPorts,
-                  ("instanceTag" .=) <$> _nInstanceTag,
-                  ("name" .=) <$> _nName])
-
--- | Request message for Instances.DebugInstance.
---
--- /See:/ 'debugInstanceRequest' smart constructor.
-newtype DebugInstanceRequest = DebugInstanceRequest'
-    { _dirSSHKey :: Maybe Text
-    } deriving (Eq,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DebugInstanceRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dirSSHKey'
-debugInstanceRequest
-    :: DebugInstanceRequest
-debugInstanceRequest =
-    DebugInstanceRequest'
-    { _dirSSHKey = Nothing
-    }
-
--- | Public SSH key to add to the instance. Examples: [USERNAME]:ssh-rsa
--- [KEY_VALUE] [USERNAME] [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh
--- {\"userName\":\"[USERNAME]\",\"expireOn\":\"[EXPIRE_TIME]\"}For more
--- information, see Adding and Removing SSH Keys
--- (https:\/\/cloud.google.com\/compute\/docs\/instances\/adding-removing-ssh-keys).
-dirSSHKey :: Lens' DebugInstanceRequest (Maybe Text)
-dirSSHKey
-  = lens _dirSSHKey (\ s a -> s{_dirSSHKey = a})
-
-instance FromJSON DebugInstanceRequest where
-        parseJSON
-          = withObject "DebugInstanceRequest"
-              (\ o -> DebugInstanceRequest' <$> (o .:? "sshKey"))
-
-instance ToJSON DebugInstanceRequest where
-        toJSON DebugInstanceRequest'{..}
-          = object (catMaybes [("sshKey" .=) <$> _dirSSHKey])
-
--- | 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))
-    , _rVolumes  :: !(Maybe [Volume])
-    , _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'
---
--- * 'rVolumes'
---
--- * 'rCPU'
-resources
-    :: Resources
-resources =
-    Resources'
-    { _rMemoryGb = Nothing
-    , _rDiskGb = Nothing
-    , _rVolumes = 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
-
--- | User specified volumes.
-rVolumes :: Lens' Resources [Volume]
-rVolumes
-  = lens _rVolumes (\ s a -> s{_rVolumes = a}) .
-      _Default
-      . _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 .:? "volumes" .!= mempty)
-                     <*> (o .:? "cpu"))
-
-instance ToJSON Resources where
-        toJSON Resources'{..}
-          = object
-              (catMaybes
-                 [("memoryGb" .=) <$> _rMemoryGb,
-                  ("diskGb" .=) <$> _rDiskGb,
-                  ("volumes" .=) <$> _rVolumes, ("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'
-    { _omvEphemeralMessage :: !(Maybe Text)
-    , _omvInsertTime       :: !(Maybe Text)
-    , _omvUser             :: !(Maybe Text)
-    , _omvMethod           :: !(Maybe Text)
-    , _omvEndTime          :: !(Maybe Text)
-    , _omvWarning          :: !(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:
---
--- * 'omvEphemeralMessage'
---
--- * 'omvInsertTime'
---
--- * 'omvUser'
---
--- * 'omvMethod'
---
--- * 'omvEndTime'
---
--- * 'omvWarning'
---
--- * 'omvTarget'
-operationMetadataV1
-    :: OperationMetadataV1
-operationMetadataV1 =
-    OperationMetadataV1'
-    { _omvEphemeralMessage = Nothing
-    , _omvInsertTime = Nothing
-    , _omvUser = Nothing
-    , _omvMethod = Nothing
-    , _omvEndTime = Nothing
-    , _omvWarning = Nothing
-    , _omvTarget = Nothing
-    }
-
--- | Ephemeral message that may change every time the operation is polled.
--- \'OutputOnly
-omvEphemeralMessage :: Lens' OperationMetadataV1 (Maybe Text)
-omvEphemeralMessage
-  = lens _omvEphemeralMessage
-      (\ s a -> s{_omvEphemeralMessage = a})
-
--- | 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})
-
--- | Durable messages that persist on every operation poll. \'OutputOnly
-omvWarning :: Lens' OperationMetadataV1 [Text]
-omvWarning
-  = lens _omvWarning (\ s a -> s{_omvWarning = a}) .
-      _Default
-      . _Coerce
-
--- | 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 .:? "ephemeralMessage") <*> (o .:? "insertTime")
-                     <*> (o .:? "user")
-                     <*> (o .:? "method")
-                     <*> (o .:? "endTime")
-                     <*> (o .:? "warning" .!= mempty)
-                     <*> (o .:? "target"))
-
-instance ToJSON OperationMetadataV1 where
-        toJSON OperationMetadataV1'{..}
-          = object
-              (catMaybes
-                 [("ephemeralMessage" .=) <$> _omvEphemeralMessage,
-                  ("insertTime" .=) <$> _omvInsertTime,
-                  ("user" .=) <$> _omvUser,
-                  ("method" .=) <$> _omvMethod,
-                  ("endTime" .=) <$> _omvEndTime,
-                  ("warning" .=) <$> _omvWarning,
-                  ("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'
-    { _verRuntime             :: !(Maybe Text)
-    , _verNobuildFilesRegex   :: !(Maybe Text)
-    , _verInstanceClass       :: !(Maybe Text)
-    , _verHealthCheck         :: !(Maybe HealthCheck)
-    , _verEndpointsAPIService :: !(Maybe EndpointsAPIService)
-    , _verEnv                 :: !(Maybe Text)
-    , _verDefaultExpiration   :: !(Maybe Text)
-    , _verAutomaticScaling    :: !(Maybe AutomaticScaling)
-    , _verErrorHandlers       :: !(Maybe [ErrorHandler])
-    , _verCreatedBy           :: !(Maybe Text)
-    , _verVM                  :: !(Maybe Bool)
-    , _verHandlers            :: !(Maybe [URLMap])
-    , _verInboundServices     :: !(Maybe [Text])
-    , _verNetwork             :: !(Maybe Network)
-    , _verResources           :: !(Maybe Resources)
-    , _verName                :: !(Maybe Text)
-    , _verThreadsafe          :: !(Maybe Bool)
-    , _verBetaSettings        :: !(Maybe VersionBetaSettings)
-    , _verBasicScaling        :: !(Maybe BasicScaling)
-    , _verManualScaling       :: !(Maybe ManualScaling)
-    , _verAPIConfig           :: !(Maybe APIConfigHandler)
-    , _verId                  :: !(Maybe Text)
-    , _verEnvVariables        :: !(Maybe VersionEnvVariables)
-    , _verServingStatus       :: !(Maybe Text)
-    , _verDiskUsageBytes      :: !(Maybe (Textual Int64))
-    , _verCreateTime          :: !(Maybe Text)
-    , _verLibraries           :: !(Maybe [Library])
-    , _verVersionURL          :: !(Maybe Text)
-    , _verDeployment          :: !(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:
---
--- * 'verRuntime'
---
--- * 'verNobuildFilesRegex'
---
--- * 'verInstanceClass'
---
--- * 'verHealthCheck'
---
--- * 'verEndpointsAPIService'
---
--- * 'verEnv'
---
--- * 'verDefaultExpiration'
---
--- * 'verAutomaticScaling'
---
--- * 'verErrorHandlers'
---
--- * 'verCreatedBy'
---
--- * 'verVM'
---
--- * 'verHandlers'
---
--- * 'verInboundServices'
---
--- * 'verNetwork'
---
--- * 'verResources'
---
--- * 'verName'
---
--- * 'verThreadsafe'
---
--- * 'verBetaSettings'
---
--- * 'verBasicScaling'
---
--- * 'verManualScaling'
---
--- * 'verAPIConfig'
---
--- * 'verId'
---
--- * 'verEnvVariables'
---
--- * 'verServingStatus'
---
--- * 'verDiskUsageBytes'
---
--- * 'verCreateTime'
---
--- * 'verLibraries'
---
--- * 'verVersionURL'
---
--- * 'verDeployment'
-version
-    :: Version
-version =
-    Version'
-    { _verRuntime = Nothing
-    , _verNobuildFilesRegex = Nothing
-    , _verInstanceClass = Nothing
-    , _verHealthCheck = Nothing
-    , _verEndpointsAPIService = Nothing
-    , _verEnv = Nothing
-    , _verDefaultExpiration = Nothing
-    , _verAutomaticScaling = Nothing
-    , _verErrorHandlers = Nothing
-    , _verCreatedBy = Nothing
-    , _verVM = Nothing
-    , _verHandlers = Nothing
-    , _verInboundServices = Nothing
-    , _verNetwork = Nothing
-    , _verResources = Nothing
-    , _verName = Nothing
-    , _verThreadsafe = Nothing
-    , _verBetaSettings = Nothing
-    , _verBasicScaling = Nothing
-    , _verManualScaling = Nothing
-    , _verAPIConfig = Nothing
-    , _verId = Nothing
-    , _verEnvVariables = Nothing
-    , _verServingStatus = Nothing
-    , _verDiskUsageBytes = Nothing
-    , _verCreateTime = Nothing
-    , _verLibraries = Nothing
-    , _verVersionURL = Nothing
-    , _verDeployment = Nothing
-    }
-
--- | Desired runtime. Example: python27.
-verRuntime :: Lens' Version (Maybe Text)
-verRuntime
-  = lens _verRuntime (\ s a -> s{_verRuntime = 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.
-verNobuildFilesRegex :: Lens' Version (Maybe Text)
-verNobuildFilesRegex
-  = lens _verNobuildFilesRegex
-      (\ s a -> s{_verNobuildFilesRegex = 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_1GDefaults to F1 for AutomaticScaling and B1 for
--- ManualScaling or BasicScaling.
-verInstanceClass :: Lens' Version (Maybe Text)
-verInstanceClass
-  = lens _verInstanceClass
-      (\ s a -> s{_verInstanceClass = 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.
-verHealthCheck :: Lens' Version (Maybe HealthCheck)
-verHealthCheck
-  = lens _verHealthCheck
-      (\ s a -> s{_verHealthCheck = a})
-
--- | Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud
--- Endpoints Extensible Service Proxy will be provided to serve the API
--- implemented by the app.
-verEndpointsAPIService :: Lens' Version (Maybe EndpointsAPIService)
-verEndpointsAPIService
-  = lens _verEndpointsAPIService
-      (\ s a -> s{_verEndpointsAPIService = a})
-
--- | App Engine execution environment for this version.Defaults to standard.
-verEnv :: Lens' Version (Maybe Text)
-verEnv = lens _verEnv (\ s a -> s{_verEnv = 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.
-verDefaultExpiration :: Lens' Version (Maybe Text)
-verDefaultExpiration
-  = lens _verDefaultExpiration
-      (\ s a -> s{_verDefaultExpiration = a})
-
--- | Automatic scaling is based on request rate, response latencies, and
--- other application metrics.
-verAutomaticScaling :: Lens' Version (Maybe AutomaticScaling)
-verAutomaticScaling
-  = lens _verAutomaticScaling
-      (\ s a -> s{_verAutomaticScaling = a})
-
--- | Custom static error pages. Limited to 10KB per page.Only returned in GET
--- requests if view=FULL is set.
-verErrorHandlers :: Lens' Version [ErrorHandler]
-verErrorHandlers
-  = lens _verErrorHandlers
-      (\ s a -> s{_verErrorHandlers = a})
-      . _Default
-      . _Coerce
-
--- | Email address of the user who created this version.\'OutputOnly
-verCreatedBy :: Lens' Version (Maybe Text)
-verCreatedBy
-  = lens _verCreatedBy (\ s a -> s{_verCreatedBy = a})
-
--- | Whether to deploy this version in a container on a virtual machine.
-verVM :: Lens' Version (Maybe Bool)
-verVM = lens _verVM (\ s a -> s{_verVM = 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.
-verHandlers :: Lens' Version [URLMap]
-verHandlers
-  = lens _verHandlers (\ s a -> s{_verHandlers = a}) .
-      _Default
-      . _Coerce
-
--- | Before an application can receive email or XMPP messages, the
--- application must be configured to enable the service.
-verInboundServices :: Lens' Version [Text]
-verInboundServices
-  = lens _verInboundServices
-      (\ s a -> s{_verInboundServices = a})
-      . _Default
-      . _Coerce
-
--- | Extra network settings. Only applicable for VM runtimes.
-verNetwork :: Lens' Version (Maybe Network)
-verNetwork
-  = lens _verNetwork (\ s a -> s{_verNetwork = a})
-
--- | Machine resources for this version. Only applicable for VM runtimes.
-verResources :: Lens' Version (Maybe Resources)
-verResources
-  = lens _verResources (\ s a -> s{_verResources = a})
-
--- | Full path to the Version resource in the API. Example:
--- apps\/myapp\/services\/default\/versions\/v1.\'OutputOnly
-verName :: Lens' Version (Maybe Text)
-verName = lens _verName (\ s a -> s{_verName = a})
-
--- | Whether multiple requests can be dispatched to this version at once.
-verThreadsafe :: Lens' Version (Maybe Bool)
-verThreadsafe
-  = lens _verThreadsafe
-      (\ s a -> s{_verThreadsafe = a})
-
--- | Metadata settings that are supplied to this version to enable beta
--- runtime features.
-verBetaSettings :: Lens' Version (Maybe VersionBetaSettings)
-verBetaSettings
-  = lens _verBetaSettings
-      (\ s a -> s{_verBetaSettings = 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.
-verBasicScaling :: Lens' Version (Maybe BasicScaling)
-verBasicScaling
-  = lens _verBasicScaling
-      (\ s a -> s{_verBasicScaling = a})
-
--- | A service with manual scaling runs continuously, allowing you to perform
--- complex initialization and rely on the state of its memory over time.
-verManualScaling :: Lens' Version (Maybe ManualScaling)
-verManualScaling
-  = lens _verManualScaling
-      (\ s a -> s{_verManualScaling = 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.
-verAPIConfig :: Lens' Version (Maybe APIConfigHandler)
-verAPIConfig
-  = lens _verAPIConfig (\ s a -> s{_verAPIConfig = 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-\".
-verId :: Lens' Version (Maybe Text)
-verId = lens _verId (\ s a -> s{_verId = a})
-
--- | Environment variables available to the application.Only returned in GET
--- requests if view=FULL is set.
-verEnvVariables :: Lens' Version (Maybe VersionEnvVariables)
-verEnvVariables
-  = lens _verEnvVariables
-      (\ s a -> s{_verEnvVariables = 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.
-verServingStatus :: Lens' Version (Maybe Text)
-verServingStatus
-  = lens _verServingStatus
-      (\ s a -> s{_verServingStatus = a})
-
--- | Total size in bytes of all the files that are included in this version
--- and curerntly hosted on the App Engine disk.\'OutputOnly
-verDiskUsageBytes :: Lens' Version (Maybe Int64)
-verDiskUsageBytes
-  = lens _verDiskUsageBytes
-      (\ s a -> s{_verDiskUsageBytes = a})
-      . mapping _Coerce
-
--- | Time that this version was created.\'OutputOnly
-verCreateTime :: Lens' Version (Maybe Text)
-verCreateTime
-  = lens _verCreateTime
-      (\ s a -> s{_verCreateTime = a})
-
--- | Configuration for third-party Python runtime libraries that are required
--- by the application.Only returned in GET requests if view=FULL is set.
-verLibraries :: Lens' Version [Library]
-verLibraries
-  = lens _verLibraries (\ s a -> s{_verLibraries = a})
-      . _Default
-      . _Coerce
-
--- | Serving URL for this version. Example:
--- \"https:\/\/myversion-dot-myservice-dot-myapp.appspot.com\"\'OutputOnly
-verVersionURL :: Lens' Version (Maybe Text)
-verVersionURL
-  = lens _verVersionURL
-      (\ s a -> s{_verVersionURL = a})
-
--- | Code and application artifacts that make up this version.Only returned
--- in GET requests if view=FULL is set.
-verDeployment :: Lens' Version (Maybe Deployment)
-verDeployment
-  = lens _verDeployment
-      (\ s a -> s{_verDeployment = a})
-
-instance FromJSON Version where
-        parseJSON
-          = withObject "Version"
-              (\ o ->
-                 Version' <$>
-                   (o .:? "runtime") <*> (o .:? "nobuildFilesRegex") <*>
-                     (o .:? "instanceClass")
-                     <*> (o .:? "healthCheck")
-                     <*> (o .:? "endpointsApiService")
-                     <*> (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" .=) <$> _verRuntime,
-                  ("nobuildFilesRegex" .=) <$> _verNobuildFilesRegex,
-                  ("instanceClass" .=) <$> _verInstanceClass,
-                  ("healthCheck" .=) <$> _verHealthCheck,
-                  ("endpointsApiService" .=) <$>
-                    _verEndpointsAPIService,
-                  ("env" .=) <$> _verEnv,
-                  ("defaultExpiration" .=) <$> _verDefaultExpiration,
-                  ("automaticScaling" .=) <$> _verAutomaticScaling,
-                  ("errorHandlers" .=) <$> _verErrorHandlers,
-                  ("createdBy" .=) <$> _verCreatedBy,
-                  ("vm" .=) <$> _verVM,
-                  ("handlers" .=) <$> _verHandlers,
-                  ("inboundServices" .=) <$> _verInboundServices,
-                  ("network" .=) <$> _verNetwork,
-                  ("resources" .=) <$> _verResources,
-                  ("name" .=) <$> _verName,
-                  ("threadsafe" .=) <$> _verThreadsafe,
-                  ("betaSettings" .=) <$> _verBetaSettings,
-                  ("basicScaling" .=) <$> _verBasicScaling,
-                  ("manualScaling" .=) <$> _verManualScaling,
-                  ("apiConfig" .=) <$> _verAPIConfig,
-                  ("id" .=) <$> _verId,
-                  ("envVariables" .=) <$> _verEnvVariables,
-                  ("servingStatus" .=) <$> _verServingStatus,
-                  ("diskUsageBytes" .=) <$> _verDiskUsageBytes,
-                  ("createTime" .=) <$> _verCreateTime,
-                  ("libraries" .=) <$> _verLibraries,
-                  ("versionUrl" .=) <$> _verVersionURL,
-                  ("deployment" .=) <$> _verDeployment])
-
--- | 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)
-    , _iVMIP             :: !(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'
---
--- * 'iVMIP'
---
--- * 'iStartTime'
---
--- * 'iVMId'
---
--- * 'iAvailability'
---
--- * 'iVMName'
---
--- * 'iName'
---
--- * 'iVMDebugEnabled'
---
--- * 'iRequests'
---
--- * 'iQps'
---
--- * 'iId'
---
--- * 'iErrors'
---
--- * 'iAverageLatency'
---
--- * 'iAppEngineRelease'
-instance'
-    :: Instance
-instance' =
-    Instance'
-    { _iMemoryUsage = Nothing
-    , _iVMStatus = Nothing
-    , _iVMZoneName = Nothing
-    , _iVMIP = 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})
-
--- | The IP address of this instance. Only applicable for instances in App
--- Engine flexible environment.\'OutputOnly
-iVMIP :: Lens' Instance (Maybe Text)
-iVMIP = lens _iVMIP (\ s a -> s{_iVMIP = 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 .:? "vmIp")
-                     <*> (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,
-                  ("vmIp" .=) <$> _iVMIP,
-                  ("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,
+-- | Target scaling by network usage. Only applicable in the App Engine
+-- flexible environment.
+--
+-- /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 needsOverviewThe 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 that can be used for common error conditions.Language
+-- mappingThe 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 usesThe 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. 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 is 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
+
+-- | A domain that a user has been authorized to administer. To authorize use
+-- of a domain, verify ownership via Webmaster Central
+-- (https:\/\/www.google.com\/webmasters\/verification\/home).
+--
+-- /See:/ 'authorizedDomain' smart constructor.
+data AuthorizedDomain = AuthorizedDomain'
+    { _adName :: !(Maybe Text)
+    , _adId   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AuthorizedDomain' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'adName'
+--
+-- * 'adId'
+authorizedDomain
+    :: AuthorizedDomain
+authorizedDomain =
+    AuthorizedDomain'
+    { _adName = Nothing
+    , _adId = Nothing
+    }
+
+-- | Full path to the AuthorizedDomain resource in the API. Example:
+-- apps\/myapp\/authorizedDomains\/example.com.\'OutputOnly
+adName :: Lens' AuthorizedDomain (Maybe Text)
+adName = lens _adName (\ s a -> s{_adName = a})
+
+-- | Fully qualified domain name of the domain authorized for use. Example:
+-- example.com.
+adId :: Lens' AuthorizedDomain (Maybe Text)
+adId = lens _adId (\ s a -> s{_adId = a})
+
+instance FromJSON AuthorizedDomain where
+        parseJSON
+          = withObject "AuthorizedDomain"
+              (\ o ->
+                 AuthorizedDomain' <$>
+                   (o .:? "name") <*> (o .:? "id"))
+
+instance ToJSON AuthorizedDomain where
+        toJSON AuthorizedDomain'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _adName, ("id" .=) <$> _adId])
+
+-- | 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 TrafficSplitShardBy)
+    , _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 TrafficSplitShardBy)
+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 URLMapSecurityLevel)
+    , _umAPIEndpoint              :: !(Maybe APIEndpointHandler)
+    , _umURLRegex                 :: !(Maybe Text)
+    , _umRedirectHTTPResponseCode :: !(Maybe URLMapRedirectHTTPResponseCode)
+    , _umAuthFailAction           :: !(Maybe URLMapAuthFailAction)
+    , _umStaticFiles              :: !(Maybe StaticFilesHandler)
+    , _umLogin                    :: !(Maybe URLMapLogin)
+    } 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 requests that match this URL pattern.
+-- Only the auto value is supported for Node.js in the App Engine standard
+-- environment, for example \"script\": \"auto\".
+umScript :: Lens' URLMap (Maybe ScriptHandler)
+umScript = lens _umScript (\ s a -> s{_umScript = a})
+
+-- | Security (HTTPS) enforcement for this URL.
+umSecurityLevel :: Lens' URLMap (Maybe URLMapSecurityLevel)
+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 URLMapRedirectHTTPResponseCode)
+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 URLMapAuthFailAction)
+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. Not supported for
+-- Node.js in the App Engine standard environment.
+umLogin :: Lens' URLMap (Maybe URLMapLogin)
+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])
+
+-- | A DNS resource record.
+--
+-- /See:/ 'resourceRecord' smart constructor.
+data ResourceRecord = ResourceRecord'
+    { _rrRrData :: !(Maybe Text)
+    , _rrName   :: !(Maybe Text)
+    , _rrType   :: !(Maybe ResourceRecordType)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceRecord' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rrRrData'
+--
+-- * 'rrName'
+--
+-- * 'rrType'
+resourceRecord
+    :: ResourceRecord
+resourceRecord =
+    ResourceRecord'
+    { _rrRrData = Nothing
+    , _rrName = Nothing
+    , _rrType = Nothing
+    }
+
+-- | Data for this record. Values vary by record type, as defined in RFC 1035
+-- (section 5) and RFC 1034 (section 3.6.1).
+rrRrData :: Lens' ResourceRecord (Maybe Text)
+rrRrData = lens _rrRrData (\ s a -> s{_rrRrData = a})
+
+-- | Relative name of the object affected by this record. Only applicable for
+-- CNAME records. Example: \'www\'.
+rrName :: Lens' ResourceRecord (Maybe Text)
+rrName = lens _rrName (\ s a -> s{_rrName = a})
+
+-- | Resource record type. Example: AAAA.
+rrType :: Lens' ResourceRecord (Maybe ResourceRecordType)
+rrType = lens _rrType (\ s a -> s{_rrType = a})
+
+instance FromJSON ResourceRecord where
+        parseJSON
+          = withObject "ResourceRecord"
+              (\ o ->
+                 ResourceRecord' <$>
+                   (o .:? "rrdata") <*> (o .:? "name") <*>
+                     (o .:? "type"))
+
+instance ToJSON ResourceRecord where
+        toJSON ResourceRecord'{..}
+          = object
+              (catMaybes
+                 [("rrdata" .=) <$> _rrRrData,
+                  ("name" .=) <$> _rrName, ("type" .=) <$> _rrType])
+
+-- | The response message for Locations.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 in the App Engine flexible
+-- environment.
+--
+-- /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 GDuration)
+    , _hcRestartThreshold   :: !(Maybe (Textual Word32))
+    , _hcHost               :: !(Maybe Text)
+    , _hcTimeout            :: !(Maybe GDuration)
+    , _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 Scientific)
+hcCheckInterval
+  = lens _hcCheckInterval
+      (\ s a -> s{_hcCheckInterval = a})
+      . mapping _GDuration
+
+-- | 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 Scientific)
+hcTimeout
+  = lens _hcTimeout (\ s a -> s{_hcTimeout = a}) .
+      mapping _GDuration
+
+-- | 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])
+
+-- | An SSL certificate that a user has been authorized to administer. A user
+-- is authorized to administer any certificate that applies to one of their
+-- authorized domains.
+--
+-- /See:/ 'authorizedCertificate' smart constructor.
+data AuthorizedCertificate = AuthorizedCertificate'
+    { _acManagedCertificate    :: !(Maybe ManagedCertificate)
+    , _acCertificateRawData    :: !(Maybe CertificateRawData)
+    , _acDomainNames           :: !(Maybe [Text])
+    , _acDomainMAppingsCount   :: !(Maybe (Textual Int32))
+    , _acName                  :: !(Maybe Text)
+    , _acDisplayName           :: !(Maybe Text)
+    , _acId                    :: !(Maybe Text)
+    , _acExpireTime            :: !(Maybe DateTime')
+    , _acVisibleDomainMAppings :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AuthorizedCertificate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acManagedCertificate'
+--
+-- * 'acCertificateRawData'
+--
+-- * 'acDomainNames'
+--
+-- * 'acDomainMAppingsCount'
+--
+-- * 'acName'
+--
+-- * 'acDisplayName'
+--
+-- * 'acId'
+--
+-- * 'acExpireTime'
+--
+-- * 'acVisibleDomainMAppings'
+authorizedCertificate
+    :: AuthorizedCertificate
+authorizedCertificate =
+    AuthorizedCertificate'
+    { _acManagedCertificate = Nothing
+    , _acCertificateRawData = Nothing
+    , _acDomainNames = Nothing
+    , _acDomainMAppingsCount = Nothing
+    , _acName = Nothing
+    , _acDisplayName = Nothing
+    , _acId = Nothing
+    , _acExpireTime = Nothing
+    , _acVisibleDomainMAppings = Nothing
+    }
+
+-- | Only applicable if this certificate is managed by App Engine. Managed
+-- certificates are tied to the lifecycle of a DomainMapping and cannot be
+-- updated or deleted via the AuthorizedCertificates API. If this
+-- certificate is manually administered by the user, this field will be
+-- empty.\'OutputOnly
+acManagedCertificate :: Lens' AuthorizedCertificate (Maybe ManagedCertificate)
+acManagedCertificate
+  = lens _acManagedCertificate
+      (\ s a -> s{_acManagedCertificate = a})
+
+-- | The SSL certificate serving the AuthorizedCertificate resource. This
+-- must be obtained independently from a certificate authority.
+acCertificateRawData :: Lens' AuthorizedCertificate (Maybe CertificateRawData)
+acCertificateRawData
+  = lens _acCertificateRawData
+      (\ s a -> s{_acCertificateRawData = a})
+
+-- | Topmost applicable domains of this certificate. This certificate applies
+-- to these domains and their subdomains. Example: example.com.\'OutputOnly
+acDomainNames :: Lens' AuthorizedCertificate [Text]
+acDomainNames
+  = lens _acDomainNames
+      (\ s a -> s{_acDomainNames = a})
+      . _Default
+      . _Coerce
+
+-- | Aggregate count of the domain mappings with this certificate mapped.
+-- This count includes domain mappings on applications for which the user
+-- does not have VIEWER permissions.Only returned by GET or LIST requests
+-- when specifically requested by the view=FULL_CERTIFICATE
+-- option.\'OutputOnly
+acDomainMAppingsCount :: Lens' AuthorizedCertificate (Maybe Int32)
+acDomainMAppingsCount
+  = lens _acDomainMAppingsCount
+      (\ s a -> s{_acDomainMAppingsCount = a})
+      . mapping _Coerce
+
+-- | Full path to the AuthorizedCertificate resource in the API. Example:
+-- apps\/myapp\/authorizedCertificates\/12345.\'OutputOnly
+acName :: Lens' AuthorizedCertificate (Maybe Text)
+acName = lens _acName (\ s a -> s{_acName = a})
+
+-- | The user-specified display name of the certificate. This is not
+-- guaranteed to be unique. Example: My Certificate.
+acDisplayName :: Lens' AuthorizedCertificate (Maybe Text)
+acDisplayName
+  = lens _acDisplayName
+      (\ s a -> s{_acDisplayName = a})
+
+-- | Relative name of the certificate. This is a unique value autogenerated
+-- on AuthorizedCertificate resource creation. Example: 12345.\'OutputOnly
+acId :: Lens' AuthorizedCertificate (Maybe Text)
+acId = lens _acId (\ s a -> s{_acId = a})
+
+-- | The time when this certificate expires. To update the renewal time on
+-- this certificate, upload an SSL certificate with a different expiration
+-- time using
+-- AuthorizedCertificates.UpdateAuthorizedCertificate.\'OutputOnly
+acExpireTime :: Lens' AuthorizedCertificate (Maybe UTCTime)
+acExpireTime
+  = lens _acExpireTime (\ s a -> s{_acExpireTime = a})
+      . mapping _DateTime
+
+-- | The full paths to user visible Domain Mapping resources that have this
+-- certificate mapped. Example:
+-- apps\/myapp\/domainMappings\/example.com.This may not represent the full
+-- list of mapped domain mappings if the user does not have VIEWER
+-- permissions on all of the applications that have this certificate
+-- mapped. See domain_mappings_count for a complete count.Only returned by
+-- GET or LIST requests when specifically requested by the
+-- view=FULL_CERTIFICATE option.\'OutputOnly
+acVisibleDomainMAppings :: Lens' AuthorizedCertificate [Text]
+acVisibleDomainMAppings
+  = lens _acVisibleDomainMAppings
+      (\ s a -> s{_acVisibleDomainMAppings = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON AuthorizedCertificate where
+        parseJSON
+          = withObject "AuthorizedCertificate"
+              (\ o ->
+                 AuthorizedCertificate' <$>
+                   (o .:? "managedCertificate") <*>
+                     (o .:? "certificateRawData")
+                     <*> (o .:? "domainNames" .!= mempty)
+                     <*> (o .:? "domainMappingsCount")
+                     <*> (o .:? "name")
+                     <*> (o .:? "displayName")
+                     <*> (o .:? "id")
+                     <*> (o .:? "expireTime")
+                     <*> (o .:? "visibleDomainMappings" .!= mempty))
+
+instance ToJSON AuthorizedCertificate where
+        toJSON AuthorizedCertificate'{..}
+          = object
+              (catMaybes
+                 [("managedCertificate" .=) <$> _acManagedCertificate,
+                  ("certificateRawData" .=) <$> _acCertificateRawData,
+                  ("domainNames" .=) <$> _acDomainNames,
+                  ("domainMappingsCount" .=) <$>
+                    _acDomainMAppingsCount,
+                  ("name" .=) <$> _acName,
+                  ("displayName" .=) <$> _acDisplayName,
+                  ("id" .=) <$> _acId,
+                  ("expireTime" .=) <$> _acExpireTime,
+                  ("visibleDomainMappings" .=) <$>
+                    _acVisibleDomainMAppings])
+
+-- | 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 APIConfigHandlerSecurityLevel)
+    , _achURL            :: !(Maybe Text)
+    , _achAuthFailAction :: !(Maybe APIConfigHandlerAuthFailAction)
+    , _achLogin          :: !(Maybe APIConfigHandlerLogin)
+    } 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 APIConfigHandlerSecurityLevel)
+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 APIConfigHandlerAuthFailAction)
+achAuthFailAction
+  = lens _achAuthFailAction
+      (\ s a -> s{_achAuthFailAction = a})
+
+-- | Level of login required to access this resource. Defaults to optional.
+achLogin :: Lens' APIConfigHandler (Maybe APIConfigHandlerLogin)
+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 GDuration)
+    , _aIap                     :: !(Maybe IdentityAwareProxy)
+    , _aAuthDomain              :: !(Maybe Text)
+    , _aCodeBucket              :: !(Maybe Text)
+    , _aGcrDomain               :: !(Maybe Text)
+    , _aFeatureSettings         :: !(Maybe FeatureSettings)
+    , _aName                    :: !(Maybe Text)
+    , _aDispatchRules           :: !(Maybe [URLDispatchRule])
+    , _aDefaultBucket           :: !(Maybe Text)
+    , _aId                      :: !(Maybe Text)
+    , _aLocationId              :: !(Maybe Text)
+    , _aServingStatus           :: !(Maybe ApplicationServingStatus)
+    } 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'
+--
+-- * 'aIap'
+--
+-- * 'aAuthDomain'
+--
+-- * 'aCodeBucket'
+--
+-- * 'aGcrDomain'
+--
+-- * 'aFeatureSettings'
+--
+-- * 'aName'
+--
+-- * 'aDispatchRules'
+--
+-- * 'aDefaultBucket'
+--
+-- * 'aId'
+--
+-- * 'aLocationId'
+--
+-- * 'aServingStatus'
+application
+    :: Application
+application =
+    Application'
+    { _aDefaultHostname = Nothing
+    , _aDefaultCookieExpiration = Nothing
+    , _aIap = Nothing
+    , _aAuthDomain = Nothing
+    , _aCodeBucket = Nothing
+    , _aGcrDomain = Nothing
+    , _aFeatureSettings = Nothing
+    , _aName = Nothing
+    , _aDispatchRules = Nothing
+    , _aDefaultBucket = Nothing
+    , _aId = Nothing
+    , _aLocationId = Nothing
+    , _aServingStatus = 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.
+aDefaultCookieExpiration :: Lens' Application (Maybe Scientific)
+aDefaultCookieExpiration
+  = lens _aDefaultCookieExpiration
+      (\ s a -> s{_aDefaultCookieExpiration = a})
+      . mapping _GDuration
+
+aIap :: Lens' Application (Maybe IdentityAwareProxy)
+aIap = lens _aIap (\ s a -> s{_aIap = 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})
+
+-- | The Google Container Registry domain used for storing managed build
+-- docker images for this application.
+aGcrDomain :: Lens' Application (Maybe Text)
+aGcrDomain
+  = lens _aGcrDomain (\ s a -> s{_aGcrDomain = a})
+
+-- | The feature specific settings to be used in the application.
+aFeatureSettings :: Lens' Application (Maybe FeatureSettings)
+aFeatureSettings
+  = lens _aFeatureSettings
+      (\ s a -> s{_aFeatureSettings = 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. Up to
+-- 20 dispatch rules can be supported.
+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 runs. Application instances run out
+-- of the data centers in the specified location, which is also where all
+-- of the application\'s end user content is stored.Defaults to
+-- us-central.View the list of supported locations
+-- (https:\/\/cloud.google.com\/appengine\/docs\/locations).
+aLocationId :: Lens' Application (Maybe Text)
+aLocationId
+  = lens _aLocationId (\ s a -> s{_aLocationId = a})
+
+-- | Serving status of this application.
+aServingStatus :: Lens' Application (Maybe ApplicationServingStatus)
+aServingStatus
+  = lens _aServingStatus
+      (\ s a -> s{_aServingStatus = a})
+
+instance FromJSON Application where
+        parseJSON
+          = withObject "Application"
+              (\ o ->
+                 Application' <$>
+                   (o .:? "defaultHostname") <*>
+                     (o .:? "defaultCookieExpiration")
+                     <*> (o .:? "iap")
+                     <*> (o .:? "authDomain")
+                     <*> (o .:? "codeBucket")
+                     <*> (o .:? "gcrDomain")
+                     <*> (o .:? "featureSettings")
+                     <*> (o .:? "name")
+                     <*> (o .:? "dispatchRules" .!= mempty)
+                     <*> (o .:? "defaultBucket")
+                     <*> (o .:? "id")
+                     <*> (o .:? "locationId")
+                     <*> (o .:? "servingStatus"))
+
+instance ToJSON Application where
+        toJSON Application'{..}
+          = object
+              (catMaybes
+                 [("defaultHostname" .=) <$> _aDefaultHostname,
+                  ("defaultCookieExpiration" .=) <$>
+                    _aDefaultCookieExpiration,
+                  ("iap" .=) <$> _aIap,
+                  ("authDomain" .=) <$> _aAuthDomain,
+                  ("codeBucket" .=) <$> _aCodeBucket,
+                  ("gcrDomain" .=) <$> _aGcrDomain,
+                  ("featureSettings" .=) <$> _aFeatureSettings,
+                  ("name" .=) <$> _aName,
+                  ("dispatchRules" .=) <$> _aDispatchRules,
+                  ("defaultBucket" .=) <$> _aDefaultBucket,
+                  ("id" .=) <$> _aId,
+                  ("locationId" .=) <$> _aLocationId,
+                  ("servingStatus" .=) <$> _aServingStatus])
+
+-- | 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])
+
+-- | Cloud Endpoints (https:\/\/cloud.google.com\/endpoints) configuration.
+-- The Endpoints API Service provides tooling for serving Open API and gRPC
+-- endpoints via an NGINX proxy. Only valid for App Engine Flexible
+-- environment deployments.The fields here refer to the name and
+-- configuration ID of a \"service\" resource in the Service Management API
+-- (https:\/\/cloud.google.com\/service-management\/overview).
+--
+-- /See:/ 'endpointsAPIService' smart constructor.
+data EndpointsAPIService = EndpointsAPIService'
+    { _easDisableTraceSampling :: !(Maybe Bool)
+    , _easName                 :: !(Maybe Text)
+    , _easConfigId             :: !(Maybe Text)
+    , _easRolloutStrategy      :: !(Maybe EndpointsAPIServiceRolloutStrategy)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EndpointsAPIService' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'easDisableTraceSampling'
+--
+-- * 'easName'
+--
+-- * 'easConfigId'
+--
+-- * 'easRolloutStrategy'
+endpointsAPIService
+    :: EndpointsAPIService
+endpointsAPIService =
+    EndpointsAPIService'
+    { _easDisableTraceSampling = Nothing
+    , _easName = Nothing
+    , _easConfigId = Nothing
+    , _easRolloutStrategy = Nothing
+    }
+
+-- | Enable or disable trace sampling. By default, this is set to false for
+-- enabled.
+easDisableTraceSampling :: Lens' EndpointsAPIService (Maybe Bool)
+easDisableTraceSampling
+  = lens _easDisableTraceSampling
+      (\ s a -> s{_easDisableTraceSampling = a})
+
+-- | Endpoints service name which is the name of the \"service\" resource in
+-- the Service Management API. For example
+-- \"myapi.endpoints.myproject.cloud.goog\"
+easName :: Lens' EndpointsAPIService (Maybe Text)
+easName = lens _easName (\ s a -> s{_easName = a})
+
+-- | Endpoints service configuration ID as specified by the Service
+-- Management API. For example \"2016-09-19r1\".By default, the rollout
+-- strategy for Endpoints is RolloutStrategy.FIXED. This means that
+-- Endpoints starts up with a particular configuration ID. When a new
+-- configuration is rolled out, Endpoints must be given the new
+-- configuration ID. The config_id field is used to give the configuration
+-- ID and is required in this case.Endpoints also has a rollout strategy
+-- called RolloutStrategy.MANAGED. When using this, Endpoints fetches the
+-- latest configuration and does not need the configuration ID. In this
+-- case, config_id must be omitted.
+easConfigId :: Lens' EndpointsAPIService (Maybe Text)
+easConfigId
+  = lens _easConfigId (\ s a -> s{_easConfigId = a})
+
+-- | Endpoints rollout strategy. If FIXED, config_id must be specified. If
+-- MANAGED, config_id must be omitted.
+easRolloutStrategy :: Lens' EndpointsAPIService (Maybe EndpointsAPIServiceRolloutStrategy)
+easRolloutStrategy
+  = lens _easRolloutStrategy
+      (\ s a -> s{_easRolloutStrategy = a})
+
+instance FromJSON EndpointsAPIService where
+        parseJSON
+          = withObject "EndpointsAPIService"
+              (\ o ->
+                 EndpointsAPIService' <$>
+                   (o .:? "disableTraceSampling") <*> (o .:? "name") <*>
+                     (o .:? "configId")
+                     <*> (o .:? "rolloutStrategy"))
+
+instance ToJSON EndpointsAPIService where
+        toJSON EndpointsAPIService'{..}
+          = object
+              (catMaybes
+                 [("disableTraceSampling" .=) <$>
+                    _easDisableTraceSampling,
+                  ("name" .=) <$> _easName,
+                  ("configId" .=) <$> _easConfigId,
+                  ("rolloutStrategy" .=) <$> _easRolloutStrategy])
+
+-- | A resource that represents Google Cloud Platform location.
+--
+-- /See:/ 'location' smart constructor.
+data Location = Location'
+    { _locName        :: !(Maybe Text)
+    , _locMetadata    :: !(Maybe LocationSchema)
+    , _locDisplayName :: !(Maybe Text)
+    , _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'
+--
+-- * 'locDisplayName'
+--
+-- * 'locLabels'
+--
+-- * 'locLocationId'
+location
+    :: Location
+location =
+    Location'
+    { _locName = Nothing
+    , _locMetadata = Nothing
+    , _locDisplayName = 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})
+
+-- | The friendly name for this location, typically a nearby city name. For
+-- example, \"Tokyo\".
+locDisplayName :: Lens' Location (Maybe Text)
+locDisplayName
+  = lens _locDisplayName
+      (\ s a -> s{_locDisplayName = 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 .:? "displayName")
+                     <*> (o .:? "labels")
+                     <*> (o .:? "locationId"))
+
+instance ToJSON Location where
+        toJSON Location'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _locName,
+                  ("metadata" .=) <$> _locMetadata,
+                  ("displayName" .=) <$> _locDisplayName,
+                  ("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 or cancellation.
+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])
+
+-- | A generic empty message that you can re-use to avoid defining duplicated
+-- empty messages in your APIs. A typical example is to use it as the
+-- request or the response type of an API method. For instance: service Foo
+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The
+-- JSON representation for Empty is empty JSON object {}.
+--
+-- /See:/ 'empty' smart constructor.
+data Empty =
+    Empty'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Empty' with the minimum fields required to make a request.
+--
+empty
+    :: Empty
+empty = Empty'
+
+instance FromJSON Empty where
+        parseJSON = withObject "Empty" (\ o -> pure Empty')
+
+instance ToJSON Empty where
+        toJSON = const emptyObject
+
+-- | 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])
+
+-- | Metadata for the given google.longrunning.Operation.
+--
+-- /See:/ 'operationMetadataV1Beta' smart constructor.
+data OperationMetadataV1Beta = OperationMetadataV1Beta'
+    { _omvbEphemeralMessage      :: !(Maybe Text)
+    , _omvbInsertTime            :: !(Maybe DateTime')
+    , _omvbUser                  :: !(Maybe Text)
+    , _omvbMethod                :: !(Maybe Text)
+    , _omvbEndTime               :: !(Maybe DateTime')
+    , _omvbWarning               :: !(Maybe [Text])
+    , _omvbCreateVersionMetadata :: !(Maybe CreateVersionMetadataV1Beta)
+    , _omvbTarget                :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationMetadataV1Beta' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'omvbEphemeralMessage'
+--
+-- * 'omvbInsertTime'
+--
+-- * 'omvbUser'
+--
+-- * 'omvbMethod'
+--
+-- * 'omvbEndTime'
+--
+-- * 'omvbWarning'
+--
+-- * 'omvbCreateVersionMetadata'
+--
+-- * 'omvbTarget'
+operationMetadataV1Beta
+    :: OperationMetadataV1Beta
+operationMetadataV1Beta =
+    OperationMetadataV1Beta'
+    { _omvbEphemeralMessage = Nothing
+    , _omvbInsertTime = Nothing
+    , _omvbUser = Nothing
+    , _omvbMethod = Nothing
+    , _omvbEndTime = Nothing
+    , _omvbWarning = Nothing
+    , _omvbCreateVersionMetadata = Nothing
+    , _omvbTarget = Nothing
+    }
+
+-- | Ephemeral message that may change every time the operation is polled.
+-- \'OutputOnly
+omvbEphemeralMessage :: Lens' OperationMetadataV1Beta (Maybe Text)
+omvbEphemeralMessage
+  = lens _omvbEphemeralMessage
+      (\ s a -> s{_omvbEphemeralMessage = a})
+
+-- | Time that this operation was created.\'OutputOnly
+omvbInsertTime :: Lens' OperationMetadataV1Beta (Maybe UTCTime)
+omvbInsertTime
+  = lens _omvbInsertTime
+      (\ s a -> s{_omvbInsertTime = a})
+      . mapping _DateTime
+
+-- | User who requested this operation.\'OutputOnly
+omvbUser :: Lens' OperationMetadataV1Beta (Maybe Text)
+omvbUser = lens _omvbUser (\ s a -> s{_omvbUser = a})
+
+-- | API method that initiated this operation. Example:
+-- google.appengine.v1beta.Versions.CreateVersion.\'OutputOnly
+omvbMethod :: Lens' OperationMetadataV1Beta (Maybe Text)
+omvbMethod
+  = lens _omvbMethod (\ s a -> s{_omvbMethod = a})
+
+-- | Time that this operation completed.\'OutputOnly
+omvbEndTime :: Lens' OperationMetadataV1Beta (Maybe UTCTime)
+omvbEndTime
+  = lens _omvbEndTime (\ s a -> s{_omvbEndTime = a}) .
+      mapping _DateTime
+
+-- | Durable messages that persist on every operation poll. \'OutputOnly
+omvbWarning :: Lens' OperationMetadataV1Beta [Text]
+omvbWarning
+  = lens _omvbWarning (\ s a -> s{_omvbWarning = a}) .
+      _Default
+      . _Coerce
+
+omvbCreateVersionMetadata :: Lens' OperationMetadataV1Beta (Maybe CreateVersionMetadataV1Beta)
+omvbCreateVersionMetadata
+  = lens _omvbCreateVersionMetadata
+      (\ s a -> s{_omvbCreateVersionMetadata = a})
+
+-- | Name of the resource that this operation is acting on. Example:
+-- apps\/myapp\/services\/default.\'OutputOnly
+omvbTarget :: Lens' OperationMetadataV1Beta (Maybe Text)
+omvbTarget
+  = lens _omvbTarget (\ s a -> s{_omvbTarget = a})
+
+instance FromJSON OperationMetadataV1Beta where
+        parseJSON
+          = withObject "OperationMetadataV1Beta"
+              (\ o ->
+                 OperationMetadataV1Beta' <$>
+                   (o .:? "ephemeralMessage") <*> (o .:? "insertTime")
+                     <*> (o .:? "user")
+                     <*> (o .:? "method")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "warning" .!= mempty)
+                     <*> (o .:? "createVersionMetadata")
+                     <*> (o .:? "target"))
+
+instance ToJSON OperationMetadataV1Beta where
+        toJSON OperationMetadataV1Beta'{..}
+          = object
+              (catMaybes
+                 [("ephemeralMessage" .=) <$> _omvbEphemeralMessage,
+                  ("insertTime" .=) <$> _omvbInsertTime,
+                  ("user" .=) <$> _omvbUser,
+                  ("method" .=) <$> _omvbMethod,
+                  ("endTime" .=) <$> _omvbEndTime,
+                  ("warning" .=) <$> _omvbWarning,
+                  ("createVersionMetadata" .=) <$>
+                    _omvbCreateVersionMetadata,
+                  ("target" .=) <$> _omvbTarget])
+
+-- | Response message for AuthorizedDomains.ListAuthorizedDomains.
+--
+-- /See:/ 'listAuthorizedDomainsResponse' smart constructor.
+data ListAuthorizedDomainsResponse = ListAuthorizedDomainsResponse'
+    { _ladrNextPageToken :: !(Maybe Text)
+    , _ladrDomains       :: !(Maybe [AuthorizedDomain])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAuthorizedDomainsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ladrNextPageToken'
+--
+-- * 'ladrDomains'
+listAuthorizedDomainsResponse
+    :: ListAuthorizedDomainsResponse
+listAuthorizedDomainsResponse =
+    ListAuthorizedDomainsResponse'
+    { _ladrNextPageToken = Nothing
+    , _ladrDomains = Nothing
+    }
+
+-- | Continuation token for fetching the next page of results.
+ladrNextPageToken :: Lens' ListAuthorizedDomainsResponse (Maybe Text)
+ladrNextPageToken
+  = lens _ladrNextPageToken
+      (\ s a -> s{_ladrNextPageToken = a})
+
+-- | The authorized domains belonging to the user.
+ladrDomains :: Lens' ListAuthorizedDomainsResponse [AuthorizedDomain]
+ladrDomains
+  = lens _ladrDomains (\ s a -> s{_ladrDomains = a}) .
+      _Default
+      . _Coerce
+
+instance FromJSON ListAuthorizedDomainsResponse where
+        parseJSON
+          = withObject "ListAuthorizedDomainsResponse"
+              (\ o ->
+                 ListAuthorizedDomainsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "domains" .!= mempty))
+
+instance ToJSON ListAuthorizedDomainsResponse where
+        toJSON ListAuthorizedDomainsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _ladrNextPageToken,
+                  ("domains" .=) <$> _ladrDomains])
+
+-- | The entrypoint for the application.
+--
+-- /See:/ 'entrypoint' smart constructor.
+newtype Entrypoint = Entrypoint'
+    { _eShell :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Entrypoint' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eShell'
+entrypoint
+    :: Entrypoint
+entrypoint =
+    Entrypoint'
+    { _eShell = Nothing
+    }
+
+-- | The format should be a shell command that can be fed to bash -c.
+eShell :: Lens' Entrypoint (Maybe Text)
+eShell = lens _eShell (\ s a -> s{_eShell = a})
+
+instance FromJSON Entrypoint where
+        parseJSON
+          = withObject "Entrypoint"
+              (\ o -> Entrypoint' <$> (o .:? "shell"))
+
+instance ToJSON Entrypoint where
+        toJSON Entrypoint'{..}
+          = object (catMaybes [("shell" .=) <$> _eShell])
+
+-- | 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])
+
+-- | A certificate managed by App Engine.
+--
+-- /See:/ 'managedCertificate' smart constructor.
+data ManagedCertificate = ManagedCertificate'
+    { _mcStatus          :: !(Maybe ManagedCertificateStatus)
+    , _mcLastRenewalTime :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ManagedCertificate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mcStatus'
+--
+-- * 'mcLastRenewalTime'
+managedCertificate
+    :: ManagedCertificate
+managedCertificate =
+    ManagedCertificate'
+    { _mcStatus = Nothing
+    , _mcLastRenewalTime = Nothing
+    }
+
+-- | Status of certificate management. Refers to the most recent certificate
+-- acquisition or renewal attempt.\'OutputOnly
+mcStatus :: Lens' ManagedCertificate (Maybe ManagedCertificateStatus)
+mcStatus = lens _mcStatus (\ s a -> s{_mcStatus = a})
+
+-- | Time at which the certificate was last renewed. The renewal process is
+-- fully managed. Certificate renewal will automatically occur before the
+-- certificate expires. Renewal errors can be tracked via
+-- ManagementStatus.\'OutputOnly
+mcLastRenewalTime :: Lens' ManagedCertificate (Maybe UTCTime)
+mcLastRenewalTime
+  = lens _mcLastRenewalTime
+      (\ s a -> s{_mcLastRenewalTime = a})
+      . mapping _DateTime
+
+instance FromJSON ManagedCertificate where
+        parseJSON
+          = withObject "ManagedCertificate"
+              (\ o ->
+                 ManagedCertificate' <$>
+                   (o .:? "status") <*> (o .:? "lastRenewalTime"))
+
+instance ToJSON ManagedCertificate where
+        toJSON ManagedCertificate'{..}
+          = object
+              (catMaybes
+                 [("status" .=) <$> _mcStatus,
+                  ("lastRenewalTime" .=) <$> _mcLastRenewalTime])
+
+-- | Metadata for the given google.longrunning.Operation during a
+-- google.appengine.v1alpha.CreateVersionRequest.
+--
+-- /See:/ 'createVersionMetadataV1Alpha' smart constructor.
+newtype CreateVersionMetadataV1Alpha = CreateVersionMetadataV1Alpha'
+    { _cvmvaCloudBuildId :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateVersionMetadataV1Alpha' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cvmvaCloudBuildId'
+createVersionMetadataV1Alpha
+    :: CreateVersionMetadataV1Alpha
+createVersionMetadataV1Alpha =
+    CreateVersionMetadataV1Alpha'
+    { _cvmvaCloudBuildId = Nothing
+    }
+
+-- | The Cloud Build ID if one was created as part of the version create.
+-- \'OutputOnly
+cvmvaCloudBuildId :: Lens' CreateVersionMetadataV1Alpha (Maybe Text)
+cvmvaCloudBuildId
+  = lens _cvmvaCloudBuildId
+      (\ s a -> s{_cvmvaCloudBuildId = a})
+
+instance FromJSON CreateVersionMetadataV1Alpha where
+        parseJSON
+          = withObject "CreateVersionMetadataV1Alpha"
+              (\ o ->
+                 CreateVersionMetadataV1Alpha' <$>
+                   (o .:? "cloudBuildId"))
+
+instance ToJSON CreateVersionMetadataV1Alpha where
+        toJSON CreateVersionMetadataV1Alpha'{..}
+          = object
+              (catMaybes
+                 [("cloudBuildId" .=) <$> _cvmvaCloudBuildId])
+
+-- | 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 GDuration)
+    , _asCPUUtilization            :: !(Maybe CPUUtilization)
+    , _asMaxIdleInstances          :: !(Maybe (Textual Int32))
+    , _asMinTotalInstances         :: !(Maybe (Textual Int32))
+    , _asMaxConcurrentRequests     :: !(Maybe (Textual Int32))
+    , _asCoolDownPeriod            :: !(Maybe GDuration)
+    , _asRequestUtilization        :: !(Maybe RequestUtilization)
+    , _asMaxPendingLatency         :: !(Maybe GDuration)
+    , _asStandardSchedulerSettings :: !(Maybe StandardSchedulerSettings)
+    } 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'
+--
+-- * 'asStandardSchedulerSettings'
+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
+    , _asStandardSchedulerSettings = 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
+-- for this version.
+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 Scientific)
+asMinPendingLatency
+  = lens _asMinPendingLatency
+      (\ s a -> s{_asMinPendingLatency = a})
+      . mapping _GDuration
+
+-- | 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 running 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
+
+-- | The time period that the Autoscaler
+-- (https:\/\/cloud.google.com\/compute\/docs\/autoscaler\/) should wait
+-- before it starts collecting information from a new instance. This
+-- prevents the autoscaler from collecting information when the instance is
+-- initializing, during which the collected usage would not be reliable.
+-- Only applicable in the App Engine flexible environment.
+asCoolDownPeriod :: Lens' AutomaticScaling (Maybe Scientific)
+asCoolDownPeriod
+  = lens _asCoolDownPeriod
+      (\ s a -> s{_asCoolDownPeriod = a})
+      . mapping _GDuration
+
+-- | 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 Scientific)
+asMaxPendingLatency
+  = lens _asMaxPendingLatency
+      (\ s a -> s{_asMaxPendingLatency = a})
+      . mapping _GDuration
+
+-- | Scheduler settings for standard environment.
+asStandardSchedulerSettings :: Lens' AutomaticScaling (Maybe StandardSchedulerSettings)
+asStandardSchedulerSettings
+  = lens _asStandardSchedulerSettings
+      (\ s a -> s{_asStandardSchedulerSettings = 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")
+                     <*> (o .:? "standardSchedulerSettings"))
+
+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,
+                  ("standardSchedulerSettings" .=) <$>
+                    _asStandardSchedulerSettings])
+
+-- | Metadata for the given google.longrunning.Operation.
+--
+-- /See:/ 'operationMetadataV1Beta5' smart constructor.
+data OperationMetadataV1Beta5 = OperationMetadataV1Beta5'
+    { _oInsertTime :: !(Maybe DateTime')
+    , _oUser       :: !(Maybe Text)
+    , _oMethod     :: !(Maybe Text)
+    , _oEndTime    :: !(Maybe DateTime')
+    , _oTarget     :: !(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:
+--
+-- * 'oInsertTime'
+--
+-- * 'oUser'
+--
+-- * 'oMethod'
+--
+-- * 'oEndTime'
+--
+-- * 'oTarget'
+operationMetadataV1Beta5
+    :: OperationMetadataV1Beta5
+operationMetadataV1Beta5 =
+    OperationMetadataV1Beta5'
+    { _oInsertTime = Nothing
+    , _oUser = Nothing
+    , _oMethod = Nothing
+    , _oEndTime = Nothing
+    , _oTarget = Nothing
+    }
+
+-- | Timestamp that this operation was created.\'OutputOnly
+oInsertTime :: Lens' OperationMetadataV1Beta5 (Maybe UTCTime)
+oInsertTime
+  = lens _oInsertTime (\ s a -> s{_oInsertTime = a}) .
+      mapping _DateTime
+
+-- | User who requested this operation.\'OutputOnly
+oUser :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+oUser = lens _oUser (\ s a -> s{_oUser = a})
+
+-- | API method name that initiated this operation. Example:
+-- google.appengine.v1beta5.Version.CreateVersion.\'OutputOnly
+oMethod :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+oMethod = lens _oMethod (\ s a -> s{_oMethod = a})
+
+-- | Timestamp that this operation completed.\'OutputOnly
+oEndTime :: Lens' OperationMetadataV1Beta5 (Maybe UTCTime)
+oEndTime
+  = lens _oEndTime (\ s a -> s{_oEndTime = a}) .
+      mapping _DateTime
+
+-- | Name of the resource that this operation is acting on. Example:
+-- apps\/myapp\/services\/default.\'OutputOnly
+oTarget :: Lens' OperationMetadataV1Beta5 (Maybe Text)
+oTarget = lens _oTarget (\ s a -> s{_oTarget = 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" .=) <$> _oInsertTime,
+                  ("user" .=) <$> _oUser, ("method" .=) <$> _oMethod,
+                  ("endTime" .=) <$> _oEndTime,
+                  ("target" .=) <$> _oTarget])
+
+-- | Volumes mounted within the app container. Only applicable in the App
+-- Engine flexible environment.
+--
+-- /See:/ 'volume' smart constructor.
+data Volume = Volume'
+    { _vSizeGb     :: !(Maybe (Textual Double))
+    , _vName       :: !(Maybe Text)
+    , _vVolumeType :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Volume' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vSizeGb'
+--
+-- * 'vName'
+--
+-- * 'vVolumeType'
+volume
+    :: Volume
+volume =
+    Volume'
+    { _vSizeGb = Nothing
+    , _vName = Nothing
+    , _vVolumeType = Nothing
+    }
+
+-- | Volume size in gigabytes.
+vSizeGb :: Lens' Volume (Maybe Double)
+vSizeGb
+  = lens _vSizeGb (\ s a -> s{_vSizeGb = a}) .
+      mapping _Coerce
+
+-- | Unique name for the volume.
+vName :: Lens' Volume (Maybe Text)
+vName = lens _vName (\ s a -> s{_vName = a})
+
+-- | Underlying volume type, e.g. \'tmpfs\'.
+vVolumeType :: Lens' Volume (Maybe Text)
+vVolumeType
+  = lens _vVolumeType (\ s a -> s{_vVolumeType = a})
+
+instance FromJSON Volume where
+        parseJSON
+          = withObject "Volume"
+              (\ o ->
+                 Volume' <$>
+                   (o .:? "sizeGb") <*> (o .:? "name") <*>
+                     (o .:? "volumeType"))
+
+instance ToJSON Volume where
+        toJSON Volume'{..}
+          = object
+              (catMaybes
+                 [("sizeGb" .=) <$> _vSizeGb, ("name" .=) <$> _vName,
+                  ("volumeType" .=) <$> _vVolumeType])
+
+-- | 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
+
+-- | Response message for Firewall.ListIngressRules.
+--
+-- /See:/ 'listIngressRulesResponse' smart constructor.
+data ListIngressRulesResponse = ListIngressRulesResponse'
+    { _lirrNextPageToken :: !(Maybe Text)
+    , _lirrIngressRules  :: !(Maybe [FirewallRule])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListIngressRulesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lirrNextPageToken'
+--
+-- * 'lirrIngressRules'
+listIngressRulesResponse
+    :: ListIngressRulesResponse
+listIngressRulesResponse =
+    ListIngressRulesResponse'
+    { _lirrNextPageToken = Nothing
+    , _lirrIngressRules = Nothing
+    }
+
+-- | Continuation token for fetching the next page of results.
+lirrNextPageToken :: Lens' ListIngressRulesResponse (Maybe Text)
+lirrNextPageToken
+  = lens _lirrNextPageToken
+      (\ s a -> s{_lirrNextPageToken = a})
+
+-- | The ingress FirewallRules for this application.
+lirrIngressRules :: Lens' ListIngressRulesResponse [FirewallRule]
+lirrIngressRules
+  = lens _lirrIngressRules
+      (\ s a -> s{_lirrIngressRules = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListIngressRulesResponse where
+        parseJSON
+          = withObject "ListIngressRulesResponse"
+              (\ o ->
+                 ListIngressRulesResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "ingressRules" .!= mempty))
+
+instance ToJSON ListIngressRulesResponse where
+        toJSON ListIngressRulesResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lirrNextPageToken,
+                  ("ingressRules" .=) <$> _lirrIngressRules])
+
+-- | Extra network settings. Only applicable in the App Engine flexible
+-- environment.
+--
+-- /See:/ 'network' smart constructor.
+data Network = Network'
+    { _nSubnetworkName :: !(Maybe Text)
+    , _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:
+--
+-- * 'nSubnetworkName'
+--
+-- * 'nForwardedPorts'
+--
+-- * 'nInstanceTag'
+--
+-- * 'nName'
+network
+    :: Network
+network =
+    Network'
+    { _nSubnetworkName = Nothing
+    , _nForwardedPorts = Nothing
+    , _nInstanceTag = Nothing
+    , _nName = Nothing
+    }
+
+-- | Google Cloud Platform sub-network where the virtual machines are
+-- created. Specify the short name, not the resource path.If a subnetwork
+-- name is specified, a network name will also be required unless it is for
+-- the default network. If the network that the instance is being created
+-- in is a Legacy network, then the IP address is allocated from the
+-- IPv4Range. If the network that the instance is being created in is an
+-- auto Subnet Mode Network, then only network name should be specified
+-- (not the subnetwork_name) and the IP address is created from the
+-- IPCidrRange of the subnetwork that exists in that zone for that network.
+-- If the network that the instance is being created in is a custom Subnet
+-- Mode Network, then the subnetwork_name must be specified and the IP
+-- address is created from the IPCidrRange of the subnetwork.If specified,
+-- the subnetwork must exist in the same region as the App Engine flexible
+-- environment application.
+nSubnetworkName :: Lens' Network (Maybe Text)
+nSubnetworkName
+  = lens _nSubnetworkName
+      (\ s a -> s{_nSubnetworkName = a})
+
+-- | List of ports, or port pairs, to forward from the virtual machine to the
+-- application container. Only applicable in the App Engine flexible
+-- environment.
+nForwardedPorts :: Lens' Network [Text]
+nForwardedPorts
+  = lens _nForwardedPorts
+      (\ s a -> s{_nForwardedPorts = a})
+      . _Default
+      . _Coerce
+
+-- | Tag to apply to the instance during creation. Only applicable in the App
+-- Engine flexible environment.
+nInstanceTag :: Lens' Network (Maybe Text)
+nInstanceTag
+  = lens _nInstanceTag (\ s a -> s{_nInstanceTag = a})
+
+-- | Google Compute Engine 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 .:? "subnetworkName") <*>
+                     (o .:? "forwardedPorts" .!= mempty)
+                     <*> (o .:? "instanceTag")
+                     <*> (o .:? "name"))
+
+instance ToJSON Network where
+        toJSON Network'{..}
+          = object
+              (catMaybes
+                 [("subnetworkName" .=) <$> _nSubnetworkName,
+                  ("forwardedPorts" .=) <$> _nForwardedPorts,
+                  ("instanceTag" .=) <$> _nInstanceTag,
+                  ("name" .=) <$> _nName])
+
+-- | Readiness checking configuration for VM instances. Unhealthy instances
+-- are removed from traffic rotation.
+--
+-- /See:/ 'readinessCheck' smart constructor.
+data ReadinessCheck = ReadinessCheck'
+    { _rcSuccessThreshold :: !(Maybe (Textual Word32))
+    , _rcFailureThreshold :: !(Maybe (Textual Word32))
+    , _rcPath             :: !(Maybe Text)
+    , _rcCheckInterval    :: !(Maybe GDuration)
+    , _rcAppStartTimeout  :: !(Maybe GDuration)
+    , _rcHost             :: !(Maybe Text)
+    , _rcTimeout          :: !(Maybe GDuration)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ReadinessCheck' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcSuccessThreshold'
+--
+-- * 'rcFailureThreshold'
+--
+-- * 'rcPath'
+--
+-- * 'rcCheckInterval'
+--
+-- * 'rcAppStartTimeout'
+--
+-- * 'rcHost'
+--
+-- * 'rcTimeout'
+readinessCheck
+    :: ReadinessCheck
+readinessCheck =
+    ReadinessCheck'
+    { _rcSuccessThreshold = Nothing
+    , _rcFailureThreshold = Nothing
+    , _rcPath = Nothing
+    , _rcCheckInterval = Nothing
+    , _rcAppStartTimeout = Nothing
+    , _rcHost = Nothing
+    , _rcTimeout = Nothing
+    }
+
+-- | Number of consecutive successful checks required before receiving
+-- traffic.
+rcSuccessThreshold :: Lens' ReadinessCheck (Maybe Word32)
+rcSuccessThreshold
+  = lens _rcSuccessThreshold
+      (\ s a -> s{_rcSuccessThreshold = a})
+      . mapping _Coerce
+
+-- | Number of consecutive failed checks required before removing traffic.
+rcFailureThreshold :: Lens' ReadinessCheck (Maybe Word32)
+rcFailureThreshold
+  = lens _rcFailureThreshold
+      (\ s a -> s{_rcFailureThreshold = a})
+      . mapping _Coerce
+
+-- | The request path.
+rcPath :: Lens' ReadinessCheck (Maybe Text)
+rcPath = lens _rcPath (\ s a -> s{_rcPath = a})
+
+-- | Interval between health checks.
+rcCheckInterval :: Lens' ReadinessCheck (Maybe Scientific)
+rcCheckInterval
+  = lens _rcCheckInterval
+      (\ s a -> s{_rcCheckInterval = a})
+      . mapping _GDuration
+
+-- | A maximum time limit on application initialization, measured from moment
+-- the application successfully replies to a healthcheck until it is ready
+-- to serve traffic.
+rcAppStartTimeout :: Lens' ReadinessCheck (Maybe Scientific)
+rcAppStartTimeout
+  = lens _rcAppStartTimeout
+      (\ s a -> s{_rcAppStartTimeout = a})
+      . mapping _GDuration
+
+-- | Host header to send when performing a HTTP Readiness check. Example:
+-- \"myapp.appspot.com\"
+rcHost :: Lens' ReadinessCheck (Maybe Text)
+rcHost = lens _rcHost (\ s a -> s{_rcHost = a})
+
+-- | Time before the check is considered failed.
+rcTimeout :: Lens' ReadinessCheck (Maybe Scientific)
+rcTimeout
+  = lens _rcTimeout (\ s a -> s{_rcTimeout = a}) .
+      mapping _GDuration
+
+instance FromJSON ReadinessCheck where
+        parseJSON
+          = withObject "ReadinessCheck"
+              (\ o ->
+                 ReadinessCheck' <$>
+                   (o .:? "successThreshold") <*>
+                     (o .:? "failureThreshold")
+                     <*> (o .:? "path")
+                     <*> (o .:? "checkInterval")
+                     <*> (o .:? "appStartTimeout")
+                     <*> (o .:? "host")
+                     <*> (o .:? "timeout"))
+
+instance ToJSON ReadinessCheck where
+        toJSON ReadinessCheck'{..}
+          = object
+              (catMaybes
+                 [("successThreshold" .=) <$> _rcSuccessThreshold,
+                  ("failureThreshold" .=) <$> _rcFailureThreshold,
+                  ("path" .=) <$> _rcPath,
+                  ("checkInterval" .=) <$> _rcCheckInterval,
+                  ("appStartTimeout" .=) <$> _rcAppStartTimeout,
+                  ("host" .=) <$> _rcHost,
+                  ("timeout" .=) <$> _rcTimeout])
+
+-- | Request message for Firewall.BatchUpdateIngressRules.
+--
+-- /See:/ 'batchUpdateIngressRulesRequest' smart constructor.
+newtype BatchUpdateIngressRulesRequest = BatchUpdateIngressRulesRequest'
+    { _buirrIngressRules :: Maybe [FirewallRule]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BatchUpdateIngressRulesRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'buirrIngressRules'
+batchUpdateIngressRulesRequest
+    :: BatchUpdateIngressRulesRequest
+batchUpdateIngressRulesRequest =
+    BatchUpdateIngressRulesRequest'
+    { _buirrIngressRules = Nothing
+    }
+
+-- | A list of FirewallRules to replace the existing set.
+buirrIngressRules :: Lens' BatchUpdateIngressRulesRequest [FirewallRule]
+buirrIngressRules
+  = lens _buirrIngressRules
+      (\ s a -> s{_buirrIngressRules = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON BatchUpdateIngressRulesRequest
+         where
+        parseJSON
+          = withObject "BatchUpdateIngressRulesRequest"
+              (\ o ->
+                 BatchUpdateIngressRulesRequest' <$>
+                   (o .:? "ingressRules" .!= mempty))
+
+instance ToJSON BatchUpdateIngressRulesRequest where
+        toJSON BatchUpdateIngressRulesRequest'{..}
+          = object
+              (catMaybes
+                 [("ingressRules" .=) <$> _buirrIngressRules])
+
+-- | Request message for Instances.DebugInstance.
+--
+-- /See:/ 'debugInstanceRequest' smart constructor.
+newtype DebugInstanceRequest = DebugInstanceRequest'
+    { _dirSSHKey :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DebugInstanceRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dirSSHKey'
+debugInstanceRequest
+    :: DebugInstanceRequest
+debugInstanceRequest =
+    DebugInstanceRequest'
+    { _dirSSHKey = Nothing
+    }
+
+-- | Public SSH key to add to the instance. Examples: [USERNAME]:ssh-rsa
+-- [KEY_VALUE] [USERNAME] [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh
+-- {\"userName\":\"[USERNAME]\",\"expireOn\":\"[EXPIRE_TIME]\"}For more
+-- information, see Adding and Removing SSH Keys
+-- (https:\/\/cloud.google.com\/compute\/docs\/instances\/adding-removing-ssh-keys).
+dirSSHKey :: Lens' DebugInstanceRequest (Maybe Text)
+dirSSHKey
+  = lens _dirSSHKey (\ s a -> s{_dirSSHKey = a})
+
+instance FromJSON DebugInstanceRequest where
+        parseJSON
+          = withObject "DebugInstanceRequest"
+              (\ o -> DebugInstanceRequest' <$> (o .:? "sshKey"))
+
+instance ToJSON DebugInstanceRequest where
+        toJSON DebugInstanceRequest'{..}
+          = object (catMaybes [("sshKey" .=) <$> _dirSSHKey])
+
+-- | 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))
+    , _rVolumes  :: !(Maybe [Volume])
+    , _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'
+--
+-- * 'rVolumes'
+--
+-- * 'rCPU'
+resources
+    :: Resources
+resources =
+    Resources'
+    { _rMemoryGb = Nothing
+    , _rDiskGb = Nothing
+    , _rVolumes = 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
+
+-- | User specified volumes.
+rVolumes :: Lens' Resources [Volume]
+rVolumes
+  = lens _rVolumes (\ s a -> s{_rVolumes = a}) .
+      _Default
+      . _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 .:? "volumes" .!= mempty)
+                     <*> (o .:? "cpu"))
+
+instance ToJSON Resources where
+        toJSON Resources'{..}
+          = object
+              (catMaybes
+                 [("memoryGb" .=) <$> _rMemoryGb,
+                  ("diskGb" .=) <$> _rDiskGb,
+                  ("volumes" .=) <$> _rVolumes, ("cpu" .=) <$> _rCPU])
+
+-- | The feature specific settings to be used in the application. These
+-- define behaviors that are user configurable.
+--
+-- /See:/ 'featureSettings' smart constructor.
+newtype FeatureSettings = FeatureSettings'
+    { _fsSplitHealthChecks :: Maybe Bool
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FeatureSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fsSplitHealthChecks'
+featureSettings
+    :: FeatureSettings
+featureSettings =
+    FeatureSettings'
+    { _fsSplitHealthChecks = Nothing
+    }
+
+-- | Boolean value indicating if split health checks should be used instead
+-- of the legacy health checks. At an app.yaml level, this means defaulting
+-- to \'readiness_check\' and \'liveness_check\' values instead of
+-- \'health_check\' ones. Once the legacy \'health_check\' behavior is
+-- deprecated, and this value is always true, this setting can be removed.
+fsSplitHealthChecks :: Lens' FeatureSettings (Maybe Bool)
+fsSplitHealthChecks
+  = lens _fsSplitHealthChecks
+      (\ s a -> s{_fsSplitHealthChecks = a})
+
+instance FromJSON FeatureSettings where
+        parseJSON
+          = withObject "FeatureSettings"
+              (\ o ->
+                 FeatureSettings' <$> (o .:? "splitHealthChecks"))
+
+instance ToJSON FeatureSettings where
+        toJSON FeatureSettings'{..}
+          = object
+              (catMaybes
+                 [("splitHealthChecks" .=) <$> _fsSplitHealthChecks])
+
+-- | An SSL certificate obtained from a certificate authority.
+--
+-- /See:/ 'certificateRawData' smart constructor.
+data CertificateRawData = CertificateRawData'
+    { _crdPrivateKey        :: !(Maybe Text)
+    , _crdPublicCertificate :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CertificateRawData' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crdPrivateKey'
+--
+-- * 'crdPublicCertificate'
+certificateRawData
+    :: CertificateRawData
+certificateRawData =
+    CertificateRawData'
+    { _crdPrivateKey = Nothing
+    , _crdPublicCertificate = Nothing
+    }
+
+-- | Unencrypted PEM encoded RSA private key. This field is set once on
+-- certificate creation and then encrypted. The key size must be 2048 bits
+-- or fewer. Must include the header and footer. Example:
+--
+-- >  -----BEGIN RSA PRIVATE KEY-----  -----END RSA PRIVATE KEY-----
+--
+-- \'InputOnly
+crdPrivateKey :: Lens' CertificateRawData (Maybe Text)
+crdPrivateKey
+  = lens _crdPrivateKey
+      (\ s a -> s{_crdPrivateKey = a})
+
+-- | PEM encoded x.509 public key certificate. This field is set once on
+-- certificate creation. Must include the header and footer. Example:
+--
+-- >  -----BEGIN CERTIFICATE-----  -----END CERTIFICATE-----
+crdPublicCertificate :: Lens' CertificateRawData (Maybe Text)
+crdPublicCertificate
+  = lens _crdPublicCertificate
+      (\ s a -> s{_crdPublicCertificate = a})
+
+instance FromJSON CertificateRawData where
+        parseJSON
+          = withObject "CertificateRawData"
+              (\ o ->
+                 CertificateRawData' <$>
+                   (o .:? "privateKey") <*> (o .:? "publicCertificate"))
+
+instance ToJSON CertificateRawData where
+        toJSON CertificateRawData'{..}
+          = object
+              (catMaybes
+                 [("privateKey" .=) <$> _crdPrivateKey,
+                  ("publicCertificate" .=) <$> _crdPublicCertificate])
+
+-- | A domain serving an App Engine application.
+--
+-- /See:/ 'domainMApping' smart constructor.
+data DomainMApping = DomainMApping'
+    { _dmaResourceRecords :: !(Maybe [ResourceRecord])
+    , _dmaName            :: !(Maybe Text)
+    , _dmaId              :: !(Maybe Text)
+    , _dmaSSLSettings     :: !(Maybe SSLSettings)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DomainMApping' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dmaResourceRecords'
+--
+-- * 'dmaName'
+--
+-- * 'dmaId'
+--
+-- * 'dmaSSLSettings'
+domainMApping
+    :: DomainMApping
+domainMApping =
+    DomainMApping'
+    { _dmaResourceRecords = Nothing
+    , _dmaName = Nothing
+    , _dmaId = Nothing
+    , _dmaSSLSettings = Nothing
+    }
+
+-- | The resource records required to configure this domain mapping. These
+-- records must be added to the domain\'s DNS configuration in order to
+-- serve the application via this domain mapping.\'OutputOnly
+dmaResourceRecords :: Lens' DomainMApping [ResourceRecord]
+dmaResourceRecords
+  = lens _dmaResourceRecords
+      (\ s a -> s{_dmaResourceRecords = a})
+      . _Default
+      . _Coerce
+
+-- | Full path to the DomainMapping resource in the API. Example:
+-- apps\/myapp\/domainMapping\/example.com.\'OutputOnly
+dmaName :: Lens' DomainMApping (Maybe Text)
+dmaName = lens _dmaName (\ s a -> s{_dmaName = a})
+
+-- | Relative name of the domain serving the application. Example:
+-- example.com.
+dmaId :: Lens' DomainMApping (Maybe Text)
+dmaId = lens _dmaId (\ s a -> s{_dmaId = a})
+
+-- | SSL configuration for this domain. If unconfigured, this domain will not
+-- serve with SSL.
+dmaSSLSettings :: Lens' DomainMApping (Maybe SSLSettings)
+dmaSSLSettings
+  = lens _dmaSSLSettings
+      (\ s a -> s{_dmaSSLSettings = a})
+
+instance FromJSON DomainMApping where
+        parseJSON
+          = withObject "DomainMApping"
+              (\ o ->
+                 DomainMApping' <$>
+                   (o .:? "resourceRecords" .!= mempty) <*>
+                     (o .:? "name")
+                     <*> (o .:? "id")
+                     <*> (o .:? "sslSettings"))
+
+instance ToJSON DomainMApping where
+        toJSON DomainMApping'{..}
+          = object
+              (catMaybes
+                 [("resourceRecords" .=) <$> _dmaResourceRecords,
+                  ("name" .=) <$> _dmaName, ("id" .=) <$> _dmaId,
+                  ("sslSettings" .=) <$> _dmaSSLSettings])
+
+-- | 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
+
+-- | Response message for Firewall.UpdateAllIngressRules.
+--
+-- /See:/ 'batchUpdateIngressRulesResponse' smart constructor.
+newtype BatchUpdateIngressRulesResponse = BatchUpdateIngressRulesResponse'
+    { _bIngressRules :: Maybe [FirewallRule]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BatchUpdateIngressRulesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bIngressRules'
+batchUpdateIngressRulesResponse
+    :: BatchUpdateIngressRulesResponse
+batchUpdateIngressRulesResponse =
+    BatchUpdateIngressRulesResponse'
+    { _bIngressRules = Nothing
+    }
+
+-- | The full list of ingress FirewallRules for this application.
+bIngressRules :: Lens' BatchUpdateIngressRulesResponse [FirewallRule]
+bIngressRules
+  = lens _bIngressRules
+      (\ s a -> s{_bIngressRules = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON BatchUpdateIngressRulesResponse
+         where
+        parseJSON
+          = withObject "BatchUpdateIngressRulesResponse"
+              (\ o ->
+                 BatchUpdateIngressRulesResponse' <$>
+                   (o .:? "ingressRules" .!= mempty))
+
+instance ToJSON BatchUpdateIngressRulesResponse where
+        toJSON BatchUpdateIngressRulesResponse'{..}
+          = object
+              (catMaybes [("ingressRules" .=) <$> _bIngressRules])
+
+-- | Target scaling by CPU usage.
+--
+-- /See:/ 'cpuUtilization' smart constructor.
+data CPUUtilization = CPUUtilization'
+    { _cuAggregationWindowLength :: !(Maybe GDuration)
+    , _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 Scientific)
+cuAggregationWindowLength
+  = lens _cuAggregationWindowLength
+      (\ s a -> s{_cuAggregationWindowLength = a})
+      . mapping _GDuration
+
+-- | 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])
+
+-- | Metadata for the given google.longrunning.Operation during a
+-- google.appengine.v1.CreateVersionRequest.
+--
+-- /See:/ 'createVersionMetadataV1' smart constructor.
+newtype CreateVersionMetadataV1 = CreateVersionMetadataV1'
+    { _cvmvCloudBuildId :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateVersionMetadataV1' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cvmvCloudBuildId'
+createVersionMetadataV1
+    :: CreateVersionMetadataV1
+createVersionMetadataV1 =
+    CreateVersionMetadataV1'
+    { _cvmvCloudBuildId = Nothing
+    }
+
+-- | The Cloud Build ID if one was created as part of the version create.
+-- \'OutputOnly
+cvmvCloudBuildId :: Lens' CreateVersionMetadataV1 (Maybe Text)
+cvmvCloudBuildId
+  = lens _cvmvCloudBuildId
+      (\ s a -> s{_cvmvCloudBuildId = a})
+
+instance FromJSON CreateVersionMetadataV1 where
+        parseJSON
+          = withObject "CreateVersionMetadataV1"
+              (\ o ->
+                 CreateVersionMetadataV1' <$> (o .:? "cloudBuildId"))
+
+instance ToJSON CreateVersionMetadataV1 where
+        toJSON CreateVersionMetadataV1'{..}
+          = object
+              (catMaybes
+                 [("cloudBuildId" .=) <$> _cvmvCloudBuildId])
+
+-- | 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
+
+-- | Options for the build operations performed as a part of the version
+-- deployment. Only applicable for App Engine flexible environment when
+-- creating a version using source code directly.
+--
+-- /See:/ 'cloudBuildOptions' smart constructor.
+data CloudBuildOptions = CloudBuildOptions'
+    { _cboCloudBuildTimeout :: !(Maybe GDuration)
+    , _cboAppYamlPath       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CloudBuildOptions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cboCloudBuildTimeout'
+--
+-- * 'cboAppYamlPath'
+cloudBuildOptions
+    :: CloudBuildOptions
+cloudBuildOptions =
+    CloudBuildOptions'
+    { _cboCloudBuildTimeout = Nothing
+    , _cboAppYamlPath = Nothing
+    }
+
+-- | The Cloud Build timeout used as part of any dependent builds performed
+-- by version creation. Defaults to 10 minutes.
+cboCloudBuildTimeout :: Lens' CloudBuildOptions (Maybe Scientific)
+cboCloudBuildTimeout
+  = lens _cboCloudBuildTimeout
+      (\ s a -> s{_cboCloudBuildTimeout = a})
+      . mapping _GDuration
+
+-- | Path to the yaml file used in deployment, used to determine runtime
+-- configuration details.Required for flexible environment builds.See
+-- https:\/\/cloud.google.com\/appengine\/docs\/standard\/python\/config\/appref
+-- for more details.
+cboAppYamlPath :: Lens' CloudBuildOptions (Maybe Text)
+cboAppYamlPath
+  = lens _cboAppYamlPath
+      (\ s a -> s{_cboAppYamlPath = a})
+
+instance FromJSON CloudBuildOptions where
+        parseJSON
+          = withObject "CloudBuildOptions"
+              (\ o ->
+                 CloudBuildOptions' <$>
+                   (o .:? "cloudBuildTimeout") <*>
+                     (o .:? "appYamlPath"))
+
+instance ToJSON CloudBuildOptions where
+        toJSON CloudBuildOptions'{..}
+          = object
+              (catMaybes
+                 [("cloudBuildTimeout" .=) <$> _cboCloudBuildTimeout,
+                  ("appYamlPath" .=) <$> _cboAppYamlPath])
+
+-- | 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 GDuration)
+    } 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 Scientific)
+bsIdleTimeout
+  = lens _bsIdleTimeout
+      (\ s a -> s{_bsIdleTimeout = a})
+      . mapping _GDuration
+
+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'
+    { _omvEphemeralMessage      :: !(Maybe Text)
+    , _omvInsertTime            :: !(Maybe DateTime')
+    , _omvUser                  :: !(Maybe Text)
+    , _omvMethod                :: !(Maybe Text)
+    , _omvEndTime               :: !(Maybe DateTime')
+    , _omvWarning               :: !(Maybe [Text])
+    , _omvCreateVersionMetadata :: !(Maybe CreateVersionMetadataV1)
+    , _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:
+--
+-- * 'omvEphemeralMessage'
+--
+-- * 'omvInsertTime'
+--
+-- * 'omvUser'
+--
+-- * 'omvMethod'
+--
+-- * 'omvEndTime'
+--
+-- * 'omvWarning'
+--
+-- * 'omvCreateVersionMetadata'
+--
+-- * 'omvTarget'
+operationMetadataV1
+    :: OperationMetadataV1
+operationMetadataV1 =
+    OperationMetadataV1'
+    { _omvEphemeralMessage = Nothing
+    , _omvInsertTime = Nothing
+    , _omvUser = Nothing
+    , _omvMethod = Nothing
+    , _omvEndTime = Nothing
+    , _omvWarning = Nothing
+    , _omvCreateVersionMetadata = Nothing
+    , _omvTarget = Nothing
+    }
+
+-- | Ephemeral message that may change every time the operation is polled.
+-- \'OutputOnly
+omvEphemeralMessage :: Lens' OperationMetadataV1 (Maybe Text)
+omvEphemeralMessage
+  = lens _omvEphemeralMessage
+      (\ s a -> s{_omvEphemeralMessage = a})
+
+-- | Time that this operation was created.\'OutputOnly
+omvInsertTime :: Lens' OperationMetadataV1 (Maybe UTCTime)
+omvInsertTime
+  = lens _omvInsertTime
+      (\ s a -> s{_omvInsertTime = a})
+      . mapping _DateTime
+
+-- | 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 UTCTime)
+omvEndTime
+  = lens _omvEndTime (\ s a -> s{_omvEndTime = a}) .
+      mapping _DateTime
+
+-- | Durable messages that persist on every operation poll. \'OutputOnly
+omvWarning :: Lens' OperationMetadataV1 [Text]
+omvWarning
+  = lens _omvWarning (\ s a -> s{_omvWarning = a}) .
+      _Default
+      . _Coerce
+
+omvCreateVersionMetadata :: Lens' OperationMetadataV1 (Maybe CreateVersionMetadataV1)
+omvCreateVersionMetadata
+  = lens _omvCreateVersionMetadata
+      (\ s a -> s{_omvCreateVersionMetadata = 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 .:? "ephemeralMessage") <*> (o .:? "insertTime")
+                     <*> (o .:? "user")
+                     <*> (o .:? "method")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "warning" .!= mempty)
+                     <*> (o .:? "createVersionMetadata")
+                     <*> (o .:? "target"))
+
+instance ToJSON OperationMetadataV1 where
+        toJSON OperationMetadataV1'{..}
+          = object
+              (catMaybes
+                 [("ephemeralMessage" .=) <$> _omvEphemeralMessage,
+                  ("insertTime" .=) <$> _omvInsertTime,
+                  ("user" .=) <$> _omvUser,
+                  ("method" .=) <$> _omvMethod,
+                  ("endTime" .=) <$> _omvEndTime,
+                  ("warning" .=) <$> _omvWarning,
+                  ("createVersionMetadata" .=) <$>
+                    _omvCreateVersionMetadata,
+                  ("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'
+    { _verRuntime                   :: !(Maybe Text)
+    , _verNobuildFilesRegex         :: !(Maybe Text)
+    , _verInstanceClass             :: !(Maybe Text)
+    , _verRuntimeChannel            :: !(Maybe Text)
+    , _verRuntimeMainExecutablePath :: !(Maybe Text)
+    , _verHealthCheck               :: !(Maybe HealthCheck)
+    , _verEndpointsAPIService       :: !(Maybe EndpointsAPIService)
+    , _verEnv                       :: !(Maybe Text)
+    , _verZones                     :: !(Maybe [Text])
+    , _verEntrypoint                :: !(Maybe Entrypoint)
+    , _verDefaultExpiration         :: !(Maybe GDuration)
+    , _verAutomaticScaling          :: !(Maybe AutomaticScaling)
+    , _verErrorHandlers             :: !(Maybe [ErrorHandler])
+    , _verCreatedBy                 :: !(Maybe Text)
+    , _verVM                        :: !(Maybe Bool)
+    , _verHandlers                  :: !(Maybe [URLMap])
+    , _verInboundServices           :: !(Maybe [Text])
+    , _verReadinessCheck            :: !(Maybe ReadinessCheck)
+    , _verNetwork                   :: !(Maybe Network)
+    , _verResources                 :: !(Maybe Resources)
+    , _verName                      :: !(Maybe Text)
+    , _verThreadsafe                :: !(Maybe Bool)
+    , _verBetaSettings              :: !(Maybe VersionBetaSettings)
+    , _verBasicScaling              :: !(Maybe BasicScaling)
+    , _verManualScaling             :: !(Maybe ManualScaling)
+    , _verAPIConfig                 :: !(Maybe APIConfigHandler)
+    , _verId                        :: !(Maybe Text)
+    , _verEnvVariables              :: !(Maybe VersionEnvVariables)
+    , _verLivenessCheck             :: !(Maybe LivenessCheck)
+    , _verRuntimeAPIVersion         :: !(Maybe Text)
+    , _verServingStatus             :: !(Maybe VersionServingStatus)
+    , _verDiskUsageBytes            :: !(Maybe (Textual Int64))
+    , _verCreateTime                :: !(Maybe DateTime')
+    , _verLibraries                 :: !(Maybe [Library])
+    , _verVersionURL                :: !(Maybe Text)
+    , _verDeployment                :: !(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:
+--
+-- * 'verRuntime'
+--
+-- * 'verNobuildFilesRegex'
+--
+-- * 'verInstanceClass'
+--
+-- * 'verRuntimeChannel'
+--
+-- * 'verRuntimeMainExecutablePath'
+--
+-- * 'verHealthCheck'
+--
+-- * 'verEndpointsAPIService'
+--
+-- * 'verEnv'
+--
+-- * 'verZones'
+--
+-- * 'verEntrypoint'
+--
+-- * 'verDefaultExpiration'
+--
+-- * 'verAutomaticScaling'
+--
+-- * 'verErrorHandlers'
+--
+-- * 'verCreatedBy'
+--
+-- * 'verVM'
+--
+-- * 'verHandlers'
+--
+-- * 'verInboundServices'
+--
+-- * 'verReadinessCheck'
+--
+-- * 'verNetwork'
+--
+-- * 'verResources'
+--
+-- * 'verName'
+--
+-- * 'verThreadsafe'
+--
+-- * 'verBetaSettings'
+--
+-- * 'verBasicScaling'
+--
+-- * 'verManualScaling'
+--
+-- * 'verAPIConfig'
+--
+-- * 'verId'
+--
+-- * 'verEnvVariables'
+--
+-- * 'verLivenessCheck'
+--
+-- * 'verRuntimeAPIVersion'
+--
+-- * 'verServingStatus'
+--
+-- * 'verDiskUsageBytes'
+--
+-- * 'verCreateTime'
+--
+-- * 'verLibraries'
+--
+-- * 'verVersionURL'
+--
+-- * 'verDeployment'
+version
+    :: Version
+version =
+    Version'
+    { _verRuntime = Nothing
+    , _verNobuildFilesRegex = Nothing
+    , _verInstanceClass = Nothing
+    , _verRuntimeChannel = Nothing
+    , _verRuntimeMainExecutablePath = Nothing
+    , _verHealthCheck = Nothing
+    , _verEndpointsAPIService = Nothing
+    , _verEnv = Nothing
+    , _verZones = Nothing
+    , _verEntrypoint = Nothing
+    , _verDefaultExpiration = Nothing
+    , _verAutomaticScaling = Nothing
+    , _verErrorHandlers = Nothing
+    , _verCreatedBy = Nothing
+    , _verVM = Nothing
+    , _verHandlers = Nothing
+    , _verInboundServices = Nothing
+    , _verReadinessCheck = Nothing
+    , _verNetwork = Nothing
+    , _verResources = Nothing
+    , _verName = Nothing
+    , _verThreadsafe = Nothing
+    , _verBetaSettings = Nothing
+    , _verBasicScaling = Nothing
+    , _verManualScaling = Nothing
+    , _verAPIConfig = Nothing
+    , _verId = Nothing
+    , _verEnvVariables = Nothing
+    , _verLivenessCheck = Nothing
+    , _verRuntimeAPIVersion = Nothing
+    , _verServingStatus = Nothing
+    , _verDiskUsageBytes = Nothing
+    , _verCreateTime = Nothing
+    , _verLibraries = Nothing
+    , _verVersionURL = Nothing
+    , _verDeployment = Nothing
+    }
+
+-- | Desired runtime. Example: python27.
+verRuntime :: Lens' Version (Maybe Text)
+verRuntime
+  = lens _verRuntime (\ s a -> s{_verRuntime = 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.
+verNobuildFilesRegex :: Lens' Version (Maybe Text)
+verNobuildFilesRegex
+  = lens _verNobuildFilesRegex
+      (\ s a -> s{_verNobuildFilesRegex = 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_1GDefaults to F1 for AutomaticScaling and B1 for
+-- ManualScaling or BasicScaling.
+verInstanceClass :: Lens' Version (Maybe Text)
+verInstanceClass
+  = lens _verInstanceClass
+      (\ s a -> s{_verInstanceClass = a})
+
+-- | The channel of the runtime to use. Only available for some runtimes.
+-- Defaults to the default channel.
+verRuntimeChannel :: Lens' Version (Maybe Text)
+verRuntimeChannel
+  = lens _verRuntimeChannel
+      (\ s a -> s{_verRuntimeChannel = a})
+
+-- | The path or name of the app\'s main executable.
+verRuntimeMainExecutablePath :: Lens' Version (Maybe Text)
+verRuntimeMainExecutablePath
+  = lens _verRuntimeMainExecutablePath
+      (\ s a -> s{_verRuntimeMainExecutablePath = a})
+
+-- | Configures health checking for instances. Unhealthy instances are
+-- stopped and replaced with new instances. Only applicable in the App
+-- Engine flexible environment.Only returned in GET requests if view=FULL
+-- is set.
+verHealthCheck :: Lens' Version (Maybe HealthCheck)
+verHealthCheck
+  = lens _verHealthCheck
+      (\ s a -> s{_verHealthCheck = a})
+
+-- | Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud
+-- Endpoints Extensible Service Proxy will be provided to serve the API
+-- implemented by the app.
+verEndpointsAPIService :: Lens' Version (Maybe EndpointsAPIService)
+verEndpointsAPIService
+  = lens _verEndpointsAPIService
+      (\ s a -> s{_verEndpointsAPIService = a})
+
+-- | App Engine execution environment for this version.Defaults to standard.
+verEnv :: Lens' Version (Maybe Text)
+verEnv = lens _verEnv (\ s a -> s{_verEnv = a})
+
+-- | The Google Compute Engine zones that are supported by this version in
+-- the App Engine flexible environment.
+verZones :: Lens' Version [Text]
+verZones
+  = lens _verZones (\ s a -> s{_verZones = a}) .
+      _Default
+      . _Coerce
+
+-- | The entrypoint for the application.
+verEntrypoint :: Lens' Version (Maybe Entrypoint)
+verEntrypoint
+  = lens _verEntrypoint
+      (\ s a -> s{_verEntrypoint = 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.
+verDefaultExpiration :: Lens' Version (Maybe Scientific)
+verDefaultExpiration
+  = lens _verDefaultExpiration
+      (\ s a -> s{_verDefaultExpiration = a})
+      . mapping _GDuration
+
+-- | Automatic scaling is based on request rate, response latencies, and
+-- other application metrics.
+verAutomaticScaling :: Lens' Version (Maybe AutomaticScaling)
+verAutomaticScaling
+  = lens _verAutomaticScaling
+      (\ s a -> s{_verAutomaticScaling = a})
+
+-- | Custom static error pages. Limited to 10KB per page.Only returned in GET
+-- requests if view=FULL is set.
+verErrorHandlers :: Lens' Version [ErrorHandler]
+verErrorHandlers
+  = lens _verErrorHandlers
+      (\ s a -> s{_verErrorHandlers = a})
+      . _Default
+      . _Coerce
+
+-- | Email address of the user who created this version.\'OutputOnly
+verCreatedBy :: Lens' Version (Maybe Text)
+verCreatedBy
+  = lens _verCreatedBy (\ s a -> s{_verCreatedBy = a})
+
+-- | Whether to deploy this version in a container on a virtual machine.
+verVM :: Lens' Version (Maybe Bool)
+verVM = lens _verVM (\ s a -> s{_verVM = 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.
+verHandlers :: Lens' Version [URLMap]
+verHandlers
+  = lens _verHandlers (\ s a -> s{_verHandlers = a}) .
+      _Default
+      . _Coerce
+
+-- | Before an application can receive email or XMPP messages, the
+-- application must be configured to enable the service.
+verInboundServices :: Lens' Version [Text]
+verInboundServices
+  = lens _verInboundServices
+      (\ s a -> s{_verInboundServices = a})
+      . _Default
+      . _Coerce
+
+-- | Configures readiness health checking for instances. Unhealthy instances
+-- are not put into the backend traffic rotation.Only returned in GET
+-- requests if view=FULL is set.
+verReadinessCheck :: Lens' Version (Maybe ReadinessCheck)
+verReadinessCheck
+  = lens _verReadinessCheck
+      (\ s a -> s{_verReadinessCheck = a})
+
+-- | Extra network settings. Only applicable in the App Engine flexible
+-- environment.
+verNetwork :: Lens' Version (Maybe Network)
+verNetwork
+  = lens _verNetwork (\ s a -> s{_verNetwork = a})
+
+-- | Machine resources for this version. Only applicable in the App Engine
+-- flexible environment.
+verResources :: Lens' Version (Maybe Resources)
+verResources
+  = lens _verResources (\ s a -> s{_verResources = a})
+
+-- | Full path to the Version resource in the API. Example:
+-- apps\/myapp\/services\/default\/versions\/v1.\'OutputOnly
+verName :: Lens' Version (Maybe Text)
+verName = lens _verName (\ s a -> s{_verName = a})
+
+-- | Whether multiple requests can be dispatched to this version at once.
+verThreadsafe :: Lens' Version (Maybe Bool)
+verThreadsafe
+  = lens _verThreadsafe
+      (\ s a -> s{_verThreadsafe = a})
+
+-- | Metadata settings that are supplied to this version to enable beta
+-- runtime features.
+verBetaSettings :: Lens' Version (Maybe VersionBetaSettings)
+verBetaSettings
+  = lens _verBetaSettings
+      (\ s a -> s{_verBetaSettings = 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.
+verBasicScaling :: Lens' Version (Maybe BasicScaling)
+verBasicScaling
+  = lens _verBasicScaling
+      (\ s a -> s{_verBasicScaling = a})
+
+-- | A service with manual scaling runs continuously, allowing you to perform
+-- complex initialization and rely on the state of its memory over time.
+verManualScaling :: Lens' Version (Maybe ManualScaling)
+verManualScaling
+  = lens _verManualScaling
+      (\ s a -> s{_verManualScaling = 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.
+verAPIConfig :: Lens' Version (Maybe APIConfigHandler)
+verAPIConfig
+  = lens _verAPIConfig (\ s a -> s{_verAPIConfig = 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-\".
+verId :: Lens' Version (Maybe Text)
+verId = lens _verId (\ s a -> s{_verId = a})
+
+-- | Environment variables available to the application.Only returned in GET
+-- requests if view=FULL is set.
+verEnvVariables :: Lens' Version (Maybe VersionEnvVariables)
+verEnvVariables
+  = lens _verEnvVariables
+      (\ s a -> s{_verEnvVariables = a})
+
+-- | Configures liveness health checking for instances. Unhealthy instances
+-- are stopped and replaced with new instancesOnly returned in GET requests
+-- if view=FULL is set.
+verLivenessCheck :: Lens' Version (Maybe LivenessCheck)
+verLivenessCheck
+  = lens _verLivenessCheck
+      (\ s a -> s{_verLivenessCheck = a})
+
+-- | The version of the API in the given runtime environment. Please see the
+-- app.yaml reference for valid values at
+-- https:\/\/cloud.google.com\/appengine\/docs\/standard\/\/config\/appref
+verRuntimeAPIVersion :: Lens' Version (Maybe Text)
+verRuntimeAPIVersion
+  = lens _verRuntimeAPIVersion
+      (\ s a -> s{_verRuntimeAPIVersion = 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.
+verServingStatus :: Lens' Version (Maybe VersionServingStatus)
+verServingStatus
+  = lens _verServingStatus
+      (\ s a -> s{_verServingStatus = a})
+
+-- | Total size in bytes of all the files that are included in this version
+-- and currently hosted on the App Engine disk.\'OutputOnly
+verDiskUsageBytes :: Lens' Version (Maybe Int64)
+verDiskUsageBytes
+  = lens _verDiskUsageBytes
+      (\ s a -> s{_verDiskUsageBytes = a})
+      . mapping _Coerce
+
+-- | Time that this version was created.\'OutputOnly
+verCreateTime :: Lens' Version (Maybe UTCTime)
+verCreateTime
+  = lens _verCreateTime
+      (\ s a -> s{_verCreateTime = a})
+      . mapping _DateTime
+
+-- | Configuration for third-party Python runtime libraries that are required
+-- by the application.Only returned in GET requests if view=FULL is set.
+verLibraries :: Lens' Version [Library]
+verLibraries
+  = lens _verLibraries (\ s a -> s{_verLibraries = a})
+      . _Default
+      . _Coerce
+
+-- | Serving URL for this version. Example:
+-- \"https:\/\/myversion-dot-myservice-dot-myapp.appspot.com\"\'OutputOnly
+verVersionURL :: Lens' Version (Maybe Text)
+verVersionURL
+  = lens _verVersionURL
+      (\ s a -> s{_verVersionURL = a})
+
+-- | Code and application artifacts that make up this version.Only returned
+-- in GET requests if view=FULL is set.
+verDeployment :: Lens' Version (Maybe Deployment)
+verDeployment
+  = lens _verDeployment
+      (\ s a -> s{_verDeployment = a})
+
+instance FromJSON Version where
+        parseJSON
+          = withObject "Version"
+              (\ o ->
+                 Version' <$>
+                   (o .:? "runtime") <*> (o .:? "nobuildFilesRegex") <*>
+                     (o .:? "instanceClass")
+                     <*> (o .:? "runtimeChannel")
+                     <*> (o .:? "runtimeMainExecutablePath")
+                     <*> (o .:? "healthCheck")
+                     <*> (o .:? "endpointsApiService")
+                     <*> (o .:? "env")
+                     <*> (o .:? "zones" .!= mempty)
+                     <*> (o .:? "entrypoint")
+                     <*> (o .:? "defaultExpiration")
+                     <*> (o .:? "automaticScaling")
+                     <*> (o .:? "errorHandlers" .!= mempty)
+                     <*> (o .:? "createdBy")
+                     <*> (o .:? "vm")
+                     <*> (o .:? "handlers" .!= mempty)
+                     <*> (o .:? "inboundServices" .!= mempty)
+                     <*> (o .:? "readinessCheck")
+                     <*> (o .:? "network")
+                     <*> (o .:? "resources")
+                     <*> (o .:? "name")
+                     <*> (o .:? "threadsafe")
+                     <*> (o .:? "betaSettings")
+                     <*> (o .:? "basicScaling")
+                     <*> (o .:? "manualScaling")
+                     <*> (o .:? "apiConfig")
+                     <*> (o .:? "id")
+                     <*> (o .:? "envVariables")
+                     <*> (o .:? "livenessCheck")
+                     <*> (o .:? "runtimeApiVersion")
+                     <*> (o .:? "servingStatus")
+                     <*> (o .:? "diskUsageBytes")
+                     <*> (o .:? "createTime")
+                     <*> (o .:? "libraries" .!= mempty)
+                     <*> (o .:? "versionUrl")
+                     <*> (o .:? "deployment"))
+
+instance ToJSON Version where
+        toJSON Version'{..}
+          = object
+              (catMaybes
+                 [("runtime" .=) <$> _verRuntime,
+                  ("nobuildFilesRegex" .=) <$> _verNobuildFilesRegex,
+                  ("instanceClass" .=) <$> _verInstanceClass,
+                  ("runtimeChannel" .=) <$> _verRuntimeChannel,
+                  ("runtimeMainExecutablePath" .=) <$>
+                    _verRuntimeMainExecutablePath,
+                  ("healthCheck" .=) <$> _verHealthCheck,
+                  ("endpointsApiService" .=) <$>
+                    _verEndpointsAPIService,
+                  ("env" .=) <$> _verEnv, ("zones" .=) <$> _verZones,
+                  ("entrypoint" .=) <$> _verEntrypoint,
+                  ("defaultExpiration" .=) <$> _verDefaultExpiration,
+                  ("automaticScaling" .=) <$> _verAutomaticScaling,
+                  ("errorHandlers" .=) <$> _verErrorHandlers,
+                  ("createdBy" .=) <$> _verCreatedBy,
+                  ("vm" .=) <$> _verVM,
+                  ("handlers" .=) <$> _verHandlers,
+                  ("inboundServices" .=) <$> _verInboundServices,
+                  ("readinessCheck" .=) <$> _verReadinessCheck,
+                  ("network" .=) <$> _verNetwork,
+                  ("resources" .=) <$> _verResources,
+                  ("name" .=) <$> _verName,
+                  ("threadsafe" .=) <$> _verThreadsafe,
+                  ("betaSettings" .=) <$> _verBetaSettings,
+                  ("basicScaling" .=) <$> _verBasicScaling,
+                  ("manualScaling" .=) <$> _verManualScaling,
+                  ("apiConfig" .=) <$> _verAPIConfig,
+                  ("id" .=) <$> _verId,
+                  ("envVariables" .=) <$> _verEnvVariables,
+                  ("livenessCheck" .=) <$> _verLivenessCheck,
+                  ("runtimeApiVersion" .=) <$> _verRuntimeAPIVersion,
+                  ("servingStatus" .=) <$> _verServingStatus,
+                  ("diskUsageBytes" .=) <$> _verDiskUsageBytes,
+                  ("createTime" .=) <$> _verCreateTime,
+                  ("libraries" .=) <$> _verLibraries,
+                  ("versionUrl" .=) <$> _verVersionURL,
+                  ("deployment" .=) <$> _verDeployment])
+
+-- | Identity-Aware Proxy
+--
+-- /See:/ 'identityAwareProxy' smart constructor.
+data IdentityAwareProxy = IdentityAwareProxy'
+    { _iapEnabled                  :: !(Maybe Bool)
+    , _iapOAuth2ClientSecretSha256 :: !(Maybe Text)
+    , _iapOAuth2ClientSecret       :: !(Maybe Text)
+    , _iapOAuth2ClientId           :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'IdentityAwareProxy' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iapEnabled'
+--
+-- * 'iapOAuth2ClientSecretSha256'
+--
+-- * 'iapOAuth2ClientSecret'
+--
+-- * 'iapOAuth2ClientId'
+identityAwareProxy
+    :: IdentityAwareProxy
+identityAwareProxy =
+    IdentityAwareProxy'
+    { _iapEnabled = Nothing
+    , _iapOAuth2ClientSecretSha256 = Nothing
+    , _iapOAuth2ClientSecret = Nothing
+    , _iapOAuth2ClientId = Nothing
+    }
+
+-- | Whether the serving infrastructure will authenticate and authorize all
+-- incoming requests.If true, the oauth2_client_id and oauth2_client_secret
+-- fields must be non-empty.
+iapEnabled :: Lens' IdentityAwareProxy (Maybe Bool)
+iapEnabled
+  = lens _iapEnabled (\ s a -> s{_iapEnabled = a})
+
+-- | Hex-encoded SHA-256 hash of the client secret.\'OutputOnly
+iapOAuth2ClientSecretSha256 :: Lens' IdentityAwareProxy (Maybe Text)
+iapOAuth2ClientSecretSha256
+  = lens _iapOAuth2ClientSecretSha256
+      (\ s a -> s{_iapOAuth2ClientSecretSha256 = a})
+
+-- | OAuth2 client secret to use for the authentication flow.For security
+-- reasons, this value cannot be retrieved via the API. Instead, the
+-- SHA-256 hash of the value is returned in the oauth2_client_secret_sha256
+-- field.\'InputOnly
+iapOAuth2ClientSecret :: Lens' IdentityAwareProxy (Maybe Text)
+iapOAuth2ClientSecret
+  = lens _iapOAuth2ClientSecret
+      (\ s a -> s{_iapOAuth2ClientSecret = a})
+
+-- | OAuth2 client ID to use for the authentication flow.
+iapOAuth2ClientId :: Lens' IdentityAwareProxy (Maybe Text)
+iapOAuth2ClientId
+  = lens _iapOAuth2ClientId
+      (\ s a -> s{_iapOAuth2ClientId = a})
+
+instance FromJSON IdentityAwareProxy where
+        parseJSON
+          = withObject "IdentityAwareProxy"
+              (\ o ->
+                 IdentityAwareProxy' <$>
+                   (o .:? "enabled") <*>
+                     (o .:? "oauth2ClientSecretSha256")
+                     <*> (o .:? "oauth2ClientSecret")
+                     <*> (o .:? "oauth2ClientId"))
+
+instance ToJSON IdentityAwareProxy where
+        toJSON IdentityAwareProxy'{..}
+          = object
+              (catMaybes
+                 [("enabled" .=) <$> _iapEnabled,
+                  ("oauth2ClientSecretSha256" .=) <$>
+                    _iapOAuth2ClientSecretSha256,
+                  ("oauth2ClientSecret" .=) <$> _iapOAuth2ClientSecret,
+                  ("oauth2ClientId" .=) <$> _iapOAuth2ClientId])
+
+-- | 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 GDuration)
+    , _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 Scientific)
+sfhExpiration
+  = lens _sfhExpiration
+      (\ s a -> s{_sfhExpiration = a})
+      . mapping _GDuration
+
+-- | 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 ErrorHandlerErrorCode)
+    , _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 ErrorHandlerErrorCode)
+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
+
+-- | Response message for AuthorizedCertificates.ListAuthorizedCertificates.
+--
+-- /See:/ 'listAuthorizedCertificatesResponse' smart constructor.
+data ListAuthorizedCertificatesResponse = ListAuthorizedCertificatesResponse'
+    { _lacrNextPageToken :: !(Maybe Text)
+    , _lacrCertificates  :: !(Maybe [AuthorizedCertificate])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAuthorizedCertificatesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lacrNextPageToken'
+--
+-- * 'lacrCertificates'
+listAuthorizedCertificatesResponse
+    :: ListAuthorizedCertificatesResponse
+listAuthorizedCertificatesResponse =
+    ListAuthorizedCertificatesResponse'
+    { _lacrNextPageToken = Nothing
+    , _lacrCertificates = Nothing
+    }
+
+-- | Continuation token for fetching the next page of results.
+lacrNextPageToken :: Lens' ListAuthorizedCertificatesResponse (Maybe Text)
+lacrNextPageToken
+  = lens _lacrNextPageToken
+      (\ s a -> s{_lacrNextPageToken = a})
+
+-- | The SSL certificates the user is authorized to administer.
+lacrCertificates :: Lens' ListAuthorizedCertificatesResponse [AuthorizedCertificate]
+lacrCertificates
+  = lens _lacrCertificates
+      (\ s a -> s{_lacrCertificates = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListAuthorizedCertificatesResponse
+         where
+        parseJSON
+          = withObject "ListAuthorizedCertificatesResponse"
+              (\ o ->
+                 ListAuthorizedCertificatesResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "certificates" .!= mempty))
+
+instance ToJSON ListAuthorizedCertificatesResponse
+         where
+        toJSON ListAuthorizedCertificatesResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lacrNextPageToken,
+                  ("certificates" .=) <$> _lacrCertificates])
+
+-- | A single firewall rule that is evaluated against incoming traffic and
+-- provides an action to take on matched requests.
+--
+-- /See:/ 'firewallRule' smart constructor.
+data FirewallRule = FirewallRule'
+    { _frPriority    :: !(Maybe (Textual Int32))
+    , _frAction      :: !(Maybe FirewallRuleAction)
+    , _frSourceRange :: !(Maybe Text)
+    , _frDescription :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FirewallRule' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'frPriority'
+--
+-- * 'frAction'
+--
+-- * 'frSourceRange'
+--
+-- * 'frDescription'
+firewallRule
+    :: FirewallRule
+firewallRule =
+    FirewallRule'
+    { _frPriority = Nothing
+    , _frAction = Nothing
+    , _frSourceRange = Nothing
+    , _frDescription = Nothing
+    }
+
+-- | A positive integer between 1, Int32.MaxValue-1 that defines the order of
+-- rule evaluation. Rules with the lowest priority are evaluated first.A
+-- default rule at priority Int32.MaxValue matches all IPv4 and IPv6
+-- traffic when no previous rule matches. Only the action of this rule can
+-- be modified by the user.
+frPriority :: Lens' FirewallRule (Maybe Int32)
+frPriority
+  = lens _frPriority (\ s a -> s{_frPriority = a}) .
+      mapping _Coerce
+
+-- | The action to take on matched requests.
+frAction :: Lens' FirewallRule (Maybe FirewallRuleAction)
+frAction = lens _frAction (\ s a -> s{_frAction = a})
+
+-- | IP address or range, defined using CIDR notation, of requests that this
+-- rule applies to. You can use the wildcard character \"*\" to match all
+-- IPs equivalent to \"0\/0\" and \"::\/0\" together. Examples: 192.168.1.1
+-- or 192.168.0.0\/16 or 2001:db8::\/32 or
+-- 2001:0db8:0000:0042:0000:8a2e:0370:7334.
+--
+-- Truncation will be silently performed on addresses which are not
+-- properly truncated. For example, 1.2.3.4\/24 is accepted as the same
+-- address as 1.2.3.0\/24. Similarly, for IPv6, 2001:db8::1\/32 is accepted
+-- as the same address as 2001:db8::\/32.
+frSourceRange :: Lens' FirewallRule (Maybe Text)
+frSourceRange
+  = lens _frSourceRange
+      (\ s a -> s{_frSourceRange = a})
+
+-- | An optional string description of this rule. This field has a maximum
+-- length of 100 characters.
+frDescription :: Lens' FirewallRule (Maybe Text)
+frDescription
+  = lens _frDescription
+      (\ s a -> s{_frDescription = a})
+
+instance FromJSON FirewallRule where
+        parseJSON
+          = withObject "FirewallRule"
+              (\ o ->
+                 FirewallRule' <$>
+                   (o .:? "priority") <*> (o .:? "action") <*>
+                     (o .:? "sourceRange")
+                     <*> (o .:? "description"))
+
+instance ToJSON FirewallRule where
+        toJSON FirewallRule'{..}
+          = object
+              (catMaybes
+                 [("priority" .=) <$> _frPriority,
+                  ("action" .=) <$> _frAction,
+                  ("sourceRange" .=) <$> _frSourceRange,
+                  ("description" .=) <$> _frDescription])
+
+-- | 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 DateTime')
+    , _omUser          :: !(Maybe Text)
+    , _omMethod        :: !(Maybe Text)
+    , _omEndTime       :: !(Maybe DateTime')
+    , _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 UTCTime)
+omInsertTime
+  = lens _omInsertTime (\ s a -> s{_omInsertTime = a})
+      . mapping _DateTime
+
+-- | 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 UTCTime)
+omEndTime
+  = lens _omEndTime (\ s a -> s{_omEndTime = a}) .
+      mapping _DateTime
+
+-- | 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])
+
+-- | Metadata for the given google.longrunning.Operation.
+--
+-- /See:/ 'operationMetadataV1Alpha' smart constructor.
+data OperationMetadataV1Alpha = OperationMetadataV1Alpha'
+    { _omvaEphemeralMessage      :: !(Maybe Text)
+    , _omvaInsertTime            :: !(Maybe DateTime')
+    , _omvaUser                  :: !(Maybe Text)
+    , _omvaMethod                :: !(Maybe Text)
+    , _omvaEndTime               :: !(Maybe DateTime')
+    , _omvaWarning               :: !(Maybe [Text])
+    , _omvaCreateVersionMetadata :: !(Maybe CreateVersionMetadataV1Alpha)
+    , _omvaTarget                :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationMetadataV1Alpha' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'omvaEphemeralMessage'
+--
+-- * 'omvaInsertTime'
+--
+-- * 'omvaUser'
+--
+-- * 'omvaMethod'
+--
+-- * 'omvaEndTime'
+--
+-- * 'omvaWarning'
+--
+-- * 'omvaCreateVersionMetadata'
+--
+-- * 'omvaTarget'
+operationMetadataV1Alpha
+    :: OperationMetadataV1Alpha
+operationMetadataV1Alpha =
+    OperationMetadataV1Alpha'
+    { _omvaEphemeralMessage = Nothing
+    , _omvaInsertTime = Nothing
+    , _omvaUser = Nothing
+    , _omvaMethod = Nothing
+    , _omvaEndTime = Nothing
+    , _omvaWarning = Nothing
+    , _omvaCreateVersionMetadata = Nothing
+    , _omvaTarget = Nothing
+    }
+
+-- | Ephemeral message that may change every time the operation is polled.
+-- \'OutputOnly
+omvaEphemeralMessage :: Lens' OperationMetadataV1Alpha (Maybe Text)
+omvaEphemeralMessage
+  = lens _omvaEphemeralMessage
+      (\ s a -> s{_omvaEphemeralMessage = a})
+
+-- | Time that this operation was created.\'OutputOnly
+omvaInsertTime :: Lens' OperationMetadataV1Alpha (Maybe UTCTime)
+omvaInsertTime
+  = lens _omvaInsertTime
+      (\ s a -> s{_omvaInsertTime = a})
+      . mapping _DateTime
+
+-- | User who requested this operation.\'OutputOnly
+omvaUser :: Lens' OperationMetadataV1Alpha (Maybe Text)
+omvaUser = lens _omvaUser (\ s a -> s{_omvaUser = a})
+
+-- | API method that initiated this operation. Example:
+-- google.appengine.v1alpha.Versions.CreateVersion.\'OutputOnly
+omvaMethod :: Lens' OperationMetadataV1Alpha (Maybe Text)
+omvaMethod
+  = lens _omvaMethod (\ s a -> s{_omvaMethod = a})
+
+-- | Time that this operation completed.\'OutputOnly
+omvaEndTime :: Lens' OperationMetadataV1Alpha (Maybe UTCTime)
+omvaEndTime
+  = lens _omvaEndTime (\ s a -> s{_omvaEndTime = a}) .
+      mapping _DateTime
+
+-- | Durable messages that persist on every operation poll. \'OutputOnly
+omvaWarning :: Lens' OperationMetadataV1Alpha [Text]
+omvaWarning
+  = lens _omvaWarning (\ s a -> s{_omvaWarning = a}) .
+      _Default
+      . _Coerce
+
+omvaCreateVersionMetadata :: Lens' OperationMetadataV1Alpha (Maybe CreateVersionMetadataV1Alpha)
+omvaCreateVersionMetadata
+  = lens _omvaCreateVersionMetadata
+      (\ s a -> s{_omvaCreateVersionMetadata = a})
+
+-- | Name of the resource that this operation is acting on. Example:
+-- apps\/myapp\/services\/default.\'OutputOnly
+omvaTarget :: Lens' OperationMetadataV1Alpha (Maybe Text)
+omvaTarget
+  = lens _omvaTarget (\ s a -> s{_omvaTarget = a})
+
+instance FromJSON OperationMetadataV1Alpha where
+        parseJSON
+          = withObject "OperationMetadataV1Alpha"
+              (\ o ->
+                 OperationMetadataV1Alpha' <$>
+                   (o .:? "ephemeralMessage") <*> (o .:? "insertTime")
+                     <*> (o .:? "user")
+                     <*> (o .:? "method")
+                     <*> (o .:? "endTime")
+                     <*> (o .:? "warning" .!= mempty)
+                     <*> (o .:? "createVersionMetadata")
+                     <*> (o .:? "target"))
+
+instance ToJSON OperationMetadataV1Alpha where
+        toJSON OperationMetadataV1Alpha'{..}
+          = object
+              (catMaybes
+                 [("ephemeralMessage" .=) <$> _omvaEphemeralMessage,
+                  ("insertTime" .=) <$> _omvaInsertTime,
+                  ("user" .=) <$> _omvaUser,
+                  ("method" .=) <$> _omvaMethod,
+                  ("endTime" .=) <$> _omvaEndTime,
+                  ("warning" .=) <$> _omvaWarning,
+                  ("createVersionMetadata" .=) <$>
+                    _omvaCreateVersionMetadata,
+                  ("target" .=) <$> _omvaTarget])
+
+-- | Health checking configuration for VM instances. Unhealthy instances are
+-- killed and replaced with new instances.
+--
+-- /See:/ 'livenessCheck' smart constructor.
+data LivenessCheck = LivenessCheck'
+    { _lcSuccessThreshold :: !(Maybe (Textual Word32))
+    , _lcFailureThreshold :: !(Maybe (Textual Word32))
+    , _lcPath             :: !(Maybe Text)
+    , _lcCheckInterval    :: !(Maybe GDuration)
+    , _lcHost             :: !(Maybe Text)
+    , _lcInitialDelay     :: !(Maybe GDuration)
+    , _lcTimeout          :: !(Maybe GDuration)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LivenessCheck' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcSuccessThreshold'
+--
+-- * 'lcFailureThreshold'
+--
+-- * 'lcPath'
+--
+-- * 'lcCheckInterval'
+--
+-- * 'lcHost'
+--
+-- * 'lcInitialDelay'
+--
+-- * 'lcTimeout'
+livenessCheck
+    :: LivenessCheck
+livenessCheck =
+    LivenessCheck'
+    { _lcSuccessThreshold = Nothing
+    , _lcFailureThreshold = Nothing
+    , _lcPath = Nothing
+    , _lcCheckInterval = Nothing
+    , _lcHost = Nothing
+    , _lcInitialDelay = Nothing
+    , _lcTimeout = Nothing
+    }
+
+-- | Number of consecutive successful checks required before considering the
+-- VM healthy.
+lcSuccessThreshold :: Lens' LivenessCheck (Maybe Word32)
+lcSuccessThreshold
+  = lens _lcSuccessThreshold
+      (\ s a -> s{_lcSuccessThreshold = a})
+      . mapping _Coerce
+
+-- | Number of consecutive failed checks required before considering the VM
+-- unhealthy.
+lcFailureThreshold :: Lens' LivenessCheck (Maybe Word32)
+lcFailureThreshold
+  = lens _lcFailureThreshold
+      (\ s a -> s{_lcFailureThreshold = a})
+      . mapping _Coerce
+
+-- | The request path.
+lcPath :: Lens' LivenessCheck (Maybe Text)
+lcPath = lens _lcPath (\ s a -> s{_lcPath = a})
+
+-- | Interval between health checks.
+lcCheckInterval :: Lens' LivenessCheck (Maybe Scientific)
+lcCheckInterval
+  = lens _lcCheckInterval
+      (\ s a -> s{_lcCheckInterval = a})
+      . mapping _GDuration
+
+-- | Host header to send when performing a HTTP Liveness check. Example:
+-- \"myapp.appspot.com\"
+lcHost :: Lens' LivenessCheck (Maybe Text)
+lcHost = lens _lcHost (\ s a -> s{_lcHost = a})
+
+-- | The initial delay before starting to execute the checks.
+lcInitialDelay :: Lens' LivenessCheck (Maybe Scientific)
+lcInitialDelay
+  = lens _lcInitialDelay
+      (\ s a -> s{_lcInitialDelay = a})
+      . mapping _GDuration
+
+-- | Time before the check is considered failed.
+lcTimeout :: Lens' LivenessCheck (Maybe Scientific)
+lcTimeout
+  = lens _lcTimeout (\ s a -> s{_lcTimeout = a}) .
+      mapping _GDuration
+
+instance FromJSON LivenessCheck where
+        parseJSON
+          = withObject "LivenessCheck"
+              (\ o ->
+                 LivenessCheck' <$>
+                   (o .:? "successThreshold") <*>
+                     (o .:? "failureThreshold")
+                     <*> (o .:? "path")
+                     <*> (o .:? "checkInterval")
+                     <*> (o .:? "host")
+                     <*> (o .:? "initialDelay")
+                     <*> (o .:? "timeout"))
+
+instance ToJSON LivenessCheck where
+        toJSON LivenessCheck'{..}
+          = object
+              (catMaybes
+                 [("successThreshold" .=) <$> _lcSuccessThreshold,
+                  ("failureThreshold" .=) <$> _lcFailureThreshold,
+                  ("path" .=) <$> _lcPath,
+                  ("checkInterval" .=) <$> _lcCheckInterval,
+                  ("host" .=) <$> _lcHost,
+                  ("initialDelay" .=) <$> _lcInitialDelay,
+                  ("timeout" .=) <$> _lcTimeout])
+
+-- | Target scaling by request utilization. Only applicable in the App Engine
+-- flexible environment.
+--
+-- /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
+
+-- | Metadata for the given google.longrunning.Operation during a
+-- google.appengine.v1beta.CreateVersionRequest.
+--
+-- /See:/ 'createVersionMetadataV1Beta' smart constructor.
+newtype CreateVersionMetadataV1Beta = CreateVersionMetadataV1Beta'
+    { _cvmvbCloudBuildId :: Maybe Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateVersionMetadataV1Beta' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cvmvbCloudBuildId'
+createVersionMetadataV1Beta
+    :: CreateVersionMetadataV1Beta
+createVersionMetadataV1Beta =
+    CreateVersionMetadataV1Beta'
+    { _cvmvbCloudBuildId = Nothing
+    }
+
+-- | The Cloud Build ID if one was created as part of the version create.
+-- \'OutputOnly
+cvmvbCloudBuildId :: Lens' CreateVersionMetadataV1Beta (Maybe Text)
+cvmvbCloudBuildId
+  = lens _cvmvbCloudBuildId
+      (\ s a -> s{_cvmvbCloudBuildId = a})
+
+instance FromJSON CreateVersionMetadataV1Beta where
+        parseJSON
+          = withObject "CreateVersionMetadataV1Beta"
+              (\ o ->
+                 CreateVersionMetadataV1Beta' <$>
+                   (o .:? "cloudBuildId"))
+
+instance ToJSON CreateVersionMetadataV1Beta where
+        toJSON CreateVersionMetadataV1Beta'{..}
+          = object
+              (catMaybes
+                 [("cloudBuildId" .=) <$> _cvmvbCloudBuildId])
+
+-- | Response message for DomainMappings.ListDomainMappings.
+--
+-- /See:/ 'listDomainMAppingsResponse' smart constructor.
+data ListDomainMAppingsResponse = ListDomainMAppingsResponse'
+    { _ldmarDomainMAppings :: !(Maybe [DomainMApping])
+    , _ldmarNextPageToken  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListDomainMAppingsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldmarDomainMAppings'
+--
+-- * 'ldmarNextPageToken'
+listDomainMAppingsResponse
+    :: ListDomainMAppingsResponse
+listDomainMAppingsResponse =
+    ListDomainMAppingsResponse'
+    { _ldmarDomainMAppings = Nothing
+    , _ldmarNextPageToken = Nothing
+    }
+
+-- | The domain mappings for the application.
+ldmarDomainMAppings :: Lens' ListDomainMAppingsResponse [DomainMApping]
+ldmarDomainMAppings
+  = lens _ldmarDomainMAppings
+      (\ s a -> s{_ldmarDomainMAppings = a})
+      . _Default
+      . _Coerce
+
+-- | Continuation token for fetching the next page of results.
+ldmarNextPageToken :: Lens' ListDomainMAppingsResponse (Maybe Text)
+ldmarNextPageToken
+  = lens _ldmarNextPageToken
+      (\ s a -> s{_ldmarNextPageToken = a})
+
+instance FromJSON ListDomainMAppingsResponse where
+        parseJSON
+          = withObject "ListDomainMAppingsResponse"
+              (\ o ->
+                 ListDomainMAppingsResponse' <$>
+                   (o .:? "domainMappings" .!= mempty) <*>
+                     (o .:? "nextPageToken"))
+
+instance ToJSON ListDomainMAppingsResponse where
+        toJSON ListDomainMAppingsResponse'{..}
+          = object
+              (catMaybes
+                 [("domainMappings" .=) <$> _ldmarDomainMAppings,
+                  ("nextPageToken" .=) <$> _ldmarNextPageToken])
+
+-- | Scheduler settings for standard environment.
+--
+-- /See:/ 'standardSchedulerSettings' smart constructor.
+data StandardSchedulerSettings = StandardSchedulerSettings'
+    { _sssTargetCPUUtilization        :: !(Maybe (Textual Double))
+    , _sssMinInstances                :: !(Maybe (Textual Int32))
+    , _sssMaxInstances                :: !(Maybe (Textual Int32))
+    , _sssTargetThroughputUtilization :: !(Maybe (Textual Double))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StandardSchedulerSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sssTargetCPUUtilization'
+--
+-- * 'sssMinInstances'
+--
+-- * 'sssMaxInstances'
+--
+-- * 'sssTargetThroughputUtilization'
+standardSchedulerSettings
+    :: StandardSchedulerSettings
+standardSchedulerSettings =
+    StandardSchedulerSettings'
+    { _sssTargetCPUUtilization = Nothing
+    , _sssMinInstances = Nothing
+    , _sssMaxInstances = Nothing
+    , _sssTargetThroughputUtilization = Nothing
+    }
+
+-- | Target CPU utilization ratio to maintain when scaling.
+sssTargetCPUUtilization :: Lens' StandardSchedulerSettings (Maybe Double)
+sssTargetCPUUtilization
+  = lens _sssTargetCPUUtilization
+      (\ s a -> s{_sssTargetCPUUtilization = a})
+      . mapping _Coerce
+
+-- | Minimum number of instances to run for this version. Set to zero to
+-- disable min_instances configuration.
+sssMinInstances :: Lens' StandardSchedulerSettings (Maybe Int32)
+sssMinInstances
+  = lens _sssMinInstances
+      (\ s a -> s{_sssMinInstances = a})
+      . mapping _Coerce
+
+-- | Maximum number of instances to run for this version. Set to zero to
+-- disable max_instances configuration.
+sssMaxInstances :: Lens' StandardSchedulerSettings (Maybe Int32)
+sssMaxInstances
+  = lens _sssMaxInstances
+      (\ s a -> s{_sssMaxInstances = a})
+      . mapping _Coerce
+
+-- | Target throughput utilization ratio to maintain when scaling
+sssTargetThroughputUtilization :: Lens' StandardSchedulerSettings (Maybe Double)
+sssTargetThroughputUtilization
+  = lens _sssTargetThroughputUtilization
+      (\ s a -> s{_sssTargetThroughputUtilization = a})
+      . mapping _Coerce
+
+instance FromJSON StandardSchedulerSettings where
+        parseJSON
+          = withObject "StandardSchedulerSettings"
+              (\ o ->
+                 StandardSchedulerSettings' <$>
+                   (o .:? "targetCpuUtilization") <*>
+                     (o .:? "minInstances")
+                     <*> (o .:? "maxInstances")
+                     <*> (o .:? "targetThroughputUtilization"))
+
+instance ToJSON StandardSchedulerSettings where
+        toJSON StandardSchedulerSettings'{..}
+          = object
+              (catMaybes
+                 [("targetCpuUtilization" .=) <$>
+                    _sssTargetCPUUtilization,
+                  ("minInstances" .=) <$> _sssMinInstances,
+                  ("maxInstances" .=) <$> _sssMaxInstances,
+                  ("targetThroughputUtilization" .=) <$>
+                    _sssTargetThroughputUtilization])
+
+-- | Docker image that is used to create a container and start a VM instance
+-- for the version that you deploy. Only applicable for instances running
+-- in the App Engine flexible environment.
+--
+-- /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 Google Container Registry. 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)
+    , _iVMIP             :: !(Maybe Text)
+    , _iStartTime        :: !(Maybe DateTime')
+    , _iVMId             :: !(Maybe Text)
+    , _iAvailability     :: !(Maybe InstanceAvailability)
+    , _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'
+--
+-- * 'iVMIP'
+--
+-- * 'iStartTime'
+--
+-- * 'iVMId'
+--
+-- * 'iAvailability'
+--
+-- * 'iVMName'
+--
+-- * 'iName'
+--
+-- * 'iVMDebugEnabled'
+--
+-- * 'iRequests'
+--
+-- * 'iQps'
+--
+-- * 'iId'
+--
+-- * 'iErrors'
+--
+-- * 'iAverageLatency'
+--
+-- * 'iAppEngineRelease'
+instance'
+    :: Instance
+instance' =
+    Instance'
+    { _iMemoryUsage = Nothing
+    , _iVMStatus = Nothing
+    , _iVMZoneName = Nothing
+    , _iVMIP = 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})
+
+-- | The IP address of this instance. Only applicable for instances in App
+-- Engine flexible environment.\'OutputOnly
+iVMIP :: Lens' Instance (Maybe Text)
+iVMIP = lens _iVMIP (\ s a -> s{_iVMIP = a})
+
+-- | Time that this instance was started.\'OutputOnly
+iStartTime :: Lens' Instance (Maybe UTCTime)
+iStartTime
+  = lens _iStartTime (\ s a -> s{_iStartTime = a}) .
+      mapping _DateTime
+
+-- | 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 InstanceAvailability)
+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 .:? "vmIp")
+                     <*> (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,
+                  ("vmIp" .=) <$> _iVMIP,
+                  ("startTime" .=) <$> _iStartTime,
+                  ("vmId" .=) <$> _iVMId,
+                  ("availability" .=) <$> _iAvailability,
+                  ("vmName" .=) <$> _iVMName, ("name" .=) <$> _iName,
+                  ("vmDebugEnabled" .=) <$> _iVMDebugEnabled,
+                  ("requests" .=) <$> _iRequests, ("qps" .=) <$> _iQps,
+                  ("id" .=) <$> _iId, ("errors" .=) <$> _iErrors,
+                  ("averageLatency" .=) <$> _iAverageLatency,
+                  ("appEngineRelease" .=) <$> _iAppEngineRelease])
+
+-- | SSL configuration for a DomainMapping resource.
+--
+-- /See:/ 'sslSettings' smart constructor.
+data SSLSettings = SSLSettings'
+    { _ssSSLManagementType           :: !(Maybe SSLSettingsSSLManagementType)
+    , _ssCertificateId               :: !(Maybe Text)
+    , _ssPendingManagedCertificateId :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SSLSettings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssSSLManagementType'
+--
+-- * 'ssCertificateId'
+--
+-- * 'ssPendingManagedCertificateId'
+sslSettings
+    :: SSLSettings
+sslSettings =
+    SSLSettings'
+    { _ssSSLManagementType = Nothing
+    , _ssCertificateId = Nothing
+    , _ssPendingManagedCertificateId = Nothing
+    }
+
+-- | SSL management type for this domain. If AUTOMATIC, a managed certificate
+-- is automatically provisioned. If MANUAL, certificate_id must be manually
+-- specified in order to configure SSL for this domain.
+ssSSLManagementType :: Lens' SSLSettings (Maybe SSLSettingsSSLManagementType)
+ssSSLManagementType
+  = lens _ssSSLManagementType
+      (\ s a -> s{_ssSSLManagementType = a})
+
+-- | ID of the AuthorizedCertificate resource configuring SSL for the
+-- application. Clearing this field will remove SSL support.By default, a
+-- managed certificate is automatically created for every domain mapping.
+-- To omit SSL support or to configure SSL manually, specify
+-- SslManagementType.MANUAL on a CREATE or UPDATE request. You must be
+-- authorized to administer the AuthorizedCertificate resource to manually
+-- map it to a DomainMapping resource. Example: 12345.
+ssCertificateId :: Lens' SSLSettings (Maybe Text)
+ssCertificateId
+  = lens _ssCertificateId
+      (\ s a -> s{_ssCertificateId = a})
+
+-- | ID of the managed AuthorizedCertificate resource currently being
+-- provisioned, if applicable. Until the new managed certificate has been
+-- successfully provisioned, the previous SSL state will be preserved. Once
+-- the provisioning process completes, the certificate_id field will
+-- reflect the new managed certificate and this field will be left empty.
+-- To remove SSL support while there is still a pending managed
+-- certificate, clear the certificate_id field with an
+-- UpdateDomainMappingRequest.\'OutputOnly
+ssPendingManagedCertificateId :: Lens' SSLSettings (Maybe Text)
+ssPendingManagedCertificateId
+  = lens _ssPendingManagedCertificateId
+      (\ s a -> s{_ssPendingManagedCertificateId = a})
+
+instance FromJSON SSLSettings where
+        parseJSON
+          = withObject "SSLSettings"
+              (\ o ->
+                 SSLSettings' <$>
+                   (o .:? "sslManagementType") <*>
+                     (o .:? "certificateId")
+                     <*> (o .:? "pendingManagedCertificateId"))
+
+instance ToJSON SSLSettings where
+        toJSON SSLSettings'{..}
+          = object
+              (catMaybes
+                 [("sslManagementType" .=) <$> _ssSSLManagementType,
+                  ("certificateId" .=) <$> _ssCertificateId,
+                  ("pendingManagedCertificateId" .=) <$>
+                    _ssPendingManagedCertificateId])
+
+-- | Code and application artifacts used to deploy a version to App Engine.
+--
+-- /See:/ 'deployment' smart constructor.
+data Deployment = Deployment'
+    { _dZip               :: !(Maybe ZipInfo)
+    , _dCloudBuildOptions :: !(Maybe CloudBuildOptions)
+    , _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'
+--
+-- * 'dCloudBuildOptions'
+--
+-- * 'dContainer'
+--
+-- * 'dFiles'
+deployment
+    :: Deployment
+deployment =
+    Deployment'
+    { _dZip = Nothing
+    , _dCloudBuildOptions = 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})
+
+-- | Options for any Google Cloud Build builds created as a part of this
+-- deployment.These options will only be used if a new build is created,
+-- such as when deploying to the App Engine flexible environment using
+-- files or zip.
+dCloudBuildOptions :: Lens' Deployment (Maybe CloudBuildOptions)
+dCloudBuildOptions
+  = lens _dCloudBuildOptions
+      (\ s a -> s{_dCloudBuildOptions = a})
+
+-- | The Docker image for the container that runs the version. Only
+-- applicable for instances running in the 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 .:? "cloudBuildOptions") <*>
+                     (o .:? "container")
+                     <*> (o .:? "files"))
+
+instance ToJSON Deployment where
+        toJSON Deployment'{..}
+          = object
+              (catMaybes
+                 [("zip" .=) <$> _dZip,
+                  ("cloudBuildOptions" .=) <$> _dCloudBuildOptions,
                   ("container" .=) <$> _dContainer,
                   ("files" .=) <$> _dFiles])
diff --git a/gen/Network/Google/AppEngine/Types/Sum.hs b/gen/Network/Google/AppEngine/Types/Sum.hs
--- a/gen/Network/Google/AppEngine/Types/Sum.hs
+++ b/gen/Network/Google/AppEngine/Types/Sum.hs
@@ -16,4 +16,751 @@
 --
 module Network.Google.AppEngine.Types.Sum where
 
-import           Network.Google.Prelude
+import           Network.Google.Prelude hiding (Bytes)
+
+-- | Serving status of this application.
+data ApplicationServingStatus
+    = Unspecified
+      -- ^ @UNSPECIFIED@
+      -- Serving status is unspecified.
+    | Serving
+      -- ^ @SERVING@
+      -- Application is serving.
+    | UserDisabled
+      -- ^ @USER_DISABLED@
+      -- Application has been disabled by the user.
+    | SystemDisabled
+      -- ^ @SYSTEM_DISABLED@
+      -- Application has been disabled by the system.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ApplicationServingStatus
+
+instance FromHttpApiData ApplicationServingStatus where
+    parseQueryParam = \case
+        "UNSPECIFIED" -> Right Unspecified
+        "SERVING" -> Right Serving
+        "USER_DISABLED" -> Right UserDisabled
+        "SYSTEM_DISABLED" -> Right SystemDisabled
+        x -> Left ("Unable to parse ApplicationServingStatus from: " <> x)
+
+instance ToHttpApiData ApplicationServingStatus where
+    toQueryParam = \case
+        Unspecified -> "UNSPECIFIED"
+        Serving -> "SERVING"
+        UserDisabled -> "USER_DISABLED"
+        SystemDisabled -> "SYSTEM_DISABLED"
+
+instance FromJSON ApplicationServingStatus where
+    parseJSON = parseJSONText "ApplicationServingStatus"
+
+instance ToJSON ApplicationServingStatus where
+    toJSON = toJSONText
+
+-- | Level of login required to access this resource. Not supported for
+-- Node.js in the App Engine standard environment.
+data URLMapLogin
+    = LoginUnspecified
+      -- ^ @LOGIN_UNSPECIFIED@
+      -- Not specified. LOGIN_OPTIONAL is assumed.
+    | LoginOptional
+      -- ^ @LOGIN_OPTIONAL@
+      -- Does not require that the user is signed in.
+    | LoginAdmin
+      -- ^ @LOGIN_ADMIN@
+      -- If the user is not signed in, the auth_fail_action is taken. In
+      -- addition, if the user is not an administrator for the application, they
+      -- are given an error message regardless of auth_fail_action. If the user
+      -- is an administrator, the handler proceeds.
+    | LoginRequired
+      -- ^ @LOGIN_REQUIRED@
+      -- If the user has signed in, the handler proceeds normally. Otherwise, the
+      -- auth_fail_action is taken.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable URLMapLogin
+
+instance FromHttpApiData URLMapLogin where
+    parseQueryParam = \case
+        "LOGIN_UNSPECIFIED" -> Right LoginUnspecified
+        "LOGIN_OPTIONAL" -> Right LoginOptional
+        "LOGIN_ADMIN" -> Right LoginAdmin
+        "LOGIN_REQUIRED" -> Right LoginRequired
+        x -> Left ("Unable to parse URLMapLogin from: " <> x)
+
+instance ToHttpApiData URLMapLogin where
+    toQueryParam = \case
+        LoginUnspecified -> "LOGIN_UNSPECIFIED"
+        LoginOptional -> "LOGIN_OPTIONAL"
+        LoginAdmin -> "LOGIN_ADMIN"
+        LoginRequired -> "LOGIN_REQUIRED"
+
+instance FromJSON URLMapLogin where
+    parseJSON = parseJSONText "URLMapLogin"
+
+instance ToJSON URLMapLogin where
+    toJSON = toJSONText
+
+-- | Status of certificate management. Refers to the most recent certificate
+-- acquisition or renewal attempt.\'OutputOnly
+data ManagedCertificateStatus
+    = ManagementStatusUnspecified
+      -- ^ @MANAGEMENT_STATUS_UNSPECIFIED@
+    | OK
+      -- ^ @OK@
+      -- Certificate was successfully obtained and inserted into the serving
+      -- system.
+    | Pending
+      -- ^ @PENDING@
+      -- Certificate is under active attempts to acquire or renew.
+    | FailedRetryingNotVisible
+      -- ^ @FAILED_RETRYING_NOT_VISIBLE@
+      -- Most recent renewal failed due to an invalid DNS setup and will be
+      -- retried. Renewal attempts will continue to fail until the certificate
+      -- domain\'s DNS configuration is fixed. The last successfully provisioned
+      -- certificate may still be serving.
+    | FailedPermanent
+      -- ^ @FAILED_PERMANENT@
+      -- All renewal attempts have been exhausted, likely due to an invalid DNS
+      -- setup.
+    | FailedRetryingCaaForBidden
+      -- ^ @FAILED_RETRYING_CAA_FORBIDDEN@
+      -- Most recent renewal failed due to an explicit CAA record that does not
+      -- include the in-use CA, Let\'s Encrypt. Renewals will continue to fail
+      -- until the CAA is reconfigured. The last successfully provisioned
+      -- certificate may still be serving.
+    | FailedRetryingCaaChecking
+      -- ^ @FAILED_RETRYING_CAA_CHECKING@
+      -- Most recent renewal failed due to a CAA retrieval failure. This means
+      -- that the domain\'s DNS provider does not properly handle CAA records,
+      -- failing requests for CAA records when no CAA records are defined.
+      -- Renewals will continue to fail until the DNS provider is changed or a
+      -- CAA record is added for the given domain. The last successfully
+      -- provisioned certificate may still be serving.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ManagedCertificateStatus
+
+instance FromHttpApiData ManagedCertificateStatus where
+    parseQueryParam = \case
+        "MANAGEMENT_STATUS_UNSPECIFIED" -> Right ManagementStatusUnspecified
+        "OK" -> Right OK
+        "PENDING" -> Right Pending
+        "FAILED_RETRYING_NOT_VISIBLE" -> Right FailedRetryingNotVisible
+        "FAILED_PERMANENT" -> Right FailedPermanent
+        "FAILED_RETRYING_CAA_FORBIDDEN" -> Right FailedRetryingCaaForBidden
+        "FAILED_RETRYING_CAA_CHECKING" -> Right FailedRetryingCaaChecking
+        x -> Left ("Unable to parse ManagedCertificateStatus from: " <> x)
+
+instance ToHttpApiData ManagedCertificateStatus where
+    toQueryParam = \case
+        ManagementStatusUnspecified -> "MANAGEMENT_STATUS_UNSPECIFIED"
+        OK -> "OK"
+        Pending -> "PENDING"
+        FailedRetryingNotVisible -> "FAILED_RETRYING_NOT_VISIBLE"
+        FailedPermanent -> "FAILED_PERMANENT"
+        FailedRetryingCaaForBidden -> "FAILED_RETRYING_CAA_FORBIDDEN"
+        FailedRetryingCaaChecking -> "FAILED_RETRYING_CAA_CHECKING"
+
+instance FromJSON ManagedCertificateStatus where
+    parseJSON = parseJSONText "ManagedCertificateStatus"
+
+instance ToJSON ManagedCertificateStatus where
+    toJSON = toJSONText
+
+-- | Security (HTTPS) enforcement for this URL.
+data APIConfigHandlerSecurityLevel
+    = SecureUnspecified
+      -- ^ @SECURE_UNSPECIFIED@
+      -- Not specified.
+    | SecureDefault
+      -- ^ @SECURE_DEFAULT@
+      -- Both HTTP and HTTPS requests with URLs that match the handler succeed
+      -- without redirects. The application can examine the request to determine
+      -- which protocol was used, and respond accordingly.
+    | SecureNever
+      -- ^ @SECURE_NEVER@
+      -- Requests for a URL that match this handler that use HTTPS are
+      -- automatically redirected to the HTTP equivalent URL.
+    | SecureOptional
+      -- ^ @SECURE_OPTIONAL@
+      -- Both HTTP and HTTPS requests with URLs that match the handler succeed
+      -- without redirects. The application can examine the request to determine
+      -- which protocol was used and respond accordingly.
+    | SecureAlways
+      -- ^ @SECURE_ALWAYS@
+      -- Requests for a URL that match this handler that do not use HTTPS are
+      -- automatically redirected to the HTTPS URL with the same path. Query
+      -- parameters are reserved for the redirect.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable APIConfigHandlerSecurityLevel
+
+instance FromHttpApiData APIConfigHandlerSecurityLevel where
+    parseQueryParam = \case
+        "SECURE_UNSPECIFIED" -> Right SecureUnspecified
+        "SECURE_DEFAULT" -> Right SecureDefault
+        "SECURE_NEVER" -> Right SecureNever
+        "SECURE_OPTIONAL" -> Right SecureOptional
+        "SECURE_ALWAYS" -> Right SecureAlways
+        x -> Left ("Unable to parse APIConfigHandlerSecurityLevel from: " <> x)
+
+instance ToHttpApiData APIConfigHandlerSecurityLevel where
+    toQueryParam = \case
+        SecureUnspecified -> "SECURE_UNSPECIFIED"
+        SecureDefault -> "SECURE_DEFAULT"
+        SecureNever -> "SECURE_NEVER"
+        SecureOptional -> "SECURE_OPTIONAL"
+        SecureAlways -> "SECURE_ALWAYS"
+
+instance FromJSON APIConfigHandlerSecurityLevel where
+    parseJSON = parseJSONText "APIConfigHandlerSecurityLevel"
+
+instance ToJSON APIConfigHandlerSecurityLevel where
+    toJSON = toJSONText
+
+-- | Error condition this handler applies to.
+data ErrorHandlerErrorCode
+    = ErrorCodeUnspecified
+      -- ^ @ERROR_CODE_UNSPECIFIED@
+      -- Not specified. ERROR_CODE_DEFAULT is assumed.
+    | ErrorCodeDefault
+      -- ^ @ERROR_CODE_DEFAULT@
+      -- All other error types.
+    | ErrorCodeOverQuota
+      -- ^ @ERROR_CODE_OVER_QUOTA@
+      -- Application has exceeded a resource quota.
+    | ErrorCodeDosAPIdenial
+      -- ^ @ERROR_CODE_DOS_API_DENIAL@
+      -- Client blocked by the application\'s Denial of Service protection
+      -- configuration.
+    | ErrorCodeTimeout
+      -- ^ @ERROR_CODE_TIMEOUT@
+      -- Deadline reached before the application responds.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ErrorHandlerErrorCode
+
+instance FromHttpApiData ErrorHandlerErrorCode where
+    parseQueryParam = \case
+        "ERROR_CODE_UNSPECIFIED" -> Right ErrorCodeUnspecified
+        "ERROR_CODE_DEFAULT" -> Right ErrorCodeDefault
+        "ERROR_CODE_OVER_QUOTA" -> Right ErrorCodeOverQuota
+        "ERROR_CODE_DOS_API_DENIAL" -> Right ErrorCodeDosAPIdenial
+        "ERROR_CODE_TIMEOUT" -> Right ErrorCodeTimeout
+        x -> Left ("Unable to parse ErrorHandlerErrorCode from: " <> x)
+
+instance ToHttpApiData ErrorHandlerErrorCode where
+    toQueryParam = \case
+        ErrorCodeUnspecified -> "ERROR_CODE_UNSPECIFIED"
+        ErrorCodeDefault -> "ERROR_CODE_DEFAULT"
+        ErrorCodeOverQuota -> "ERROR_CODE_OVER_QUOTA"
+        ErrorCodeDosAPIdenial -> "ERROR_CODE_DOS_API_DENIAL"
+        ErrorCodeTimeout -> "ERROR_CODE_TIMEOUT"
+
+instance FromJSON ErrorHandlerErrorCode where
+    parseJSON = parseJSONText "ErrorHandlerErrorCode"
+
+instance ToJSON ErrorHandlerErrorCode where
+    toJSON = toJSONText
+
+-- | Endpoints rollout strategy. If FIXED, config_id must be specified. If
+-- MANAGED, config_id must be omitted.
+data EndpointsAPIServiceRolloutStrategy
+    = UnspecifiedRolloutStrategy
+      -- ^ @UNSPECIFIED_ROLLOUT_STRATEGY@
+      -- Not specified. Defaults to FIXED.
+    | Fixed
+      -- ^ @FIXED@
+      -- Endpoints service configuration ID will be fixed to the configuration ID
+      -- specified by config_id.
+    | Managed
+      -- ^ @MANAGED@
+      -- Endpoints service configuration ID will be updated with each rollout.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable EndpointsAPIServiceRolloutStrategy
+
+instance FromHttpApiData EndpointsAPIServiceRolloutStrategy where
+    parseQueryParam = \case
+        "UNSPECIFIED_ROLLOUT_STRATEGY" -> Right UnspecifiedRolloutStrategy
+        "FIXED" -> Right Fixed
+        "MANAGED" -> Right Managed
+        x -> Left ("Unable to parse EndpointsAPIServiceRolloutStrategy from: " <> x)
+
+instance ToHttpApiData EndpointsAPIServiceRolloutStrategy where
+    toQueryParam = \case
+        UnspecifiedRolloutStrategy -> "UNSPECIFIED_ROLLOUT_STRATEGY"
+        Fixed -> "FIXED"
+        Managed -> "MANAGED"
+
+instance FromJSON EndpointsAPIServiceRolloutStrategy where
+    parseJSON = parseJSONText "EndpointsAPIServiceRolloutStrategy"
+
+instance ToJSON EndpointsAPIServiceRolloutStrategy where
+    toJSON = toJSONText
+
+-- | Action to take when users access resources that require authentication.
+-- Defaults to redirect.
+data APIConfigHandlerAuthFailAction
+    = AuthFailActionUnspecified
+      -- ^ @AUTH_FAIL_ACTION_UNSPECIFIED@
+      -- Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.
+    | AuthFailActionRedirect
+      -- ^ @AUTH_FAIL_ACTION_REDIRECT@
+      -- Redirects user to \"accounts.google.com\". The user is redirected back
+      -- to the application URL after signing in or creating an account.
+    | AuthFailActionUnauthorized
+      -- ^ @AUTH_FAIL_ACTION_UNAUTHORIZED@
+      -- Rejects request with a 401 HTTP status code and an error message.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable APIConfigHandlerAuthFailAction
+
+instance FromHttpApiData APIConfigHandlerAuthFailAction where
+    parseQueryParam = \case
+        "AUTH_FAIL_ACTION_UNSPECIFIED" -> Right AuthFailActionUnspecified
+        "AUTH_FAIL_ACTION_REDIRECT" -> Right AuthFailActionRedirect
+        "AUTH_FAIL_ACTION_UNAUTHORIZED" -> Right AuthFailActionUnauthorized
+        x -> Left ("Unable to parse APIConfigHandlerAuthFailAction from: " <> x)
+
+instance ToHttpApiData APIConfigHandlerAuthFailAction where
+    toQueryParam = \case
+        AuthFailActionUnspecified -> "AUTH_FAIL_ACTION_UNSPECIFIED"
+        AuthFailActionRedirect -> "AUTH_FAIL_ACTION_REDIRECT"
+        AuthFailActionUnauthorized -> "AUTH_FAIL_ACTION_UNAUTHORIZED"
+
+instance FromJSON APIConfigHandlerAuthFailAction where
+    parseJSON = parseJSONText "APIConfigHandlerAuthFailAction"
+
+instance ToJSON APIConfigHandlerAuthFailAction where
+    toJSON = toJSONText
+
+-- | 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.
+data VersionServingStatus
+    = VSSServingStatusUnspecified
+      -- ^ @SERVING_STATUS_UNSPECIFIED@
+      -- Not specified.
+    | VSSServing
+      -- ^ @SERVING@
+      -- Currently serving. Instances are created according to the scaling
+      -- settings of the version.
+    | VSSStopped
+      -- ^ @STOPPED@
+      -- Disabled. No instances will be created and the scaling settings are
+      -- ignored until the state of the version changes to SERVING.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable VersionServingStatus
+
+instance FromHttpApiData VersionServingStatus where
+    parseQueryParam = \case
+        "SERVING_STATUS_UNSPECIFIED" -> Right VSSServingStatusUnspecified
+        "SERVING" -> Right VSSServing
+        "STOPPED" -> Right VSSStopped
+        x -> Left ("Unable to parse VersionServingStatus from: " <> x)
+
+instance ToHttpApiData VersionServingStatus where
+    toQueryParam = \case
+        VSSServingStatusUnspecified -> "SERVING_STATUS_UNSPECIFIED"
+        VSSServing -> "SERVING"
+        VSSStopped -> "STOPPED"
+
+instance FromJSON VersionServingStatus where
+    parseJSON = parseJSONText "VersionServingStatus"
+
+instance ToJSON VersionServingStatus where
+    toJSON = toJSONText
+
+-- | Security (HTTPS) enforcement for this URL.
+data URLMapSecurityLevel
+    = UMSLSecureUnspecified
+      -- ^ @SECURE_UNSPECIFIED@
+      -- Not specified.
+    | UMSLSecureDefault
+      -- ^ @SECURE_DEFAULT@
+      -- Both HTTP and HTTPS requests with URLs that match the handler succeed
+      -- without redirects. The application can examine the request to determine
+      -- which protocol was used, and respond accordingly.
+    | UMSLSecureNever
+      -- ^ @SECURE_NEVER@
+      -- Requests for a URL that match this handler that use HTTPS are
+      -- automatically redirected to the HTTP equivalent URL.
+    | UMSLSecureOptional
+      -- ^ @SECURE_OPTIONAL@
+      -- Both HTTP and HTTPS requests with URLs that match the handler succeed
+      -- without redirects. The application can examine the request to determine
+      -- which protocol was used and respond accordingly.
+    | UMSLSecureAlways
+      -- ^ @SECURE_ALWAYS@
+      -- Requests for a URL that match this handler that do not use HTTPS are
+      -- automatically redirected to the HTTPS URL with the same path. Query
+      -- parameters are reserved for the redirect.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable URLMapSecurityLevel
+
+instance FromHttpApiData URLMapSecurityLevel where
+    parseQueryParam = \case
+        "SECURE_UNSPECIFIED" -> Right UMSLSecureUnspecified
+        "SECURE_DEFAULT" -> Right UMSLSecureDefault
+        "SECURE_NEVER" -> Right UMSLSecureNever
+        "SECURE_OPTIONAL" -> Right UMSLSecureOptional
+        "SECURE_ALWAYS" -> Right UMSLSecureAlways
+        x -> Left ("Unable to parse URLMapSecurityLevel from: " <> x)
+
+instance ToHttpApiData URLMapSecurityLevel where
+    toQueryParam = \case
+        UMSLSecureUnspecified -> "SECURE_UNSPECIFIED"
+        UMSLSecureDefault -> "SECURE_DEFAULT"
+        UMSLSecureNever -> "SECURE_NEVER"
+        UMSLSecureOptional -> "SECURE_OPTIONAL"
+        UMSLSecureAlways -> "SECURE_ALWAYS"
+
+instance FromJSON URLMapSecurityLevel where
+    parseJSON = parseJSONText "URLMapSecurityLevel"
+
+instance ToJSON URLMapSecurityLevel where
+    toJSON = toJSONText
+
+-- | Resource record type. Example: AAAA.
+data ResourceRecordType
+    = RecordTypeUnspecified
+      -- ^ @RECORD_TYPE_UNSPECIFIED@
+      -- An unknown resource record.
+    | A
+      -- ^ @A@
+      -- An A resource record. Data is an IPv4 address.
+    | Aaaa
+      -- ^ @AAAA@
+      -- An AAAA resource record. Data is an IPv6 address.
+    | Cname
+      -- ^ @CNAME@
+      -- A CNAME resource record. Data is a domain name to be aliased.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable ResourceRecordType
+
+instance FromHttpApiData ResourceRecordType where
+    parseQueryParam = \case
+        "RECORD_TYPE_UNSPECIFIED" -> Right RecordTypeUnspecified
+        "A" -> Right A
+        "AAAA" -> Right Aaaa
+        "CNAME" -> Right Cname
+        x -> Left ("Unable to parse ResourceRecordType from: " <> x)
+
+instance ToHttpApiData ResourceRecordType where
+    toQueryParam = \case
+        RecordTypeUnspecified -> "RECORD_TYPE_UNSPECIFIED"
+        A -> "A"
+        Aaaa -> "AAAA"
+        Cname -> "CNAME"
+
+instance FromJSON ResourceRecordType where
+    parseJSON = parseJSONText "ResourceRecordType"
+
+instance ToJSON ResourceRecordType where
+    toJSON = toJSONText
+
+-- | V1 error format.
+data Xgafv
+    = X1
+      -- ^ @1@
+      -- v1 error format
+    | X2
+      -- ^ @2@
+      -- v2 error format
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable Xgafv
+
+instance FromHttpApiData Xgafv where
+    parseQueryParam = \case
+        "1" -> Right X1
+        "2" -> Right X2
+        x -> Left ("Unable to parse Xgafv from: " <> x)
+
+instance ToHttpApiData Xgafv where
+    toQueryParam = \case
+        X1 -> "1"
+        X2 -> "2"
+
+instance FromJSON Xgafv where
+    parseJSON = parseJSONText "Xgafv"
+
+instance ToJSON Xgafv where
+    toJSON = toJSONText
+
+-- | 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.
+data TrafficSplitShardBy
+    = TSSBUnspecified
+      -- ^ @UNSPECIFIED@
+      -- Diversion method unspecified.
+    | TSSBCookie
+      -- ^ @COOKIE@
+      -- Diversion based on a specially named cookie, \"GOOGAPPUID.\" The cookie
+      -- must be set by the application itself or no diversion will occur.
+    | TSSBIP
+      -- ^ @IP@
+      -- Diversion based on applying the modulus operation to a fingerprint of
+      -- the IP address.
+    | TSSBRandom
+      -- ^ @RANDOM@
+      -- Diversion based on weighted random assignment. An incoming request is
+      -- randomly routed to a version in the traffic split, with probability
+      -- proportional to the version\'s traffic share.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable TrafficSplitShardBy
+
+instance FromHttpApiData TrafficSplitShardBy where
+    parseQueryParam = \case
+        "UNSPECIFIED" -> Right TSSBUnspecified
+        "COOKIE" -> Right TSSBCookie
+        "IP" -> Right TSSBIP
+        "RANDOM" -> Right TSSBRandom
+        x -> Left ("Unable to parse TrafficSplitShardBy from: " <> x)
+
+instance ToHttpApiData TrafficSplitShardBy where
+    toQueryParam = \case
+        TSSBUnspecified -> "UNSPECIFIED"
+        TSSBCookie -> "COOKIE"
+        TSSBIP -> "IP"
+        TSSBRandom -> "RANDOM"
+
+instance FromJSON TrafficSplitShardBy where
+    parseJSON = parseJSONText "TrafficSplitShardBy"
+
+instance ToJSON TrafficSplitShardBy where
+    toJSON = toJSONText
+
+-- | Availability of the instance.\'OutputOnly
+data InstanceAvailability
+    = IAUnspecified
+      -- ^ @UNSPECIFIED@
+    | IAResident
+      -- ^ @RESIDENT@
+    | IADynamic
+      -- ^ @DYNAMIC@
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable InstanceAvailability
+
+instance FromHttpApiData InstanceAvailability where
+    parseQueryParam = \case
+        "UNSPECIFIED" -> Right IAUnspecified
+        "RESIDENT" -> Right IAResident
+        "DYNAMIC" -> Right IADynamic
+        x -> Left ("Unable to parse InstanceAvailability from: " <> x)
+
+instance ToHttpApiData InstanceAvailability where
+    toQueryParam = \case
+        IAUnspecified -> "UNSPECIFIED"
+        IAResident -> "RESIDENT"
+        IADynamic -> "DYNAMIC"
+
+instance FromJSON InstanceAvailability where
+    parseJSON = parseJSONText "InstanceAvailability"
+
+instance ToJSON InstanceAvailability where
+    toJSON = toJSONText
+
+-- | Action to take when users access resources that require authentication.
+-- Defaults to redirect.
+data URLMapAuthFailAction
+    = UMAFAAuthFailActionUnspecified
+      -- ^ @AUTH_FAIL_ACTION_UNSPECIFIED@
+      -- Not specified. AUTH_FAIL_ACTION_REDIRECT is assumed.
+    | UMAFAAuthFailActionRedirect
+      -- ^ @AUTH_FAIL_ACTION_REDIRECT@
+      -- Redirects user to \"accounts.google.com\". The user is redirected back
+      -- to the application URL after signing in or creating an account.
+    | UMAFAAuthFailActionUnauthorized
+      -- ^ @AUTH_FAIL_ACTION_UNAUTHORIZED@
+      -- Rejects request with a 401 HTTP status code and an error message.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable URLMapAuthFailAction
+
+instance FromHttpApiData URLMapAuthFailAction where
+    parseQueryParam = \case
+        "AUTH_FAIL_ACTION_UNSPECIFIED" -> Right UMAFAAuthFailActionUnspecified
+        "AUTH_FAIL_ACTION_REDIRECT" -> Right UMAFAAuthFailActionRedirect
+        "AUTH_FAIL_ACTION_UNAUTHORIZED" -> Right UMAFAAuthFailActionUnauthorized
+        x -> Left ("Unable to parse URLMapAuthFailAction from: " <> x)
+
+instance ToHttpApiData URLMapAuthFailAction where
+    toQueryParam = \case
+        UMAFAAuthFailActionUnspecified -> "AUTH_FAIL_ACTION_UNSPECIFIED"
+        UMAFAAuthFailActionRedirect -> "AUTH_FAIL_ACTION_REDIRECT"
+        UMAFAAuthFailActionUnauthorized -> "AUTH_FAIL_ACTION_UNAUTHORIZED"
+
+instance FromJSON URLMapAuthFailAction where
+    parseJSON = parseJSONText "URLMapAuthFailAction"
+
+instance ToJSON URLMapAuthFailAction where
+    toJSON = toJSONText
+
+-- | 30x code to use when performing redirects for the secure field. Defaults
+-- to 302.
+data URLMapRedirectHTTPResponseCode
+    = RedirectHTTPResponseCodeUnspecified
+      -- ^ @REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED@
+      -- Not specified. 302 is assumed.
+    | RedirectHTTPResponseCode301
+      -- ^ @REDIRECT_HTTP_RESPONSE_CODE_301@
+      -- 301 Moved Permanently code.
+    | RedirectHTTPResponseCode302
+      -- ^ @REDIRECT_HTTP_RESPONSE_CODE_302@
+      -- 302 Moved Temporarily code.
+    | RedirectHTTPResponseCode303
+      -- ^ @REDIRECT_HTTP_RESPONSE_CODE_303@
+      -- 303 See Other code.
+    | RedirectHTTPResponseCode307
+      -- ^ @REDIRECT_HTTP_RESPONSE_CODE_307@
+      -- 307 Temporary Redirect code.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable URLMapRedirectHTTPResponseCode
+
+instance FromHttpApiData URLMapRedirectHTTPResponseCode where
+    parseQueryParam = \case
+        "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED" -> Right RedirectHTTPResponseCodeUnspecified
+        "REDIRECT_HTTP_RESPONSE_CODE_301" -> Right RedirectHTTPResponseCode301
+        "REDIRECT_HTTP_RESPONSE_CODE_302" -> Right RedirectHTTPResponseCode302
+        "REDIRECT_HTTP_RESPONSE_CODE_303" -> Right RedirectHTTPResponseCode303
+        "REDIRECT_HTTP_RESPONSE_CODE_307" -> Right RedirectHTTPResponseCode307
+        x -> Left ("Unable to parse URLMapRedirectHTTPResponseCode from: " <> x)
+
+instance ToHttpApiData URLMapRedirectHTTPResponseCode where
+    toQueryParam = \case
+        RedirectHTTPResponseCodeUnspecified -> "REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED"
+        RedirectHTTPResponseCode301 -> "REDIRECT_HTTP_RESPONSE_CODE_301"
+        RedirectHTTPResponseCode302 -> "REDIRECT_HTTP_RESPONSE_CODE_302"
+        RedirectHTTPResponseCode303 -> "REDIRECT_HTTP_RESPONSE_CODE_303"
+        RedirectHTTPResponseCode307 -> "REDIRECT_HTTP_RESPONSE_CODE_307"
+
+instance FromJSON URLMapRedirectHTTPResponseCode where
+    parseJSON = parseJSONText "URLMapRedirectHTTPResponseCode"
+
+instance ToJSON URLMapRedirectHTTPResponseCode where
+    toJSON = toJSONText
+
+-- | The action to take on matched requests.
+data FirewallRuleAction
+    = UnspecifiedAction
+      -- ^ @UNSPECIFIED_ACTION@
+    | Allow
+      -- ^ @ALLOW@
+      -- Matching requests are allowed.
+    | Deny
+      -- ^ @DENY@
+      -- Matching requests are denied.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable FirewallRuleAction
+
+instance FromHttpApiData FirewallRuleAction where
+    parseQueryParam = \case
+        "UNSPECIFIED_ACTION" -> Right UnspecifiedAction
+        "ALLOW" -> Right Allow
+        "DENY" -> Right Deny
+        x -> Left ("Unable to parse FirewallRuleAction from: " <> x)
+
+instance ToHttpApiData FirewallRuleAction where
+    toQueryParam = \case
+        UnspecifiedAction -> "UNSPECIFIED_ACTION"
+        Allow -> "ALLOW"
+        Deny -> "DENY"
+
+instance FromJSON FirewallRuleAction where
+    parseJSON = parseJSONText "FirewallRuleAction"
+
+instance ToJSON FirewallRuleAction where
+    toJSON = toJSONText
+
+-- | SSL management type for this domain. If AUTOMATIC, a managed certificate
+-- is automatically provisioned. If MANUAL, certificate_id must be manually
+-- specified in order to configure SSL for this domain.
+data SSLSettingsSSLManagementType
+    = SSLManagementTypeUnspecified
+      -- ^ @SSL_MANAGEMENT_TYPE_UNSPECIFIED@
+      -- Defaults to AUTOMATIC.
+    | Automatic
+      -- ^ @AUTOMATIC@
+      -- SSL support for this domain is configured automatically. The mapped SSL
+      -- certificate will be automatically renewed.
+    | Manual
+      -- ^ @MANUAL@
+      -- SSL support for this domain is configured manually by the user. Either
+      -- the domain has no SSL support or a user-obtained SSL certificate has
+      -- been explictly mapped to this domain.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable SSLSettingsSSLManagementType
+
+instance FromHttpApiData SSLSettingsSSLManagementType where
+    parseQueryParam = \case
+        "SSL_MANAGEMENT_TYPE_UNSPECIFIED" -> Right SSLManagementTypeUnspecified
+        "AUTOMATIC" -> Right Automatic
+        "MANUAL" -> Right Manual
+        x -> Left ("Unable to parse SSLSettingsSSLManagementType from: " <> x)
+
+instance ToHttpApiData SSLSettingsSSLManagementType where
+    toQueryParam = \case
+        SSLManagementTypeUnspecified -> "SSL_MANAGEMENT_TYPE_UNSPECIFIED"
+        Automatic -> "AUTOMATIC"
+        Manual -> "MANUAL"
+
+instance FromJSON SSLSettingsSSLManagementType where
+    parseJSON = parseJSONText "SSLSettingsSSLManagementType"
+
+instance ToJSON SSLSettingsSSLManagementType where
+    toJSON = toJSONText
+
+-- | Level of login required to access this resource. Defaults to optional.
+data APIConfigHandlerLogin
+    = ACHLLoginUnspecified
+      -- ^ @LOGIN_UNSPECIFIED@
+      -- Not specified. LOGIN_OPTIONAL is assumed.
+    | ACHLLoginOptional
+      -- ^ @LOGIN_OPTIONAL@
+      -- Does not require that the user is signed in.
+    | ACHLLoginAdmin
+      -- ^ @LOGIN_ADMIN@
+      -- If the user is not signed in, the auth_fail_action is taken. In
+      -- addition, if the user is not an administrator for the application, they
+      -- are given an error message regardless of auth_fail_action. If the user
+      -- is an administrator, the handler proceeds.
+    | ACHLLoginRequired
+      -- ^ @LOGIN_REQUIRED@
+      -- If the user has signed in, the handler proceeds normally. Otherwise, the
+      -- auth_fail_action is taken.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable APIConfigHandlerLogin
+
+instance FromHttpApiData APIConfigHandlerLogin where
+    parseQueryParam = \case
+        "LOGIN_UNSPECIFIED" -> Right ACHLLoginUnspecified
+        "LOGIN_OPTIONAL" -> Right ACHLLoginOptional
+        "LOGIN_ADMIN" -> Right ACHLLoginAdmin
+        "LOGIN_REQUIRED" -> Right ACHLLoginRequired
+        x -> Left ("Unable to parse APIConfigHandlerLogin from: " <> x)
+
+instance ToHttpApiData APIConfigHandlerLogin where
+    toQueryParam = \case
+        ACHLLoginUnspecified -> "LOGIN_UNSPECIFIED"
+        ACHLLoginOptional -> "LOGIN_OPTIONAL"
+        ACHLLoginAdmin -> "LOGIN_ADMIN"
+        ACHLLoginRequired -> "LOGIN_REQUIRED"
+
+instance FromJSON APIConfigHandlerLogin where
+    parseJSON = parseJSONText "APIConfigHandlerLogin"
+
+instance ToJSON APIConfigHandlerLogin where
+    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Create.hs b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Create.hs
@@ -0,0 +1,166 @@
+{-# 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.AuthorizedCertificates.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Uploads the specified SSL certificate.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.authorizedCertificates.create@.
+module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Create
+    (
+    -- * REST Resource
+      AppsAuthorizedCertificatesCreateResource
+
+    -- * Creating a Request
+    , appsAuthorizedCertificatesCreate
+    , AppsAuthorizedCertificatesCreate
+
+    -- * Request Lenses
+    , aaccXgafv
+    , aaccUploadProtocol
+    , aaccAccessToken
+    , aaccUploadType
+    , aaccPayload
+    , aaccAppsId
+    , aaccCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.authorizedCertificates.create@ method which the
+-- 'AppsAuthorizedCertificatesCreate' request conforms to.
+type AppsAuthorizedCertificatesCreateResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "authorizedCertificates" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] AuthorizedCertificate :>
+                           Post '[JSON] AuthorizedCertificate
+
+-- | Uploads the specified SSL certificate.
+--
+-- /See:/ 'appsAuthorizedCertificatesCreate' smart constructor.
+data AppsAuthorizedCertificatesCreate = AppsAuthorizedCertificatesCreate'
+    { _aaccXgafv          :: !(Maybe Xgafv)
+    , _aaccUploadProtocol :: !(Maybe Text)
+    , _aaccAccessToken    :: !(Maybe Text)
+    , _aaccUploadType     :: !(Maybe Text)
+    , _aaccPayload        :: !AuthorizedCertificate
+    , _aaccAppsId         :: !Text
+    , _aaccCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsAuthorizedCertificatesCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaccXgafv'
+--
+-- * 'aaccUploadProtocol'
+--
+-- * 'aaccAccessToken'
+--
+-- * 'aaccUploadType'
+--
+-- * 'aaccPayload'
+--
+-- * 'aaccAppsId'
+--
+-- * 'aaccCallback'
+appsAuthorizedCertificatesCreate
+    :: AuthorizedCertificate -- ^ 'aaccPayload'
+    -> Text -- ^ 'aaccAppsId'
+    -> AppsAuthorizedCertificatesCreate
+appsAuthorizedCertificatesCreate pAaccPayload_ pAaccAppsId_ =
+    AppsAuthorizedCertificatesCreate'
+    { _aaccXgafv = Nothing
+    , _aaccUploadProtocol = Nothing
+    , _aaccAccessToken = Nothing
+    , _aaccUploadType = Nothing
+    , _aaccPayload = pAaccPayload_
+    , _aaccAppsId = pAaccAppsId_
+    , _aaccCallback = Nothing
+    }
+
+-- | V1 error format.
+aaccXgafv :: Lens' AppsAuthorizedCertificatesCreate (Maybe Xgafv)
+aaccXgafv
+  = lens _aaccXgafv (\ s a -> s{_aaccXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aaccUploadProtocol :: Lens' AppsAuthorizedCertificatesCreate (Maybe Text)
+aaccUploadProtocol
+  = lens _aaccUploadProtocol
+      (\ s a -> s{_aaccUploadProtocol = a})
+
+-- | OAuth access token.
+aaccAccessToken :: Lens' AppsAuthorizedCertificatesCreate (Maybe Text)
+aaccAccessToken
+  = lens _aaccAccessToken
+      (\ s a -> s{_aaccAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aaccUploadType :: Lens' AppsAuthorizedCertificatesCreate (Maybe Text)
+aaccUploadType
+  = lens _aaccUploadType
+      (\ s a -> s{_aaccUploadType = a})
+
+-- | Multipart request metadata.
+aaccPayload :: Lens' AppsAuthorizedCertificatesCreate AuthorizedCertificate
+aaccPayload
+  = lens _aaccPayload (\ s a -> s{_aaccPayload = a})
+
+-- | Part of \`parent\`. Name of the parent Application resource. Example:
+-- apps\/myapp.
+aaccAppsId :: Lens' AppsAuthorizedCertificatesCreate Text
+aaccAppsId
+  = lens _aaccAppsId (\ s a -> s{_aaccAppsId = a})
+
+-- | JSONP
+aaccCallback :: Lens' AppsAuthorizedCertificatesCreate (Maybe Text)
+aaccCallback
+  = lens _aaccCallback (\ s a -> s{_aaccCallback = a})
+
+instance GoogleRequest
+         AppsAuthorizedCertificatesCreate where
+        type Rs AppsAuthorizedCertificatesCreate =
+             AuthorizedCertificate
+        type Scopes AppsAuthorizedCertificatesCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsAuthorizedCertificatesCreate'{..}
+          = go _aaccAppsId _aaccXgafv _aaccUploadProtocol
+              _aaccAccessToken
+              _aaccUploadType
+              _aaccCallback
+              (Just AltJSON)
+              _aaccPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsAuthorizedCertificatesCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Delete.hs
@@ -0,0 +1,166 @@
+{-# 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.AuthorizedCertificates.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified SSL certificate.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.authorizedCertificates.delete@.
+module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Delete
+    (
+    -- * REST Resource
+      AppsAuthorizedCertificatesDeleteResource
+
+    -- * Creating a Request
+    , appsAuthorizedCertificatesDelete
+    , AppsAuthorizedCertificatesDelete
+
+    -- * Request Lenses
+    , aacdAuthorizedCertificatesId
+    , aacdXgafv
+    , aacdUploadProtocol
+    , aacdAccessToken
+    , aacdUploadType
+    , aacdAppsId
+    , aacdCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.authorizedCertificates.delete@ method which the
+-- 'AppsAuthorizedCertificatesDelete' request conforms to.
+type AppsAuthorizedCertificatesDeleteResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "authorizedCertificates" :>
+             Capture "authorizedCertificatesId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes the specified SSL certificate.
+--
+-- /See:/ 'appsAuthorizedCertificatesDelete' smart constructor.
+data AppsAuthorizedCertificatesDelete = AppsAuthorizedCertificatesDelete'
+    { _aacdAuthorizedCertificatesId :: !Text
+    , _aacdXgafv                    :: !(Maybe Xgafv)
+    , _aacdUploadProtocol           :: !(Maybe Text)
+    , _aacdAccessToken              :: !(Maybe Text)
+    , _aacdUploadType               :: !(Maybe Text)
+    , _aacdAppsId                   :: !Text
+    , _aacdCallback                 :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsAuthorizedCertificatesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aacdAuthorizedCertificatesId'
+--
+-- * 'aacdXgafv'
+--
+-- * 'aacdUploadProtocol'
+--
+-- * 'aacdAccessToken'
+--
+-- * 'aacdUploadType'
+--
+-- * 'aacdAppsId'
+--
+-- * 'aacdCallback'
+appsAuthorizedCertificatesDelete
+    :: Text -- ^ 'aacdAuthorizedCertificatesId'
+    -> Text -- ^ 'aacdAppsId'
+    -> AppsAuthorizedCertificatesDelete
+appsAuthorizedCertificatesDelete pAacdAuthorizedCertificatesId_ pAacdAppsId_ =
+    AppsAuthorizedCertificatesDelete'
+    { _aacdAuthorizedCertificatesId = pAacdAuthorizedCertificatesId_
+    , _aacdXgafv = Nothing
+    , _aacdUploadProtocol = Nothing
+    , _aacdAccessToken = Nothing
+    , _aacdUploadType = Nothing
+    , _aacdAppsId = pAacdAppsId_
+    , _aacdCallback = Nothing
+    }
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+aacdAuthorizedCertificatesId :: Lens' AppsAuthorizedCertificatesDelete Text
+aacdAuthorizedCertificatesId
+  = lens _aacdAuthorizedCertificatesId
+      (\ s a -> s{_aacdAuthorizedCertificatesId = a})
+
+-- | V1 error format.
+aacdXgafv :: Lens' AppsAuthorizedCertificatesDelete (Maybe Xgafv)
+aacdXgafv
+  = lens _aacdXgafv (\ s a -> s{_aacdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aacdUploadProtocol :: Lens' AppsAuthorizedCertificatesDelete (Maybe Text)
+aacdUploadProtocol
+  = lens _aacdUploadProtocol
+      (\ s a -> s{_aacdUploadProtocol = a})
+
+-- | OAuth access token.
+aacdAccessToken :: Lens' AppsAuthorizedCertificatesDelete (Maybe Text)
+aacdAccessToken
+  = lens _aacdAccessToken
+      (\ s a -> s{_aacdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aacdUploadType :: Lens' AppsAuthorizedCertificatesDelete (Maybe Text)
+aacdUploadType
+  = lens _aacdUploadType
+      (\ s a -> s{_aacdUploadType = a})
+
+-- | Part of \`name\`. Name of the resource to delete. Example:
+-- apps\/myapp\/authorizedCertificates\/12345.
+aacdAppsId :: Lens' AppsAuthorizedCertificatesDelete Text
+aacdAppsId
+  = lens _aacdAppsId (\ s a -> s{_aacdAppsId = a})
+
+-- | JSONP
+aacdCallback :: Lens' AppsAuthorizedCertificatesDelete (Maybe Text)
+aacdCallback
+  = lens _aacdCallback (\ s a -> s{_aacdCallback = a})
+
+instance GoogleRequest
+         AppsAuthorizedCertificatesDelete where
+        type Rs AppsAuthorizedCertificatesDelete = Empty
+        type Scopes AppsAuthorizedCertificatesDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsAuthorizedCertificatesDelete'{..}
+          = go _aacdAppsId _aacdAuthorizedCertificatesId
+              _aacdXgafv
+              _aacdUploadProtocol
+              _aacdAccessToken
+              _aacdUploadType
+              _aacdCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsAuthorizedCertificatesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Get.hs
@@ -0,0 +1,181 @@
+{-# 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.AuthorizedCertificates.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 specified SSL certificate.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.authorizedCertificates.get@.
+module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Get
+    (
+    -- * REST Resource
+      AppsAuthorizedCertificatesGetResource
+
+    -- * Creating a Request
+    , appsAuthorizedCertificatesGet
+    , AppsAuthorizedCertificatesGet
+
+    -- * Request Lenses
+    , aacgAuthorizedCertificatesId
+    , aacgXgafv
+    , aacgUploadProtocol
+    , aacgAccessToken
+    , aacgUploadType
+    , aacgAppsId
+    , aacgView
+    , aacgCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.authorizedCertificates.get@ method which the
+-- 'AppsAuthorizedCertificatesGet' request conforms to.
+type AppsAuthorizedCertificatesGetResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "authorizedCertificates" :>
+             Capture "authorizedCertificatesId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "view" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] AuthorizedCertificate
+
+-- | Gets the specified SSL certificate.
+--
+-- /See:/ 'appsAuthorizedCertificatesGet' smart constructor.
+data AppsAuthorizedCertificatesGet = AppsAuthorizedCertificatesGet'
+    { _aacgAuthorizedCertificatesId :: !Text
+    , _aacgXgafv                    :: !(Maybe Xgafv)
+    , _aacgUploadProtocol           :: !(Maybe Text)
+    , _aacgAccessToken              :: !(Maybe Text)
+    , _aacgUploadType               :: !(Maybe Text)
+    , _aacgAppsId                   :: !Text
+    , _aacgView                     :: !(Maybe Text)
+    , _aacgCallback                 :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsAuthorizedCertificatesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aacgAuthorizedCertificatesId'
+--
+-- * 'aacgXgafv'
+--
+-- * 'aacgUploadProtocol'
+--
+-- * 'aacgAccessToken'
+--
+-- * 'aacgUploadType'
+--
+-- * 'aacgAppsId'
+--
+-- * 'aacgView'
+--
+-- * 'aacgCallback'
+appsAuthorizedCertificatesGet
+    :: Text -- ^ 'aacgAuthorizedCertificatesId'
+    -> Text -- ^ 'aacgAppsId'
+    -> AppsAuthorizedCertificatesGet
+appsAuthorizedCertificatesGet pAacgAuthorizedCertificatesId_ pAacgAppsId_ =
+    AppsAuthorizedCertificatesGet'
+    { _aacgAuthorizedCertificatesId = pAacgAuthorizedCertificatesId_
+    , _aacgXgafv = Nothing
+    , _aacgUploadProtocol = Nothing
+    , _aacgAccessToken = Nothing
+    , _aacgUploadType = Nothing
+    , _aacgAppsId = pAacgAppsId_
+    , _aacgView = Nothing
+    , _aacgCallback = Nothing
+    }
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+aacgAuthorizedCertificatesId :: Lens' AppsAuthorizedCertificatesGet Text
+aacgAuthorizedCertificatesId
+  = lens _aacgAuthorizedCertificatesId
+      (\ s a -> s{_aacgAuthorizedCertificatesId = a})
+
+-- | V1 error format.
+aacgXgafv :: Lens' AppsAuthorizedCertificatesGet (Maybe Xgafv)
+aacgXgafv
+  = lens _aacgXgafv (\ s a -> s{_aacgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aacgUploadProtocol :: Lens' AppsAuthorizedCertificatesGet (Maybe Text)
+aacgUploadProtocol
+  = lens _aacgUploadProtocol
+      (\ s a -> s{_aacgUploadProtocol = a})
+
+-- | OAuth access token.
+aacgAccessToken :: Lens' AppsAuthorizedCertificatesGet (Maybe Text)
+aacgAccessToken
+  = lens _aacgAccessToken
+      (\ s a -> s{_aacgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aacgUploadType :: Lens' AppsAuthorizedCertificatesGet (Maybe Text)
+aacgUploadType
+  = lens _aacgUploadType
+      (\ s a -> s{_aacgUploadType = a})
+
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- apps\/myapp\/authorizedCertificates\/12345.
+aacgAppsId :: Lens' AppsAuthorizedCertificatesGet Text
+aacgAppsId
+  = lens _aacgAppsId (\ s a -> s{_aacgAppsId = a})
+
+-- | Controls the set of fields returned in the GET response.
+aacgView :: Lens' AppsAuthorizedCertificatesGet (Maybe Text)
+aacgView = lens _aacgView (\ s a -> s{_aacgView = a})
+
+-- | JSONP
+aacgCallback :: Lens' AppsAuthorizedCertificatesGet (Maybe Text)
+aacgCallback
+  = lens _aacgCallback (\ s a -> s{_aacgCallback = a})
+
+instance GoogleRequest AppsAuthorizedCertificatesGet
+         where
+        type Rs AppsAuthorizedCertificatesGet =
+             AuthorizedCertificate
+        type Scopes AppsAuthorizedCertificatesGet =
+             '["https://www.googleapis.com/auth/appengine.admin",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient AppsAuthorizedCertificatesGet'{..}
+          = go _aacgAppsId _aacgAuthorizedCertificatesId
+              _aacgXgafv
+              _aacgUploadProtocol
+              _aacgAccessToken
+              _aacgUploadType
+              _aacgView
+              _aacgCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsAuthorizedCertificatesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/List.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.Apps.AuthorizedCertificates.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all SSL certificates the user is authorized to administer.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.authorizedCertificates.list@.
+module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.List
+    (
+    -- * REST Resource
+      AppsAuthorizedCertificatesListResource
+
+    -- * Creating a Request
+    , appsAuthorizedCertificatesList
+    , AppsAuthorizedCertificatesList
+
+    -- * Request Lenses
+    , aaclXgafv
+    , aaclUploadProtocol
+    , aaclAccessToken
+    , aaclUploadType
+    , aaclAppsId
+    , aaclView
+    , aaclPageToken
+    , aaclPageSize
+    , aaclCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.authorizedCertificates.list@ method which the
+-- 'AppsAuthorizedCertificatesList' request conforms to.
+type AppsAuthorizedCertificatesListResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "authorizedCertificates" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "view" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListAuthorizedCertificatesResponse
+
+-- | Lists all SSL certificates the user is authorized to administer.
+--
+-- /See:/ 'appsAuthorizedCertificatesList' smart constructor.
+data AppsAuthorizedCertificatesList = AppsAuthorizedCertificatesList'
+    { _aaclXgafv          :: !(Maybe Xgafv)
+    , _aaclUploadProtocol :: !(Maybe Text)
+    , _aaclAccessToken    :: !(Maybe Text)
+    , _aaclUploadType     :: !(Maybe Text)
+    , _aaclAppsId         :: !Text
+    , _aaclView           :: !(Maybe Text)
+    , _aaclPageToken      :: !(Maybe Text)
+    , _aaclPageSize       :: !(Maybe (Textual Int32))
+    , _aaclCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsAuthorizedCertificatesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaclXgafv'
+--
+-- * 'aaclUploadProtocol'
+--
+-- * 'aaclAccessToken'
+--
+-- * 'aaclUploadType'
+--
+-- * 'aaclAppsId'
+--
+-- * 'aaclView'
+--
+-- * 'aaclPageToken'
+--
+-- * 'aaclPageSize'
+--
+-- * 'aaclCallback'
+appsAuthorizedCertificatesList
+    :: Text -- ^ 'aaclAppsId'
+    -> AppsAuthorizedCertificatesList
+appsAuthorizedCertificatesList pAaclAppsId_ =
+    AppsAuthorizedCertificatesList'
+    { _aaclXgafv = Nothing
+    , _aaclUploadProtocol = Nothing
+    , _aaclAccessToken = Nothing
+    , _aaclUploadType = Nothing
+    , _aaclAppsId = pAaclAppsId_
+    , _aaclView = Nothing
+    , _aaclPageToken = Nothing
+    , _aaclPageSize = Nothing
+    , _aaclCallback = Nothing
+    }
+
+-- | V1 error format.
+aaclXgafv :: Lens' AppsAuthorizedCertificatesList (Maybe Xgafv)
+aaclXgafv
+  = lens _aaclXgafv (\ s a -> s{_aaclXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aaclUploadProtocol :: Lens' AppsAuthorizedCertificatesList (Maybe Text)
+aaclUploadProtocol
+  = lens _aaclUploadProtocol
+      (\ s a -> s{_aaclUploadProtocol = a})
+
+-- | OAuth access token.
+aaclAccessToken :: Lens' AppsAuthorizedCertificatesList (Maybe Text)
+aaclAccessToken
+  = lens _aaclAccessToken
+      (\ s a -> s{_aaclAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aaclUploadType :: Lens' AppsAuthorizedCertificatesList (Maybe Text)
+aaclUploadType
+  = lens _aaclUploadType
+      (\ s a -> s{_aaclUploadType = a})
+
+-- | Part of \`parent\`. Name of the parent Application resource. Example:
+-- apps\/myapp.
+aaclAppsId :: Lens' AppsAuthorizedCertificatesList Text
+aaclAppsId
+  = lens _aaclAppsId (\ s a -> s{_aaclAppsId = a})
+
+-- | Controls the set of fields returned in the LIST response.
+aaclView :: Lens' AppsAuthorizedCertificatesList (Maybe Text)
+aaclView = lens _aaclView (\ s a -> s{_aaclView = a})
+
+-- | Continuation token for fetching the next page of results.
+aaclPageToken :: Lens' AppsAuthorizedCertificatesList (Maybe Text)
+aaclPageToken
+  = lens _aaclPageToken
+      (\ s a -> s{_aaclPageToken = a})
+
+-- | Maximum results to return per page.
+aaclPageSize :: Lens' AppsAuthorizedCertificatesList (Maybe Int32)
+aaclPageSize
+  = lens _aaclPageSize (\ s a -> s{_aaclPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+aaclCallback :: Lens' AppsAuthorizedCertificatesList (Maybe Text)
+aaclCallback
+  = lens _aaclCallback (\ s a -> s{_aaclCallback = a})
+
+instance GoogleRequest AppsAuthorizedCertificatesList
+         where
+        type Rs AppsAuthorizedCertificatesList =
+             ListAuthorizedCertificatesResponse
+        type Scopes AppsAuthorizedCertificatesList =
+             '["https://www.googleapis.com/auth/appengine.admin",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient AppsAuthorizedCertificatesList'{..}
+          = go _aaclAppsId _aaclXgafv _aaclUploadProtocol
+              _aaclAccessToken
+              _aaclUploadType
+              _aaclView
+              _aaclPageToken
+              _aaclPageSize
+              _aaclCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsAuthorizedCertificatesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedCertificates/Patch.hs
@@ -0,0 +1,203 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified SSL certificate. To renew a certificate and
+-- maintain its existing domain mappings, update certificate_data with a
+-- new certificate. The new certificate must be applicable to the same
+-- domains as the original certificate. The certificate display_name may
+-- also be updated.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.authorizedCertificates.patch@.
+module Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Patch
+    (
+    -- * REST Resource
+      AppsAuthorizedCertificatesPatchResource
+
+    -- * Creating a Request
+    , appsAuthorizedCertificatesPatch
+    , AppsAuthorizedCertificatesPatch
+
+    -- * Request Lenses
+    , aacpAuthorizedCertificatesId
+    , aacpXgafv
+    , aacpUploadProtocol
+    , aacpUpdateMask
+    , aacpAccessToken
+    , aacpUploadType
+    , aacpPayload
+    , aacpAppsId
+    , aacpCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.authorizedCertificates.patch@ method which the
+-- 'AppsAuthorizedCertificatesPatch' request conforms to.
+type AppsAuthorizedCertificatesPatchResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "authorizedCertificates" :>
+             Capture "authorizedCertificatesId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "updateMask" GFieldMask :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] AuthorizedCertificate :>
+                               Patch '[JSON] AuthorizedCertificate
+
+-- | Updates the specified SSL certificate. To renew a certificate and
+-- maintain its existing domain mappings, update certificate_data with a
+-- new certificate. The new certificate must be applicable to the same
+-- domains as the original certificate. The certificate display_name may
+-- also be updated.
+--
+-- /See:/ 'appsAuthorizedCertificatesPatch' smart constructor.
+data AppsAuthorizedCertificatesPatch = AppsAuthorizedCertificatesPatch'
+    { _aacpAuthorizedCertificatesId :: !Text
+    , _aacpXgafv                    :: !(Maybe Xgafv)
+    , _aacpUploadProtocol           :: !(Maybe Text)
+    , _aacpUpdateMask               :: !(Maybe GFieldMask)
+    , _aacpAccessToken              :: !(Maybe Text)
+    , _aacpUploadType               :: !(Maybe Text)
+    , _aacpPayload                  :: !AuthorizedCertificate
+    , _aacpAppsId                   :: !Text
+    , _aacpCallback                 :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsAuthorizedCertificatesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aacpAuthorizedCertificatesId'
+--
+-- * 'aacpXgafv'
+--
+-- * 'aacpUploadProtocol'
+--
+-- * 'aacpUpdateMask'
+--
+-- * 'aacpAccessToken'
+--
+-- * 'aacpUploadType'
+--
+-- * 'aacpPayload'
+--
+-- * 'aacpAppsId'
+--
+-- * 'aacpCallback'
+appsAuthorizedCertificatesPatch
+    :: Text -- ^ 'aacpAuthorizedCertificatesId'
+    -> AuthorizedCertificate -- ^ 'aacpPayload'
+    -> Text -- ^ 'aacpAppsId'
+    -> AppsAuthorizedCertificatesPatch
+appsAuthorizedCertificatesPatch pAacpAuthorizedCertificatesId_ pAacpPayload_ pAacpAppsId_ =
+    AppsAuthorizedCertificatesPatch'
+    { _aacpAuthorizedCertificatesId = pAacpAuthorizedCertificatesId_
+    , _aacpXgafv = Nothing
+    , _aacpUploadProtocol = Nothing
+    , _aacpUpdateMask = Nothing
+    , _aacpAccessToken = Nothing
+    , _aacpUploadType = Nothing
+    , _aacpPayload = pAacpPayload_
+    , _aacpAppsId = pAacpAppsId_
+    , _aacpCallback = Nothing
+    }
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+aacpAuthorizedCertificatesId :: Lens' AppsAuthorizedCertificatesPatch Text
+aacpAuthorizedCertificatesId
+  = lens _aacpAuthorizedCertificatesId
+      (\ s a -> s{_aacpAuthorizedCertificatesId = a})
+
+-- | V1 error format.
+aacpXgafv :: Lens' AppsAuthorizedCertificatesPatch (Maybe Xgafv)
+aacpXgafv
+  = lens _aacpXgafv (\ s a -> s{_aacpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aacpUploadProtocol :: Lens' AppsAuthorizedCertificatesPatch (Maybe Text)
+aacpUploadProtocol
+  = lens _aacpUploadProtocol
+      (\ s a -> s{_aacpUploadProtocol = a})
+
+-- | Standard field mask for the set of fields to be updated. Updates are
+-- only supported on the certificate_raw_data and display_name fields.
+aacpUpdateMask :: Lens' AppsAuthorizedCertificatesPatch (Maybe GFieldMask)
+aacpUpdateMask
+  = lens _aacpUpdateMask
+      (\ s a -> s{_aacpUpdateMask = a})
+
+-- | OAuth access token.
+aacpAccessToken :: Lens' AppsAuthorizedCertificatesPatch (Maybe Text)
+aacpAccessToken
+  = lens _aacpAccessToken
+      (\ s a -> s{_aacpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aacpUploadType :: Lens' AppsAuthorizedCertificatesPatch (Maybe Text)
+aacpUploadType
+  = lens _aacpUploadType
+      (\ s a -> s{_aacpUploadType = a})
+
+-- | Multipart request metadata.
+aacpPayload :: Lens' AppsAuthorizedCertificatesPatch AuthorizedCertificate
+aacpPayload
+  = lens _aacpPayload (\ s a -> s{_aacpPayload = a})
+
+-- | Part of \`name\`. Name of the resource to update. Example:
+-- apps\/myapp\/authorizedCertificates\/12345.
+aacpAppsId :: Lens' AppsAuthorizedCertificatesPatch Text
+aacpAppsId
+  = lens _aacpAppsId (\ s a -> s{_aacpAppsId = a})
+
+-- | JSONP
+aacpCallback :: Lens' AppsAuthorizedCertificatesPatch (Maybe Text)
+aacpCallback
+  = lens _aacpCallback (\ s a -> s{_aacpCallback = a})
+
+instance GoogleRequest
+         AppsAuthorizedCertificatesPatch where
+        type Rs AppsAuthorizedCertificatesPatch =
+             AuthorizedCertificate
+        type Scopes AppsAuthorizedCertificatesPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsAuthorizedCertificatesPatch'{..}
+          = go _aacpAppsId _aacpAuthorizedCertificatesId
+              _aacpXgafv
+              _aacpUploadProtocol
+              _aacpUpdateMask
+              _aacpAccessToken
+              _aacpUploadType
+              _aacpCallback
+              (Just AltJSON)
+              _aacpPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsAuthorizedCertificatesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedDomains/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedDomains/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/AuthorizedDomains/List.hs
@@ -0,0 +1,180 @@
+{-# 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.AuthorizedDomains.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all domains the user is authorized to administer.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.authorizedDomains.list@.
+module Network.Google.Resource.AppEngine.Apps.AuthorizedDomains.List
+    (
+    -- * REST Resource
+      AppsAuthorizedDomainsListResource
+
+    -- * Creating a Request
+    , appsAuthorizedDomainsList
+    , AppsAuthorizedDomainsList
+
+    -- * Request Lenses
+    , aadlXgafv
+    , aadlUploadProtocol
+    , aadlAccessToken
+    , aadlUploadType
+    , aadlAppsId
+    , aadlPageToken
+    , aadlPageSize
+    , aadlCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.authorizedDomains.list@ method which the
+-- 'AppsAuthorizedDomainsList' request conforms to.
+type AppsAuthorizedDomainsListResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "authorizedDomains" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListAuthorizedDomainsResponse
+
+-- | Lists all domains the user is authorized to administer.
+--
+-- /See:/ 'appsAuthorizedDomainsList' smart constructor.
+data AppsAuthorizedDomainsList = AppsAuthorizedDomainsList'
+    { _aadlXgafv          :: !(Maybe Xgafv)
+    , _aadlUploadProtocol :: !(Maybe Text)
+    , _aadlAccessToken    :: !(Maybe Text)
+    , _aadlUploadType     :: !(Maybe Text)
+    , _aadlAppsId         :: !Text
+    , _aadlPageToken      :: !(Maybe Text)
+    , _aadlPageSize       :: !(Maybe (Textual Int32))
+    , _aadlCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsAuthorizedDomainsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aadlXgafv'
+--
+-- * 'aadlUploadProtocol'
+--
+-- * 'aadlAccessToken'
+--
+-- * 'aadlUploadType'
+--
+-- * 'aadlAppsId'
+--
+-- * 'aadlPageToken'
+--
+-- * 'aadlPageSize'
+--
+-- * 'aadlCallback'
+appsAuthorizedDomainsList
+    :: Text -- ^ 'aadlAppsId'
+    -> AppsAuthorizedDomainsList
+appsAuthorizedDomainsList pAadlAppsId_ =
+    AppsAuthorizedDomainsList'
+    { _aadlXgafv = Nothing
+    , _aadlUploadProtocol = Nothing
+    , _aadlAccessToken = Nothing
+    , _aadlUploadType = Nothing
+    , _aadlAppsId = pAadlAppsId_
+    , _aadlPageToken = Nothing
+    , _aadlPageSize = Nothing
+    , _aadlCallback = Nothing
+    }
+
+-- | V1 error format.
+aadlXgafv :: Lens' AppsAuthorizedDomainsList (Maybe Xgafv)
+aadlXgafv
+  = lens _aadlXgafv (\ s a -> s{_aadlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+aadlUploadProtocol :: Lens' AppsAuthorizedDomainsList (Maybe Text)
+aadlUploadProtocol
+  = lens _aadlUploadProtocol
+      (\ s a -> s{_aadlUploadProtocol = a})
+
+-- | OAuth access token.
+aadlAccessToken :: Lens' AppsAuthorizedDomainsList (Maybe Text)
+aadlAccessToken
+  = lens _aadlAccessToken
+      (\ s a -> s{_aadlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+aadlUploadType :: Lens' AppsAuthorizedDomainsList (Maybe Text)
+aadlUploadType
+  = lens _aadlUploadType
+      (\ s a -> s{_aadlUploadType = a})
+
+-- | Part of \`parent\`. Name of the parent Application resource. Example:
+-- apps\/myapp.
+aadlAppsId :: Lens' AppsAuthorizedDomainsList Text
+aadlAppsId
+  = lens _aadlAppsId (\ s a -> s{_aadlAppsId = a})
+
+-- | Continuation token for fetching the next page of results.
+aadlPageToken :: Lens' AppsAuthorizedDomainsList (Maybe Text)
+aadlPageToken
+  = lens _aadlPageToken
+      (\ s a -> s{_aadlPageToken = a})
+
+-- | Maximum results to return per page.
+aadlPageSize :: Lens' AppsAuthorizedDomainsList (Maybe Int32)
+aadlPageSize
+  = lens _aadlPageSize (\ s a -> s{_aadlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+aadlCallback :: Lens' AppsAuthorizedDomainsList (Maybe Text)
+aadlCallback
+  = lens _aadlCallback (\ s a -> s{_aadlCallback = a})
+
+instance GoogleRequest AppsAuthorizedDomainsList
+         where
+        type Rs AppsAuthorizedDomainsList =
+             ListAuthorizedDomainsResponse
+        type Scopes AppsAuthorizedDomainsList =
+             '["https://www.googleapis.com/auth/appengine.admin",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient AppsAuthorizedDomainsList'{..}
+          = go _aadlAppsId _aadlXgafv _aadlUploadProtocol
+              _aadlAccessToken
+              _aadlUploadType
+              _aadlPageToken
+              _aadlPageSize
+              _aadlCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsAuthorizedDomainsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Create.hs b/gen/Network/Google/Resource/AppEngine/Apps/Create.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Create.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Create.hs
@@ -21,12 +21,14 @@
 -- Portability : non-portable (GHC extensions)
 --
 -- Creates an App Engine application for a Google Cloud Platform project.
--- This requires a project that excludes an App Engine application. For
--- details about creating a project without an application, see the Google
--- Cloud Resource Manager create project topic
--- (https:\/\/cloud.google.com\/resource-manager\/docs\/creating-project).
+-- Required fields: id - The ID of the target Cloud Platform project.
+-- location - The region
+-- (https:\/\/cloud.google.com\/appengine\/docs\/locations) where you want
+-- the App Engine application located.For more information about App Engine
+-- applications, see Managing Projects, Applications, and Billing
+-- (https:\/\/cloud.google.com\/appengine\/docs\/standard\/python\/console\/).
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.create@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.create@.
 module Network.Google.Resource.AppEngine.Apps.Create
     (
     -- * REST Resource
@@ -39,11 +41,9 @@
     -- * Request Lenses
     , acXgafv
     , acUploadProtocol
-    , acPp
     , acAccessToken
     , acUploadType
     , acPayload
-    , acBearerToken
     , acCallback
     ) where
 
@@ -55,31 +55,29 @@
 type AppsCreateResource =
      "v1" :>
        "apps" :>
-         QueryParam "$.xgafv" Text :>
+         QueryParam "$.xgafv" Xgafv :>
            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] Application :> Post '[JSON] Operation
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] Application :> Post '[JSON] Operation
 
 -- | Creates an App Engine application for a Google Cloud Platform project.
--- This requires a project that excludes an App Engine application. For
--- details about creating a project without an application, see the Google
--- Cloud Resource Manager create project topic
--- (https:\/\/cloud.google.com\/resource-manager\/docs\/creating-project).
+-- Required fields: id - The ID of the target Cloud Platform project.
+-- location - The region
+-- (https:\/\/cloud.google.com\/appengine\/docs\/locations) where you want
+-- the App Engine application located.For more information about App Engine
+-- applications, see Managing Projects, Applications, and Billing
+-- (https:\/\/cloud.google.com\/appengine\/docs\/standard\/python\/console\/).
 --
 -- /See:/ 'appsCreate' smart constructor.
 data AppsCreate = AppsCreate'
-    { _acXgafv          :: !(Maybe Text)
+    { _acXgafv          :: !(Maybe Xgafv)
     , _acUploadProtocol :: !(Maybe Text)
-    , _acPp             :: !Bool
     , _acAccessToken    :: !(Maybe Text)
     , _acUploadType     :: !(Maybe Text)
     , _acPayload        :: !Application
-    , _acBearerToken    :: !(Maybe Text)
     , _acCallback       :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -91,16 +89,12 @@
 --
 -- * 'acUploadProtocol'
 --
--- * 'acPp'
---
 -- * 'acAccessToken'
 --
 -- * 'acUploadType'
 --
 -- * 'acPayload'
 --
--- * 'acBearerToken'
---
 -- * 'acCallback'
 appsCreate
     :: Application -- ^ 'acPayload'
@@ -109,16 +103,14 @@
     AppsCreate'
     { _acXgafv = Nothing
     , _acUploadProtocol = Nothing
-    , _acPp = True
     , _acAccessToken = Nothing
     , _acUploadType = Nothing
     , _acPayload = pAcPayload_
-    , _acBearerToken = Nothing
     , _acCallback = Nothing
     }
 
 -- | V1 error format.
-acXgafv :: Lens' AppsCreate (Maybe Text)
+acXgafv :: Lens' AppsCreate (Maybe Xgafv)
 acXgafv = lens _acXgafv (\ s a -> s{_acXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -127,10 +119,6 @@
   = lens _acUploadProtocol
       (\ s a -> s{_acUploadProtocol = a})
 
--- | Pretty-print response.
-acPp :: Lens' AppsCreate Bool
-acPp = lens _acPp (\ s a -> s{_acPp = a})
-
 -- | OAuth access token.
 acAccessToken :: Lens' AppsCreate (Maybe Text)
 acAccessToken
@@ -147,12 +135,6 @@
 acPayload
   = lens _acPayload (\ s a -> s{_acPayload = a})
 
--- | OAuth bearer token.
-acBearerToken :: Lens' AppsCreate (Maybe Text)
-acBearerToken
-  = lens _acBearerToken
-      (\ s a -> s{_acBearerToken = a})
-
 -- | JSONP
 acCallback :: Lens' AppsCreate (Maybe Text)
 acCallback
@@ -163,10 +145,8 @@
         type Scopes AppsCreate =
              '["https://www.googleapis.com/auth/cloud-platform"]
         requestClient AppsCreate'{..}
-          = go _acXgafv _acUploadProtocol (Just _acPp)
-              _acAccessToken
+          = go _acXgafv _acUploadProtocol _acAccessToken
               _acUploadType
-              _acBearerToken
               _acCallback
               (Just AltJSON)
               _acPayload
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Create.hs b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Create.hs
@@ -0,0 +1,182 @@
+{-# 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.DomainMAppings.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Maps a domain to an application. A user must be authorized to administer
+-- a domain in order to map it to an application. For a list of available
+-- authorized domains, see AuthorizedDomains.ListAuthorizedDomains.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.domainMappings.create@.
+module Network.Google.Resource.AppEngine.Apps.DomainMAppings.Create
+    (
+    -- * REST Resource
+      AppsDomainMAppingsCreateResource
+
+    -- * Creating a Request
+    , appsDomainMAppingsCreate
+    , AppsDomainMAppingsCreate
+
+    -- * Request Lenses
+    , admacXgafv
+    , admacUploadProtocol
+    , admacAccessToken
+    , admacUploadType
+    , admacPayload
+    , admacOverrideStrategy
+    , admacAppsId
+    , admacCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.domainMappings.create@ method which the
+-- 'AppsDomainMAppingsCreate' request conforms to.
+type AppsDomainMAppingsCreateResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "domainMappings" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "overrideStrategy" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] DomainMApping :>
+                             Post '[JSON] Operation
+
+-- | Maps a domain to an application. A user must be authorized to administer
+-- a domain in order to map it to an application. For a list of available
+-- authorized domains, see AuthorizedDomains.ListAuthorizedDomains.
+--
+-- /See:/ 'appsDomainMAppingsCreate' smart constructor.
+data AppsDomainMAppingsCreate = AppsDomainMAppingsCreate'
+    { _admacXgafv            :: !(Maybe Xgafv)
+    , _admacUploadProtocol   :: !(Maybe Text)
+    , _admacAccessToken      :: !(Maybe Text)
+    , _admacUploadType       :: !(Maybe Text)
+    , _admacPayload          :: !DomainMApping
+    , _admacOverrideStrategy :: !(Maybe Text)
+    , _admacAppsId           :: !Text
+    , _admacCallback         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsDomainMAppingsCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'admacXgafv'
+--
+-- * 'admacUploadProtocol'
+--
+-- * 'admacAccessToken'
+--
+-- * 'admacUploadType'
+--
+-- * 'admacPayload'
+--
+-- * 'admacOverrideStrategy'
+--
+-- * 'admacAppsId'
+--
+-- * 'admacCallback'
+appsDomainMAppingsCreate
+    :: DomainMApping -- ^ 'admacPayload'
+    -> Text -- ^ 'admacAppsId'
+    -> AppsDomainMAppingsCreate
+appsDomainMAppingsCreate pAdmacPayload_ pAdmacAppsId_ =
+    AppsDomainMAppingsCreate'
+    { _admacXgafv = Nothing
+    , _admacUploadProtocol = Nothing
+    , _admacAccessToken = Nothing
+    , _admacUploadType = Nothing
+    , _admacPayload = pAdmacPayload_
+    , _admacOverrideStrategy = Nothing
+    , _admacAppsId = pAdmacAppsId_
+    , _admacCallback = Nothing
+    }
+
+-- | V1 error format.
+admacXgafv :: Lens' AppsDomainMAppingsCreate (Maybe Xgafv)
+admacXgafv
+  = lens _admacXgafv (\ s a -> s{_admacXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+admacUploadProtocol :: Lens' AppsDomainMAppingsCreate (Maybe Text)
+admacUploadProtocol
+  = lens _admacUploadProtocol
+      (\ s a -> s{_admacUploadProtocol = a})
+
+-- | OAuth access token.
+admacAccessToken :: Lens' AppsDomainMAppingsCreate (Maybe Text)
+admacAccessToken
+  = lens _admacAccessToken
+      (\ s a -> s{_admacAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+admacUploadType :: Lens' AppsDomainMAppingsCreate (Maybe Text)
+admacUploadType
+  = lens _admacUploadType
+      (\ s a -> s{_admacUploadType = a})
+
+-- | Multipart request metadata.
+admacPayload :: Lens' AppsDomainMAppingsCreate DomainMApping
+admacPayload
+  = lens _admacPayload (\ s a -> s{_admacPayload = a})
+
+-- | Whether the domain creation should override any existing mappings for
+-- this domain. By default, overrides are rejected.
+admacOverrideStrategy :: Lens' AppsDomainMAppingsCreate (Maybe Text)
+admacOverrideStrategy
+  = lens _admacOverrideStrategy
+      (\ s a -> s{_admacOverrideStrategy = a})
+
+-- | Part of \`parent\`. Name of the parent Application resource. Example:
+-- apps\/myapp.
+admacAppsId :: Lens' AppsDomainMAppingsCreate Text
+admacAppsId
+  = lens _admacAppsId (\ s a -> s{_admacAppsId = a})
+
+-- | JSONP
+admacCallback :: Lens' AppsDomainMAppingsCreate (Maybe Text)
+admacCallback
+  = lens _admacCallback
+      (\ s a -> s{_admacCallback = a})
+
+instance GoogleRequest AppsDomainMAppingsCreate where
+        type Rs AppsDomainMAppingsCreate = Operation
+        type Scopes AppsDomainMAppingsCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsDomainMAppingsCreate'{..}
+          = go _admacAppsId _admacXgafv _admacUploadProtocol
+              _admacAccessToken
+              _admacUploadType
+              _admacOverrideStrategy
+              _admacCallback
+              (Just AltJSON)
+              _admacPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsDomainMAppingsCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Delete.hs
@@ -0,0 +1,168 @@
+{-# 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.DomainMAppings.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified domain mapping. A user must be authorized to
+-- administer the associated domain in order to delete a DomainMapping
+-- resource.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.domainMappings.delete@.
+module Network.Google.Resource.AppEngine.Apps.DomainMAppings.Delete
+    (
+    -- * REST Resource
+      AppsDomainMAppingsDeleteResource
+
+    -- * Creating a Request
+    , appsDomainMAppingsDelete
+    , AppsDomainMAppingsDelete
+
+    -- * Request Lenses
+    , admadXgafv
+    , admadUploadProtocol
+    , admadAccessToken
+    , admadUploadType
+    , admadAppsId
+    , admadDomainMAppingsId
+    , admadCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.domainMappings.delete@ method which the
+-- 'AppsDomainMAppingsDelete' request conforms to.
+type AppsDomainMAppingsDeleteResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "domainMappings" :>
+             Capture "domainMappingsId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Delete '[JSON] Operation
+
+-- | Deletes the specified domain mapping. A user must be authorized to
+-- administer the associated domain in order to delete a DomainMapping
+-- resource.
+--
+-- /See:/ 'appsDomainMAppingsDelete' smart constructor.
+data AppsDomainMAppingsDelete = AppsDomainMAppingsDelete'
+    { _admadXgafv            :: !(Maybe Xgafv)
+    , _admadUploadProtocol   :: !(Maybe Text)
+    , _admadAccessToken      :: !(Maybe Text)
+    , _admadUploadType       :: !(Maybe Text)
+    , _admadAppsId           :: !Text
+    , _admadDomainMAppingsId :: !Text
+    , _admadCallback         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsDomainMAppingsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'admadXgafv'
+--
+-- * 'admadUploadProtocol'
+--
+-- * 'admadAccessToken'
+--
+-- * 'admadUploadType'
+--
+-- * 'admadAppsId'
+--
+-- * 'admadDomainMAppingsId'
+--
+-- * 'admadCallback'
+appsDomainMAppingsDelete
+    :: Text -- ^ 'admadAppsId'
+    -> Text -- ^ 'admadDomainMAppingsId'
+    -> AppsDomainMAppingsDelete
+appsDomainMAppingsDelete pAdmadAppsId_ pAdmadDomainMAppingsId_ =
+    AppsDomainMAppingsDelete'
+    { _admadXgafv = Nothing
+    , _admadUploadProtocol = Nothing
+    , _admadAccessToken = Nothing
+    , _admadUploadType = Nothing
+    , _admadAppsId = pAdmadAppsId_
+    , _admadDomainMAppingsId = pAdmadDomainMAppingsId_
+    , _admadCallback = Nothing
+    }
+
+-- | V1 error format.
+admadXgafv :: Lens' AppsDomainMAppingsDelete (Maybe Xgafv)
+admadXgafv
+  = lens _admadXgafv (\ s a -> s{_admadXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+admadUploadProtocol :: Lens' AppsDomainMAppingsDelete (Maybe Text)
+admadUploadProtocol
+  = lens _admadUploadProtocol
+      (\ s a -> s{_admadUploadProtocol = a})
+
+-- | OAuth access token.
+admadAccessToken :: Lens' AppsDomainMAppingsDelete (Maybe Text)
+admadAccessToken
+  = lens _admadAccessToken
+      (\ s a -> s{_admadAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+admadUploadType :: Lens' AppsDomainMAppingsDelete (Maybe Text)
+admadUploadType
+  = lens _admadUploadType
+      (\ s a -> s{_admadUploadType = a})
+
+-- | Part of \`name\`. Name of the resource to delete. Example:
+-- apps\/myapp\/domainMappings\/example.com.
+admadAppsId :: Lens' AppsDomainMAppingsDelete Text
+admadAppsId
+  = lens _admadAppsId (\ s a -> s{_admadAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+admadDomainMAppingsId :: Lens' AppsDomainMAppingsDelete Text
+admadDomainMAppingsId
+  = lens _admadDomainMAppingsId
+      (\ s a -> s{_admadDomainMAppingsId = a})
+
+-- | JSONP
+admadCallback :: Lens' AppsDomainMAppingsDelete (Maybe Text)
+admadCallback
+  = lens _admadCallback
+      (\ s a -> s{_admadCallback = a})
+
+instance GoogleRequest AppsDomainMAppingsDelete where
+        type Rs AppsDomainMAppingsDelete = Operation
+        type Scopes AppsDomainMAppingsDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsDomainMAppingsDelete'{..}
+          = go _admadAppsId _admadDomainMAppingsId _admadXgafv
+              _admadUploadProtocol
+              _admadAccessToken
+              _admadUploadType
+              _admadCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsDomainMAppingsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Get.hs
@@ -0,0 +1,166 @@
+{-# 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.DomainMAppings.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 specified domain mapping.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.domainMappings.get@.
+module Network.Google.Resource.AppEngine.Apps.DomainMAppings.Get
+    (
+    -- * REST Resource
+      AppsDomainMAppingsGetResource
+
+    -- * Creating a Request
+    , appsDomainMAppingsGet
+    , AppsDomainMAppingsGet
+
+    -- * Request Lenses
+    , admagXgafv
+    , admagUploadProtocol
+    , admagAccessToken
+    , admagUploadType
+    , admagAppsId
+    , admagDomainMAppingsId
+    , admagCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.domainMappings.get@ method which the
+-- 'AppsDomainMAppingsGet' request conforms to.
+type AppsDomainMAppingsGetResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "domainMappings" :>
+             Capture "domainMappingsId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] DomainMApping
+
+-- | Gets the specified domain mapping.
+--
+-- /See:/ 'appsDomainMAppingsGet' smart constructor.
+data AppsDomainMAppingsGet = AppsDomainMAppingsGet'
+    { _admagXgafv            :: !(Maybe Xgafv)
+    , _admagUploadProtocol   :: !(Maybe Text)
+    , _admagAccessToken      :: !(Maybe Text)
+    , _admagUploadType       :: !(Maybe Text)
+    , _admagAppsId           :: !Text
+    , _admagDomainMAppingsId :: !Text
+    , _admagCallback         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsDomainMAppingsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'admagXgafv'
+--
+-- * 'admagUploadProtocol'
+--
+-- * 'admagAccessToken'
+--
+-- * 'admagUploadType'
+--
+-- * 'admagAppsId'
+--
+-- * 'admagDomainMAppingsId'
+--
+-- * 'admagCallback'
+appsDomainMAppingsGet
+    :: Text -- ^ 'admagAppsId'
+    -> Text -- ^ 'admagDomainMAppingsId'
+    -> AppsDomainMAppingsGet
+appsDomainMAppingsGet pAdmagAppsId_ pAdmagDomainMAppingsId_ =
+    AppsDomainMAppingsGet'
+    { _admagXgafv = Nothing
+    , _admagUploadProtocol = Nothing
+    , _admagAccessToken = Nothing
+    , _admagUploadType = Nothing
+    , _admagAppsId = pAdmagAppsId_
+    , _admagDomainMAppingsId = pAdmagDomainMAppingsId_
+    , _admagCallback = Nothing
+    }
+
+-- | V1 error format.
+admagXgafv :: Lens' AppsDomainMAppingsGet (Maybe Xgafv)
+admagXgafv
+  = lens _admagXgafv (\ s a -> s{_admagXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+admagUploadProtocol :: Lens' AppsDomainMAppingsGet (Maybe Text)
+admagUploadProtocol
+  = lens _admagUploadProtocol
+      (\ s a -> s{_admagUploadProtocol = a})
+
+-- | OAuth access token.
+admagAccessToken :: Lens' AppsDomainMAppingsGet (Maybe Text)
+admagAccessToken
+  = lens _admagAccessToken
+      (\ s a -> s{_admagAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+admagUploadType :: Lens' AppsDomainMAppingsGet (Maybe Text)
+admagUploadType
+  = lens _admagUploadType
+      (\ s a -> s{_admagUploadType = a})
+
+-- | Part of \`name\`. Name of the resource requested. Example:
+-- apps\/myapp\/domainMappings\/example.com.
+admagAppsId :: Lens' AppsDomainMAppingsGet Text
+admagAppsId
+  = lens _admagAppsId (\ s a -> s{_admagAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+admagDomainMAppingsId :: Lens' AppsDomainMAppingsGet Text
+admagDomainMAppingsId
+  = lens _admagDomainMAppingsId
+      (\ s a -> s{_admagDomainMAppingsId = a})
+
+-- | JSONP
+admagCallback :: Lens' AppsDomainMAppingsGet (Maybe Text)
+admagCallback
+  = lens _admagCallback
+      (\ s a -> s{_admagCallback = a})
+
+instance GoogleRequest AppsDomainMAppingsGet where
+        type Rs AppsDomainMAppingsGet = DomainMApping
+        type Scopes AppsDomainMAppingsGet =
+             '["https://www.googleapis.com/auth/appengine.admin",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient AppsDomainMAppingsGet'{..}
+          = go _admagAppsId _admagDomainMAppingsId _admagXgafv
+              _admagUploadProtocol
+              _admagAccessToken
+              _admagUploadType
+              _admagCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsDomainMAppingsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/List.hs
@@ -0,0 +1,181 @@
+{-# 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.DomainMAppings.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the domain mappings on an application.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.domainMappings.list@.
+module Network.Google.Resource.AppEngine.Apps.DomainMAppings.List
+    (
+    -- * REST Resource
+      AppsDomainMAppingsListResource
+
+    -- * Creating a Request
+    , appsDomainMAppingsList
+    , AppsDomainMAppingsList
+
+    -- * Request Lenses
+    , admalXgafv
+    , admalUploadProtocol
+    , admalAccessToken
+    , admalUploadType
+    , admalAppsId
+    , admalPageToken
+    , admalPageSize
+    , admalCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.domainMappings.list@ method which the
+-- 'AppsDomainMAppingsList' request conforms to.
+type AppsDomainMAppingsListResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "domainMappings" :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListDomainMAppingsResponse
+
+-- | Lists the domain mappings on an application.
+--
+-- /See:/ 'appsDomainMAppingsList' smart constructor.
+data AppsDomainMAppingsList = AppsDomainMAppingsList'
+    { _admalXgafv          :: !(Maybe Xgafv)
+    , _admalUploadProtocol :: !(Maybe Text)
+    , _admalAccessToken    :: !(Maybe Text)
+    , _admalUploadType     :: !(Maybe Text)
+    , _admalAppsId         :: !Text
+    , _admalPageToken      :: !(Maybe Text)
+    , _admalPageSize       :: !(Maybe (Textual Int32))
+    , _admalCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsDomainMAppingsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'admalXgafv'
+--
+-- * 'admalUploadProtocol'
+--
+-- * 'admalAccessToken'
+--
+-- * 'admalUploadType'
+--
+-- * 'admalAppsId'
+--
+-- * 'admalPageToken'
+--
+-- * 'admalPageSize'
+--
+-- * 'admalCallback'
+appsDomainMAppingsList
+    :: Text -- ^ 'admalAppsId'
+    -> AppsDomainMAppingsList
+appsDomainMAppingsList pAdmalAppsId_ =
+    AppsDomainMAppingsList'
+    { _admalXgafv = Nothing
+    , _admalUploadProtocol = Nothing
+    , _admalAccessToken = Nothing
+    , _admalUploadType = Nothing
+    , _admalAppsId = pAdmalAppsId_
+    , _admalPageToken = Nothing
+    , _admalPageSize = Nothing
+    , _admalCallback = Nothing
+    }
+
+-- | V1 error format.
+admalXgafv :: Lens' AppsDomainMAppingsList (Maybe Xgafv)
+admalXgafv
+  = lens _admalXgafv (\ s a -> s{_admalXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+admalUploadProtocol :: Lens' AppsDomainMAppingsList (Maybe Text)
+admalUploadProtocol
+  = lens _admalUploadProtocol
+      (\ s a -> s{_admalUploadProtocol = a})
+
+-- | OAuth access token.
+admalAccessToken :: Lens' AppsDomainMAppingsList (Maybe Text)
+admalAccessToken
+  = lens _admalAccessToken
+      (\ s a -> s{_admalAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+admalUploadType :: Lens' AppsDomainMAppingsList (Maybe Text)
+admalUploadType
+  = lens _admalUploadType
+      (\ s a -> s{_admalUploadType = a})
+
+-- | Part of \`parent\`. Name of the parent Application resource. Example:
+-- apps\/myapp.
+admalAppsId :: Lens' AppsDomainMAppingsList Text
+admalAppsId
+  = lens _admalAppsId (\ s a -> s{_admalAppsId = a})
+
+-- | Continuation token for fetching the next page of results.
+admalPageToken :: Lens' AppsDomainMAppingsList (Maybe Text)
+admalPageToken
+  = lens _admalPageToken
+      (\ s a -> s{_admalPageToken = a})
+
+-- | Maximum results to return per page.
+admalPageSize :: Lens' AppsDomainMAppingsList (Maybe Int32)
+admalPageSize
+  = lens _admalPageSize
+      (\ s a -> s{_admalPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+admalCallback :: Lens' AppsDomainMAppingsList (Maybe Text)
+admalCallback
+  = lens _admalCallback
+      (\ s a -> s{_admalCallback = a})
+
+instance GoogleRequest AppsDomainMAppingsList where
+        type Rs AppsDomainMAppingsList =
+             ListDomainMAppingsResponse
+        type Scopes AppsDomainMAppingsList =
+             '["https://www.googleapis.com/auth/appengine.admin",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient AppsDomainMAppingsList'{..}
+          = go _admalAppsId _admalXgafv _admalUploadProtocol
+              _admalAccessToken
+              _admalUploadType
+              _admalPageToken
+              _admalPageSize
+              _admalCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsDomainMAppingsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/DomainMAppings/Patch.hs
@@ -0,0 +1,197 @@
+{-# 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.DomainMAppings.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified domain mapping. To map an SSL certificate to a
+-- domain mapping, update certificate_id to point to an
+-- AuthorizedCertificate resource. A user must be authorized to administer
+-- the associated domain in order to update a DomainMapping resource.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.domainMappings.patch@.
+module Network.Google.Resource.AppEngine.Apps.DomainMAppings.Patch
+    (
+    -- * REST Resource
+      AppsDomainMAppingsPatchResource
+
+    -- * Creating a Request
+    , appsDomainMAppingsPatch
+    , AppsDomainMAppingsPatch
+
+    -- * Request Lenses
+    , admapXgafv
+    , admapUploadProtocol
+    , admapUpdateMask
+    , admapAccessToken
+    , admapUploadType
+    , admapPayload
+    , admapAppsId
+    , admapDomainMAppingsId
+    , admapCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.domainMappings.patch@ method which the
+-- 'AppsDomainMAppingsPatch' request conforms to.
+type AppsDomainMAppingsPatchResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "domainMappings" :>
+             Capture "domainMappingsId" Text :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "updateMask" GFieldMask :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] DomainMApping :>
+                               Patch '[JSON] Operation
+
+-- | Updates the specified domain mapping. To map an SSL certificate to a
+-- domain mapping, update certificate_id to point to an
+-- AuthorizedCertificate resource. A user must be authorized to administer
+-- the associated domain in order to update a DomainMapping resource.
+--
+-- /See:/ 'appsDomainMAppingsPatch' smart constructor.
+data AppsDomainMAppingsPatch = AppsDomainMAppingsPatch'
+    { _admapXgafv            :: !(Maybe Xgafv)
+    , _admapUploadProtocol   :: !(Maybe Text)
+    , _admapUpdateMask       :: !(Maybe GFieldMask)
+    , _admapAccessToken      :: !(Maybe Text)
+    , _admapUploadType       :: !(Maybe Text)
+    , _admapPayload          :: !DomainMApping
+    , _admapAppsId           :: !Text
+    , _admapDomainMAppingsId :: !Text
+    , _admapCallback         :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsDomainMAppingsPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'admapXgafv'
+--
+-- * 'admapUploadProtocol'
+--
+-- * 'admapUpdateMask'
+--
+-- * 'admapAccessToken'
+--
+-- * 'admapUploadType'
+--
+-- * 'admapPayload'
+--
+-- * 'admapAppsId'
+--
+-- * 'admapDomainMAppingsId'
+--
+-- * 'admapCallback'
+appsDomainMAppingsPatch
+    :: DomainMApping -- ^ 'admapPayload'
+    -> Text -- ^ 'admapAppsId'
+    -> Text -- ^ 'admapDomainMAppingsId'
+    -> AppsDomainMAppingsPatch
+appsDomainMAppingsPatch pAdmapPayload_ pAdmapAppsId_ pAdmapDomainMAppingsId_ =
+    AppsDomainMAppingsPatch'
+    { _admapXgafv = Nothing
+    , _admapUploadProtocol = Nothing
+    , _admapUpdateMask = Nothing
+    , _admapAccessToken = Nothing
+    , _admapUploadType = Nothing
+    , _admapPayload = pAdmapPayload_
+    , _admapAppsId = pAdmapAppsId_
+    , _admapDomainMAppingsId = pAdmapDomainMAppingsId_
+    , _admapCallback = Nothing
+    }
+
+-- | V1 error format.
+admapXgafv :: Lens' AppsDomainMAppingsPatch (Maybe Xgafv)
+admapXgafv
+  = lens _admapXgafv (\ s a -> s{_admapXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+admapUploadProtocol :: Lens' AppsDomainMAppingsPatch (Maybe Text)
+admapUploadProtocol
+  = lens _admapUploadProtocol
+      (\ s a -> s{_admapUploadProtocol = a})
+
+-- | Standard field mask for the set of fields to be updated.
+admapUpdateMask :: Lens' AppsDomainMAppingsPatch (Maybe GFieldMask)
+admapUpdateMask
+  = lens _admapUpdateMask
+      (\ s a -> s{_admapUpdateMask = a})
+
+-- | OAuth access token.
+admapAccessToken :: Lens' AppsDomainMAppingsPatch (Maybe Text)
+admapAccessToken
+  = lens _admapAccessToken
+      (\ s a -> s{_admapAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+admapUploadType :: Lens' AppsDomainMAppingsPatch (Maybe Text)
+admapUploadType
+  = lens _admapUploadType
+      (\ s a -> s{_admapUploadType = a})
+
+-- | Multipart request metadata.
+admapPayload :: Lens' AppsDomainMAppingsPatch DomainMApping
+admapPayload
+  = lens _admapPayload (\ s a -> s{_admapPayload = a})
+
+-- | Part of \`name\`. Name of the resource to update. Example:
+-- apps\/myapp\/domainMappings\/example.com.
+admapAppsId :: Lens' AppsDomainMAppingsPatch Text
+admapAppsId
+  = lens _admapAppsId (\ s a -> s{_admapAppsId = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+admapDomainMAppingsId :: Lens' AppsDomainMAppingsPatch Text
+admapDomainMAppingsId
+  = lens _admapDomainMAppingsId
+      (\ s a -> s{_admapDomainMAppingsId = a})
+
+-- | JSONP
+admapCallback :: Lens' AppsDomainMAppingsPatch (Maybe Text)
+admapCallback
+  = lens _admapCallback
+      (\ s a -> s{_admapCallback = a})
+
+instance GoogleRequest AppsDomainMAppingsPatch where
+        type Rs AppsDomainMAppingsPatch = Operation
+        type Scopes AppsDomainMAppingsPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsDomainMAppingsPatch'{..}
+          = go _admapAppsId _admapDomainMAppingsId _admapXgafv
+              _admapUploadProtocol
+              _admapUpdateMask
+              _admapAccessToken
+              _admapUploadType
+              _admapCallback
+              (Just AltJSON)
+              _admapPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsDomainMAppingsPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/BatchUpdate.hs b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/BatchUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/BatchUpdate.hs
@@ -0,0 +1,178 @@
+{-# 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.Firewall.IngressRules.BatchUpdate
+-- 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)
+--
+-- Replaces the entire firewall ruleset in one bulk operation. This
+-- overrides and replaces the rules of an existing firewall with the new
+-- rules.If the final rule does not match traffic with the \'*\' wildcard
+-- IP range, then an \"allow all\" rule is explicitly added to the end of
+-- the list.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.firewall.ingressRules.batchUpdate@.
+module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.BatchUpdate
+    (
+    -- * REST Resource
+      AppsFirewallIngressRulesBatchUpdateResource
+
+    -- * Creating a Request
+    , appsFirewallIngressRulesBatchUpdate
+    , AppsFirewallIngressRulesBatchUpdate
+
+    -- * Request Lenses
+    , afirbuXgafv
+    , afirbuUploadProtocol
+    , afirbuAccessToken
+    , afirbuUploadType
+    , afirbuPayload
+    , afirbuAppsId
+    , afirbuCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.firewall.ingressRules.batchUpdate@ method which the
+-- 'AppsFirewallIngressRulesBatchUpdate' request conforms to.
+type AppsFirewallIngressRulesBatchUpdateResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "firewall" :>
+             "ingressRules:batchUpdate" :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] BatchUpdateIngressRulesRequest :>
+                             Post '[JSON] BatchUpdateIngressRulesResponse
+
+-- | Replaces the entire firewall ruleset in one bulk operation. This
+-- overrides and replaces the rules of an existing firewall with the new
+-- rules.If the final rule does not match traffic with the \'*\' wildcard
+-- IP range, then an \"allow all\" rule is explicitly added to the end of
+-- the list.
+--
+-- /See:/ 'appsFirewallIngressRulesBatchUpdate' smart constructor.
+data AppsFirewallIngressRulesBatchUpdate = AppsFirewallIngressRulesBatchUpdate'
+    { _afirbuXgafv          :: !(Maybe Xgafv)
+    , _afirbuUploadProtocol :: !(Maybe Text)
+    , _afirbuAccessToken    :: !(Maybe Text)
+    , _afirbuUploadType     :: !(Maybe Text)
+    , _afirbuPayload        :: !BatchUpdateIngressRulesRequest
+    , _afirbuAppsId         :: !Text
+    , _afirbuCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsFirewallIngressRulesBatchUpdate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afirbuXgafv'
+--
+-- * 'afirbuUploadProtocol'
+--
+-- * 'afirbuAccessToken'
+--
+-- * 'afirbuUploadType'
+--
+-- * 'afirbuPayload'
+--
+-- * 'afirbuAppsId'
+--
+-- * 'afirbuCallback'
+appsFirewallIngressRulesBatchUpdate
+    :: BatchUpdateIngressRulesRequest -- ^ 'afirbuPayload'
+    -> Text -- ^ 'afirbuAppsId'
+    -> AppsFirewallIngressRulesBatchUpdate
+appsFirewallIngressRulesBatchUpdate pAfirbuPayload_ pAfirbuAppsId_ =
+    AppsFirewallIngressRulesBatchUpdate'
+    { _afirbuXgafv = Nothing
+    , _afirbuUploadProtocol = Nothing
+    , _afirbuAccessToken = Nothing
+    , _afirbuUploadType = Nothing
+    , _afirbuPayload = pAfirbuPayload_
+    , _afirbuAppsId = pAfirbuAppsId_
+    , _afirbuCallback = Nothing
+    }
+
+-- | V1 error format.
+afirbuXgafv :: Lens' AppsFirewallIngressRulesBatchUpdate (Maybe Xgafv)
+afirbuXgafv
+  = lens _afirbuXgafv (\ s a -> s{_afirbuXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+afirbuUploadProtocol :: Lens' AppsFirewallIngressRulesBatchUpdate (Maybe Text)
+afirbuUploadProtocol
+  = lens _afirbuUploadProtocol
+      (\ s a -> s{_afirbuUploadProtocol = a})
+
+-- | OAuth access token.
+afirbuAccessToken :: Lens' AppsFirewallIngressRulesBatchUpdate (Maybe Text)
+afirbuAccessToken
+  = lens _afirbuAccessToken
+      (\ s a -> s{_afirbuAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+afirbuUploadType :: Lens' AppsFirewallIngressRulesBatchUpdate (Maybe Text)
+afirbuUploadType
+  = lens _afirbuUploadType
+      (\ s a -> s{_afirbuUploadType = a})
+
+-- | Multipart request metadata.
+afirbuPayload :: Lens' AppsFirewallIngressRulesBatchUpdate BatchUpdateIngressRulesRequest
+afirbuPayload
+  = lens _afirbuPayload
+      (\ s a -> s{_afirbuPayload = a})
+
+-- | Part of \`name\`. Name of the Firewall collection to set. Example:
+-- apps\/myapp\/firewall\/ingressRules.
+afirbuAppsId :: Lens' AppsFirewallIngressRulesBatchUpdate Text
+afirbuAppsId
+  = lens _afirbuAppsId (\ s a -> s{_afirbuAppsId = a})
+
+-- | JSONP
+afirbuCallback :: Lens' AppsFirewallIngressRulesBatchUpdate (Maybe Text)
+afirbuCallback
+  = lens _afirbuCallback
+      (\ s a -> s{_afirbuCallback = a})
+
+instance GoogleRequest
+         AppsFirewallIngressRulesBatchUpdate where
+        type Rs AppsFirewallIngressRulesBatchUpdate =
+             BatchUpdateIngressRulesResponse
+        type Scopes AppsFirewallIngressRulesBatchUpdate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient
+          AppsFirewallIngressRulesBatchUpdate'{..}
+          = go _afirbuAppsId _afirbuXgafv _afirbuUploadProtocol
+              _afirbuAccessToken
+              _afirbuUploadType
+              _afirbuCallback
+              (Just AltJSON)
+              _afirbuPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsFirewallIngressRulesBatchUpdateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Create.hs b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Create.hs
@@ -0,0 +1,167 @@
+{-# 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.Firewall.IngressRules.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a firewall rule for the application.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.firewall.ingressRules.create@.
+module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Create
+    (
+    -- * REST Resource
+      AppsFirewallIngressRulesCreateResource
+
+    -- * Creating a Request
+    , appsFirewallIngressRulesCreate
+    , AppsFirewallIngressRulesCreate
+
+    -- * Request Lenses
+    , afircXgafv
+    , afircUploadProtocol
+    , afircAccessToken
+    , afircUploadType
+    , afircPayload
+    , afircAppsId
+    , afircCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.firewall.ingressRules.create@ method which the
+-- 'AppsFirewallIngressRulesCreate' request conforms to.
+type AppsFirewallIngressRulesCreateResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "firewall" :>
+             "ingressRules" :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :>
+                           ReqBody '[JSON] FirewallRule :>
+                             Post '[JSON] FirewallRule
+
+-- | Creates a firewall rule for the application.
+--
+-- /See:/ 'appsFirewallIngressRulesCreate' smart constructor.
+data AppsFirewallIngressRulesCreate = AppsFirewallIngressRulesCreate'
+    { _afircXgafv          :: !(Maybe Xgafv)
+    , _afircUploadProtocol :: !(Maybe Text)
+    , _afircAccessToken    :: !(Maybe Text)
+    , _afircUploadType     :: !(Maybe Text)
+    , _afircPayload        :: !FirewallRule
+    , _afircAppsId         :: !Text
+    , _afircCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsFirewallIngressRulesCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afircXgafv'
+--
+-- * 'afircUploadProtocol'
+--
+-- * 'afircAccessToken'
+--
+-- * 'afircUploadType'
+--
+-- * 'afircPayload'
+--
+-- * 'afircAppsId'
+--
+-- * 'afircCallback'
+appsFirewallIngressRulesCreate
+    :: FirewallRule -- ^ 'afircPayload'
+    -> Text -- ^ 'afircAppsId'
+    -> AppsFirewallIngressRulesCreate
+appsFirewallIngressRulesCreate pAfircPayload_ pAfircAppsId_ =
+    AppsFirewallIngressRulesCreate'
+    { _afircXgafv = Nothing
+    , _afircUploadProtocol = Nothing
+    , _afircAccessToken = Nothing
+    , _afircUploadType = Nothing
+    , _afircPayload = pAfircPayload_
+    , _afircAppsId = pAfircAppsId_
+    , _afircCallback = Nothing
+    }
+
+-- | V1 error format.
+afircXgafv :: Lens' AppsFirewallIngressRulesCreate (Maybe Xgafv)
+afircXgafv
+  = lens _afircXgafv (\ s a -> s{_afircXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+afircUploadProtocol :: Lens' AppsFirewallIngressRulesCreate (Maybe Text)
+afircUploadProtocol
+  = lens _afircUploadProtocol
+      (\ s a -> s{_afircUploadProtocol = a})
+
+-- | OAuth access token.
+afircAccessToken :: Lens' AppsFirewallIngressRulesCreate (Maybe Text)
+afircAccessToken
+  = lens _afircAccessToken
+      (\ s a -> s{_afircAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+afircUploadType :: Lens' AppsFirewallIngressRulesCreate (Maybe Text)
+afircUploadType
+  = lens _afircUploadType
+      (\ s a -> s{_afircUploadType = a})
+
+-- | Multipart request metadata.
+afircPayload :: Lens' AppsFirewallIngressRulesCreate FirewallRule
+afircPayload
+  = lens _afircPayload (\ s a -> s{_afircPayload = a})
+
+-- | Part of \`parent\`. Name of the parent Firewall collection in which to
+-- create a new rule. Example: apps\/myapp\/firewall\/ingressRules.
+afircAppsId :: Lens' AppsFirewallIngressRulesCreate Text
+afircAppsId
+  = lens _afircAppsId (\ s a -> s{_afircAppsId = a})
+
+-- | JSONP
+afircCallback :: Lens' AppsFirewallIngressRulesCreate (Maybe Text)
+afircCallback
+  = lens _afircCallback
+      (\ s a -> s{_afircCallback = a})
+
+instance GoogleRequest AppsFirewallIngressRulesCreate
+         where
+        type Rs AppsFirewallIngressRulesCreate = FirewallRule
+        type Scopes AppsFirewallIngressRulesCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsFirewallIngressRulesCreate'{..}
+          = go _afircAppsId _afircXgafv _afircUploadProtocol
+              _afircAccessToken
+              _afircUploadType
+              _afircCallback
+              (Just AltJSON)
+              _afircPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsFirewallIngressRulesCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Delete.hs b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Delete.hs
@@ -0,0 +1,167 @@
+{-# 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.Firewall.IngressRules.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified firewall rule.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.firewall.ingressRules.delete@.
+module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Delete
+    (
+    -- * REST Resource
+      AppsFirewallIngressRulesDeleteResource
+
+    -- * Creating a Request
+    , appsFirewallIngressRulesDelete
+    , AppsFirewallIngressRulesDelete
+
+    -- * Request Lenses
+    , afirdXgafv
+    , afirdUploadProtocol
+    , afirdAccessToken
+    , afirdUploadType
+    , afirdIngressRulesId
+    , afirdAppsId
+    , afirdCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.firewall.ingressRules.delete@ method which the
+-- 'AppsFirewallIngressRulesDelete' request conforms to.
+type AppsFirewallIngressRulesDeleteResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "firewall" :>
+             "ingressRules" :>
+               Capture "ingressRulesId" Text :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes the specified firewall rule.
+--
+-- /See:/ 'appsFirewallIngressRulesDelete' smart constructor.
+data AppsFirewallIngressRulesDelete = AppsFirewallIngressRulesDelete'
+    { _afirdXgafv          :: !(Maybe Xgafv)
+    , _afirdUploadProtocol :: !(Maybe Text)
+    , _afirdAccessToken    :: !(Maybe Text)
+    , _afirdUploadType     :: !(Maybe Text)
+    , _afirdIngressRulesId :: !Text
+    , _afirdAppsId         :: !Text
+    , _afirdCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsFirewallIngressRulesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afirdXgafv'
+--
+-- * 'afirdUploadProtocol'
+--
+-- * 'afirdAccessToken'
+--
+-- * 'afirdUploadType'
+--
+-- * 'afirdIngressRulesId'
+--
+-- * 'afirdAppsId'
+--
+-- * 'afirdCallback'
+appsFirewallIngressRulesDelete
+    :: Text -- ^ 'afirdIngressRulesId'
+    -> Text -- ^ 'afirdAppsId'
+    -> AppsFirewallIngressRulesDelete
+appsFirewallIngressRulesDelete pAfirdIngressRulesId_ pAfirdAppsId_ =
+    AppsFirewallIngressRulesDelete'
+    { _afirdXgafv = Nothing
+    , _afirdUploadProtocol = Nothing
+    , _afirdAccessToken = Nothing
+    , _afirdUploadType = Nothing
+    , _afirdIngressRulesId = pAfirdIngressRulesId_
+    , _afirdAppsId = pAfirdAppsId_
+    , _afirdCallback = Nothing
+    }
+
+-- | V1 error format.
+afirdXgafv :: Lens' AppsFirewallIngressRulesDelete (Maybe Xgafv)
+afirdXgafv
+  = lens _afirdXgafv (\ s a -> s{_afirdXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+afirdUploadProtocol :: Lens' AppsFirewallIngressRulesDelete (Maybe Text)
+afirdUploadProtocol
+  = lens _afirdUploadProtocol
+      (\ s a -> s{_afirdUploadProtocol = a})
+
+-- | OAuth access token.
+afirdAccessToken :: Lens' AppsFirewallIngressRulesDelete (Maybe Text)
+afirdAccessToken
+  = lens _afirdAccessToken
+      (\ s a -> s{_afirdAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+afirdUploadType :: Lens' AppsFirewallIngressRulesDelete (Maybe Text)
+afirdUploadType
+  = lens _afirdUploadType
+      (\ s a -> s{_afirdUploadType = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+afirdIngressRulesId :: Lens' AppsFirewallIngressRulesDelete Text
+afirdIngressRulesId
+  = lens _afirdIngressRulesId
+      (\ s a -> s{_afirdIngressRulesId = a})
+
+-- | Part of \`name\`. Name of the Firewall resource to delete. Example:
+-- apps\/myapp\/firewall\/ingressRules\/100.
+afirdAppsId :: Lens' AppsFirewallIngressRulesDelete Text
+afirdAppsId
+  = lens _afirdAppsId (\ s a -> s{_afirdAppsId = a})
+
+-- | JSONP
+afirdCallback :: Lens' AppsFirewallIngressRulesDelete (Maybe Text)
+afirdCallback
+  = lens _afirdCallback
+      (\ s a -> s{_afirdCallback = a})
+
+instance GoogleRequest AppsFirewallIngressRulesDelete
+         where
+        type Rs AppsFirewallIngressRulesDelete = Empty
+        type Scopes AppsFirewallIngressRulesDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsFirewallIngressRulesDelete'{..}
+          = go _afirdAppsId _afirdIngressRulesId _afirdXgafv
+              _afirdUploadProtocol
+              _afirdAccessToken
+              _afirdUploadType
+              _afirdCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsFirewallIngressRulesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Get.hs b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Get.hs
@@ -0,0 +1,168 @@
+{-# 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.Firewall.IngressRules.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 specified firewall rule.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.firewall.ingressRules.get@.
+module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Get
+    (
+    -- * REST Resource
+      AppsFirewallIngressRulesGetResource
+
+    -- * Creating a Request
+    , appsFirewallIngressRulesGet
+    , AppsFirewallIngressRulesGet
+
+    -- * Request Lenses
+    , afirgXgafv
+    , afirgUploadProtocol
+    , afirgAccessToken
+    , afirgUploadType
+    , afirgIngressRulesId
+    , afirgAppsId
+    , afirgCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.firewall.ingressRules.get@ method which the
+-- 'AppsFirewallIngressRulesGet' request conforms to.
+type AppsFirewallIngressRulesGetResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "firewall" :>
+             "ingressRules" :>
+               Capture "ingressRulesId" Text :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :> Get '[JSON] FirewallRule
+
+-- | Gets the specified firewall rule.
+--
+-- /See:/ 'appsFirewallIngressRulesGet' smart constructor.
+data AppsFirewallIngressRulesGet = AppsFirewallIngressRulesGet'
+    { _afirgXgafv          :: !(Maybe Xgafv)
+    , _afirgUploadProtocol :: !(Maybe Text)
+    , _afirgAccessToken    :: !(Maybe Text)
+    , _afirgUploadType     :: !(Maybe Text)
+    , _afirgIngressRulesId :: !Text
+    , _afirgAppsId         :: !Text
+    , _afirgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsFirewallIngressRulesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afirgXgafv'
+--
+-- * 'afirgUploadProtocol'
+--
+-- * 'afirgAccessToken'
+--
+-- * 'afirgUploadType'
+--
+-- * 'afirgIngressRulesId'
+--
+-- * 'afirgAppsId'
+--
+-- * 'afirgCallback'
+appsFirewallIngressRulesGet
+    :: Text -- ^ 'afirgIngressRulesId'
+    -> Text -- ^ 'afirgAppsId'
+    -> AppsFirewallIngressRulesGet
+appsFirewallIngressRulesGet pAfirgIngressRulesId_ pAfirgAppsId_ =
+    AppsFirewallIngressRulesGet'
+    { _afirgXgafv = Nothing
+    , _afirgUploadProtocol = Nothing
+    , _afirgAccessToken = Nothing
+    , _afirgUploadType = Nothing
+    , _afirgIngressRulesId = pAfirgIngressRulesId_
+    , _afirgAppsId = pAfirgAppsId_
+    , _afirgCallback = Nothing
+    }
+
+-- | V1 error format.
+afirgXgafv :: Lens' AppsFirewallIngressRulesGet (Maybe Xgafv)
+afirgXgafv
+  = lens _afirgXgafv (\ s a -> s{_afirgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+afirgUploadProtocol :: Lens' AppsFirewallIngressRulesGet (Maybe Text)
+afirgUploadProtocol
+  = lens _afirgUploadProtocol
+      (\ s a -> s{_afirgUploadProtocol = a})
+
+-- | OAuth access token.
+afirgAccessToken :: Lens' AppsFirewallIngressRulesGet (Maybe Text)
+afirgAccessToken
+  = lens _afirgAccessToken
+      (\ s a -> s{_afirgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+afirgUploadType :: Lens' AppsFirewallIngressRulesGet (Maybe Text)
+afirgUploadType
+  = lens _afirgUploadType
+      (\ s a -> s{_afirgUploadType = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+afirgIngressRulesId :: Lens' AppsFirewallIngressRulesGet Text
+afirgIngressRulesId
+  = lens _afirgIngressRulesId
+      (\ s a -> s{_afirgIngressRulesId = a})
+
+-- | Part of \`name\`. Name of the Firewall resource to retrieve. Example:
+-- apps\/myapp\/firewall\/ingressRules\/100.
+afirgAppsId :: Lens' AppsFirewallIngressRulesGet Text
+afirgAppsId
+  = lens _afirgAppsId (\ s a -> s{_afirgAppsId = a})
+
+-- | JSONP
+afirgCallback :: Lens' AppsFirewallIngressRulesGet (Maybe Text)
+afirgCallback
+  = lens _afirgCallback
+      (\ s a -> s{_afirgCallback = a})
+
+instance GoogleRequest AppsFirewallIngressRulesGet
+         where
+        type Rs AppsFirewallIngressRulesGet = FirewallRule
+        type Scopes AppsFirewallIngressRulesGet =
+             '["https://www.googleapis.com/auth/appengine.admin",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient AppsFirewallIngressRulesGet'{..}
+          = go _afirgAppsId _afirgIngressRulesId _afirgXgafv
+              _afirgUploadProtocol
+              _afirgAccessToken
+              _afirgUploadType
+              _afirgCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsFirewallIngressRulesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/List.hs
@@ -0,0 +1,198 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the firewall rules of an application.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.firewall.ingressRules.list@.
+module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.List
+    (
+    -- * REST Resource
+      AppsFirewallIngressRulesListResource
+
+    -- * Creating a Request
+    , appsFirewallIngressRulesList
+    , AppsFirewallIngressRulesList
+
+    -- * Request Lenses
+    , afirlXgafv
+    , afirlUploadProtocol
+    , afirlMatchingAddress
+    , afirlAccessToken
+    , afirlUploadType
+    , afirlAppsId
+    , afirlPageToken
+    , afirlPageSize
+    , afirlCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.firewall.ingressRules.list@ method which the
+-- 'AppsFirewallIngressRulesList' request conforms to.
+type AppsFirewallIngressRulesListResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "firewall" :>
+             "ingressRules" :>
+               QueryParam "$.xgafv" Xgafv :>
+                 QueryParam "upload_protocol" Text :>
+                   QueryParam "matchingAddress" Text :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "pageToken" Text :>
+                           QueryParam "pageSize" (Textual Int32) :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 Get '[JSON] ListIngressRulesResponse
+
+-- | Lists the firewall rules of an application.
+--
+-- /See:/ 'appsFirewallIngressRulesList' smart constructor.
+data AppsFirewallIngressRulesList = AppsFirewallIngressRulesList'
+    { _afirlXgafv           :: !(Maybe Xgafv)
+    , _afirlUploadProtocol  :: !(Maybe Text)
+    , _afirlMatchingAddress :: !(Maybe Text)
+    , _afirlAccessToken     :: !(Maybe Text)
+    , _afirlUploadType      :: !(Maybe Text)
+    , _afirlAppsId          :: !Text
+    , _afirlPageToken       :: !(Maybe Text)
+    , _afirlPageSize        :: !(Maybe (Textual Int32))
+    , _afirlCallback        :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsFirewallIngressRulesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afirlXgafv'
+--
+-- * 'afirlUploadProtocol'
+--
+-- * 'afirlMatchingAddress'
+--
+-- * 'afirlAccessToken'
+--
+-- * 'afirlUploadType'
+--
+-- * 'afirlAppsId'
+--
+-- * 'afirlPageToken'
+--
+-- * 'afirlPageSize'
+--
+-- * 'afirlCallback'
+appsFirewallIngressRulesList
+    :: Text -- ^ 'afirlAppsId'
+    -> AppsFirewallIngressRulesList
+appsFirewallIngressRulesList pAfirlAppsId_ =
+    AppsFirewallIngressRulesList'
+    { _afirlXgafv = Nothing
+    , _afirlUploadProtocol = Nothing
+    , _afirlMatchingAddress = Nothing
+    , _afirlAccessToken = Nothing
+    , _afirlUploadType = Nothing
+    , _afirlAppsId = pAfirlAppsId_
+    , _afirlPageToken = Nothing
+    , _afirlPageSize = Nothing
+    , _afirlCallback = Nothing
+    }
+
+-- | V1 error format.
+afirlXgafv :: Lens' AppsFirewallIngressRulesList (Maybe Xgafv)
+afirlXgafv
+  = lens _afirlXgafv (\ s a -> s{_afirlXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+afirlUploadProtocol :: Lens' AppsFirewallIngressRulesList (Maybe Text)
+afirlUploadProtocol
+  = lens _afirlUploadProtocol
+      (\ s a -> s{_afirlUploadProtocol = a})
+
+-- | A valid IP Address. If set, only rules matching this address will be
+-- returned. The first returned rule will be the rule that fires on
+-- requests from this IP.
+afirlMatchingAddress :: Lens' AppsFirewallIngressRulesList (Maybe Text)
+afirlMatchingAddress
+  = lens _afirlMatchingAddress
+      (\ s a -> s{_afirlMatchingAddress = a})
+
+-- | OAuth access token.
+afirlAccessToken :: Lens' AppsFirewallIngressRulesList (Maybe Text)
+afirlAccessToken
+  = lens _afirlAccessToken
+      (\ s a -> s{_afirlAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+afirlUploadType :: Lens' AppsFirewallIngressRulesList (Maybe Text)
+afirlUploadType
+  = lens _afirlUploadType
+      (\ s a -> s{_afirlUploadType = a})
+
+-- | Part of \`parent\`. Name of the Firewall collection to retrieve.
+-- Example: apps\/myapp\/firewall\/ingressRules.
+afirlAppsId :: Lens' AppsFirewallIngressRulesList Text
+afirlAppsId
+  = lens _afirlAppsId (\ s a -> s{_afirlAppsId = a})
+
+-- | Continuation token for fetching the next page of results.
+afirlPageToken :: Lens' AppsFirewallIngressRulesList (Maybe Text)
+afirlPageToken
+  = lens _afirlPageToken
+      (\ s a -> s{_afirlPageToken = a})
+
+-- | Maximum results to return per page.
+afirlPageSize :: Lens' AppsFirewallIngressRulesList (Maybe Int32)
+afirlPageSize
+  = lens _afirlPageSize
+      (\ s a -> s{_afirlPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+afirlCallback :: Lens' AppsFirewallIngressRulesList (Maybe Text)
+afirlCallback
+  = lens _afirlCallback
+      (\ s a -> s{_afirlCallback = a})
+
+instance GoogleRequest AppsFirewallIngressRulesList
+         where
+        type Rs AppsFirewallIngressRulesList =
+             ListIngressRulesResponse
+        type Scopes AppsFirewallIngressRulesList =
+             '["https://www.googleapis.com/auth/appengine.admin",
+               "https://www.googleapis.com/auth/cloud-platform",
+               "https://www.googleapis.com/auth/cloud-platform.read-only"]
+        requestClient AppsFirewallIngressRulesList'{..}
+          = go _afirlAppsId _afirlXgafv _afirlUploadProtocol
+              _afirlMatchingAddress
+              _afirlAccessToken
+              _afirlUploadType
+              _afirlPageToken
+              _afirlPageSize
+              _afirlCallback
+              (Just AltJSON)
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy AppsFirewallIngressRulesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Firewall/IngressRules/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.Firewall.IngressRules.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified firewall rule.
+--
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.firewall.ingressRules.patch@.
+module Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Patch
+    (
+    -- * REST Resource
+      AppsFirewallIngressRulesPatchResource
+
+    -- * Creating a Request
+    , appsFirewallIngressRulesPatch
+    , AppsFirewallIngressRulesPatch
+
+    -- * Request Lenses
+    , afirpXgafv
+    , afirpUploadProtocol
+    , afirpUpdateMask
+    , afirpAccessToken
+    , afirpUploadType
+    , afirpPayload
+    , afirpIngressRulesId
+    , afirpAppsId
+    , afirpCallback
+    ) where
+
+import           Network.Google.AppEngine.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @appengine.apps.firewall.ingressRules.patch@ method which the
+-- 'AppsFirewallIngressRulesPatch' request conforms to.
+type AppsFirewallIngressRulesPatchResource =
+     "v1" :>
+       "apps" :>
+         Capture "appsId" Text :>
+           "firewall" :>
+             "ingressRules" :>
+               Capture "ingressRulesId" Text :>
+                 QueryParam "$.xgafv" Xgafv :>
+                   QueryParam "upload_protocol" Text :>
+                     QueryParam "updateMask" GFieldMask :>
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               ReqBody '[JSON] FirewallRule :>
+                                 Patch '[JSON] FirewallRule
+
+-- | Updates the specified firewall rule.
+--
+-- /See:/ 'appsFirewallIngressRulesPatch' smart constructor.
+data AppsFirewallIngressRulesPatch = AppsFirewallIngressRulesPatch'
+    { _afirpXgafv          :: !(Maybe Xgafv)
+    , _afirpUploadProtocol :: !(Maybe Text)
+    , _afirpUpdateMask     :: !(Maybe GFieldMask)
+    , _afirpAccessToken    :: !(Maybe Text)
+    , _afirpUploadType     :: !(Maybe Text)
+    , _afirpPayload        :: !FirewallRule
+    , _afirpIngressRulesId :: !Text
+    , _afirpAppsId         :: !Text
+    , _afirpCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AppsFirewallIngressRulesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afirpXgafv'
+--
+-- * 'afirpUploadProtocol'
+--
+-- * 'afirpUpdateMask'
+--
+-- * 'afirpAccessToken'
+--
+-- * 'afirpUploadType'
+--
+-- * 'afirpPayload'
+--
+-- * 'afirpIngressRulesId'
+--
+-- * 'afirpAppsId'
+--
+-- * 'afirpCallback'
+appsFirewallIngressRulesPatch
+    :: FirewallRule -- ^ 'afirpPayload'
+    -> Text -- ^ 'afirpIngressRulesId'
+    -> Text -- ^ 'afirpAppsId'
+    -> AppsFirewallIngressRulesPatch
+appsFirewallIngressRulesPatch pAfirpPayload_ pAfirpIngressRulesId_ pAfirpAppsId_ =
+    AppsFirewallIngressRulesPatch'
+    { _afirpXgafv = Nothing
+    , _afirpUploadProtocol = Nothing
+    , _afirpUpdateMask = Nothing
+    , _afirpAccessToken = Nothing
+    , _afirpUploadType = Nothing
+    , _afirpPayload = pAfirpPayload_
+    , _afirpIngressRulesId = pAfirpIngressRulesId_
+    , _afirpAppsId = pAfirpAppsId_
+    , _afirpCallback = Nothing
+    }
+
+-- | V1 error format.
+afirpXgafv :: Lens' AppsFirewallIngressRulesPatch (Maybe Xgafv)
+afirpXgafv
+  = lens _afirpXgafv (\ s a -> s{_afirpXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+afirpUploadProtocol :: Lens' AppsFirewallIngressRulesPatch (Maybe Text)
+afirpUploadProtocol
+  = lens _afirpUploadProtocol
+      (\ s a -> s{_afirpUploadProtocol = a})
+
+-- | Standard field mask for the set of fields to be updated.
+afirpUpdateMask :: Lens' AppsFirewallIngressRulesPatch (Maybe GFieldMask)
+afirpUpdateMask
+  = lens _afirpUpdateMask
+      (\ s a -> s{_afirpUpdateMask = a})
+
+-- | OAuth access token.
+afirpAccessToken :: Lens' AppsFirewallIngressRulesPatch (Maybe Text)
+afirpAccessToken
+  = lens _afirpAccessToken
+      (\ s a -> s{_afirpAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+afirpUploadType :: Lens' AppsFirewallIngressRulesPatch (Maybe Text)
+afirpUploadType
+  = lens _afirpUploadType
+      (\ s a -> s{_afirpUploadType = a})
+
+-- | Multipart request metadata.
+afirpPayload :: Lens' AppsFirewallIngressRulesPatch FirewallRule
+afirpPayload
+  = lens _afirpPayload (\ s a -> s{_afirpPayload = a})
+
+-- | Part of \`name\`. See documentation of \`appsId\`.
+afirpIngressRulesId :: Lens' AppsFirewallIngressRulesPatch Text
+afirpIngressRulesId
+  = lens _afirpIngressRulesId
+      (\ s a -> s{_afirpIngressRulesId = a})
+
+-- | Part of \`name\`. Name of the Firewall resource to update. Example:
+-- apps\/myapp\/firewall\/ingressRules\/100.
+afirpAppsId :: Lens' AppsFirewallIngressRulesPatch Text
+afirpAppsId
+  = lens _afirpAppsId (\ s a -> s{_afirpAppsId = a})
+
+-- | JSONP
+afirpCallback :: Lens' AppsFirewallIngressRulesPatch (Maybe Text)
+afirpCallback
+  = lens _afirpCallback
+      (\ s a -> s{_afirpCallback = a})
+
+instance GoogleRequest AppsFirewallIngressRulesPatch
+         where
+        type Rs AppsFirewallIngressRulesPatch = FirewallRule
+        type Scopes AppsFirewallIngressRulesPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient AppsFirewallIngressRulesPatch'{..}
+          = go _afirpAppsId _afirpIngressRulesId _afirpXgafv
+              _afirpUploadProtocol
+              _afirpUpdateMask
+              _afirpAccessToken
+              _afirpUploadType
+              _afirpCallback
+              (Just AltJSON)
+              _afirpPayload
+              appEngineService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy AppsFirewallIngressRulesPatchResource)
+                      mempty
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
@@ -22,7 +22,7 @@
 --
 -- Gets information about an application.
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.get@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.get@.
 module Network.Google.Resource.AppEngine.Apps.Get
     (
     -- * REST Resource
@@ -35,10 +35,8 @@
     -- * Request Lenses
     , agXgafv
     , agUploadProtocol
-    , agPp
     , agAccessToken
     , agUploadType
-    , agBearerToken
     , agAppsId
     , agCallback
     ) where
@@ -52,25 +50,21 @@
      "v1" :>
        "apps" :>
          Capture "appsId" Text :>
-           QueryParam "$.xgafv" Text :>
+           QueryParam "$.xgafv" Xgafv :>
              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] Application
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "callback" Text :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] Application
 
 -- | Gets information about an application.
 --
 -- /See:/ 'appsGet' smart constructor.
 data AppsGet = AppsGet'
-    { _agXgafv          :: !(Maybe Text)
+    { _agXgafv          :: !(Maybe Xgafv)
     , _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)
@@ -83,14 +77,10 @@
 --
 -- * 'agUploadProtocol'
 --
--- * 'agPp'
---
 -- * 'agAccessToken'
 --
 -- * 'agUploadType'
 --
--- * 'agBearerToken'
---
 -- * 'agAppsId'
 --
 -- * 'agCallback'
@@ -101,16 +91,14 @@
     AppsGet'
     { _agXgafv = Nothing
     , _agUploadProtocol = Nothing
-    , _agPp = True
     , _agAccessToken = Nothing
     , _agUploadType = Nothing
-    , _agBearerToken = Nothing
     , _agAppsId = pAgAppsId_
     , _agCallback = Nothing
     }
 
 -- | V1 error format.
-agXgafv :: Lens' AppsGet (Maybe Text)
+agXgafv :: Lens' AppsGet (Maybe Xgafv)
 agXgafv = lens _agXgafv (\ s a -> s{_agXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -119,10 +107,6 @@
   = lens _agUploadProtocol
       (\ s a -> s{_agUploadProtocol = a})
 
--- | Pretty-print response.
-agPp :: Lens' AppsGet Bool
-agPp = lens _agPp (\ s a -> s{_agPp = a})
-
 -- | OAuth access token.
 agAccessToken :: Lens' AppsGet (Maybe Text)
 agAccessToken
@@ -134,12 +118,6 @@
 agUploadType
   = lens _agUploadType (\ s a -> s{_agUploadType = a})
 
--- | OAuth bearer token.
-agBearerToken :: Lens' AppsGet (Maybe Text)
-agBearerToken
-  = lens _agBearerToken
-      (\ s a -> s{_agBearerToken = a})
-
 -- | Part of \`name\`. Name of the Application resource to get. Example:
 -- apps\/myapp.
 agAppsId :: Lens' AppsGet Text
@@ -158,10 +136,8 @@
                "https://www.googleapis.com/auth/cloud-platform.read-only"]
         requestClient AppsGet'{..}
           = go _agAppsId _agXgafv _agUploadProtocol
-              (Just _agPp)
               _agAccessToken
               _agUploadType
-              _agBearerToken
               _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
--- a/gen/Network/Google/Resource/AppEngine/Apps/Locations/Get.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Locations/Get.hs
@@ -20,9 +20,9 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Get information about a location.
+-- Gets information about a location.
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.locations.get@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.locations.get@.
 module Network.Google.Resource.AppEngine.Apps.Locations.Get
     (
     -- * REST Resource
@@ -35,10 +35,8 @@
     -- * Request Lenses
     , algXgafv
     , algUploadProtocol
-    , algPp
     , algAccessToken
     , algUploadType
-    , algBearerToken
     , algAppsId
     , algLocationsId
     , algCallback
@@ -55,25 +53,21 @@
          Capture "appsId" Text :>
            "locations" :>
              Capture "locationsId" Text :>
-               QueryParam "$.xgafv" Text :>
+               QueryParam "$.xgafv" Xgafv :>
                  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
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] Location
 
--- | Get information about a location.
+-- | Gets information about a location.
 --
 -- /See:/ 'appsLocationsGet' smart constructor.
 data AppsLocationsGet = AppsLocationsGet'
-    { _algXgafv          :: !(Maybe Text)
+    { _algXgafv          :: !(Maybe Xgafv)
     , _algUploadProtocol :: !(Maybe Text)
-    , _algPp             :: !Bool
     , _algAccessToken    :: !(Maybe Text)
     , _algUploadType     :: !(Maybe Text)
-    , _algBearerToken    :: !(Maybe Text)
     , _algAppsId         :: !Text
     , _algLocationsId    :: !Text
     , _algCallback       :: !(Maybe Text)
@@ -87,14 +81,10 @@
 --
 -- * 'algUploadProtocol'
 --
--- * 'algPp'
---
 -- * 'algAccessToken'
 --
 -- * 'algUploadType'
 --
--- * 'algBearerToken'
---
 -- * 'algAppsId'
 --
 -- * 'algLocationsId'
@@ -108,17 +98,15 @@
     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' AppsLocationsGet (Maybe Xgafv)
 algXgafv = lens _algXgafv (\ s a -> s{_algXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -127,10 +115,6 @@
   = 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
@@ -143,12 +127,6 @@
   = 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
@@ -174,10 +152,8 @@
         requestClient AppsLocationsGet'{..}
           = go _algAppsId _algLocationsId _algXgafv
               _algUploadProtocol
-              (Just _algPp)
               _algAccessToken
               _algUploadType
-              _algBearerToken
               _algCallback
               (Just AltJSON)
               appEngineService
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Locations/List.hs b/gen/Network/Google/Resource/AppEngine/Apps/Locations/List.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Locations/List.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Locations/List.hs
@@ -22,7 +22,7 @@
 --
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.locations.list@.
 module Network.Google.Resource.AppEngine.Apps.Locations.List
     (
     -- * REST Resource
@@ -35,10 +35,8 @@
     -- * Request Lenses
     , allXgafv
     , allUploadProtocol
-    , allPp
     , allAccessToken
     , allUploadType
-    , allBearerToken
     , allAppsId
     , allFilter
     , allPageToken
@@ -56,29 +54,25 @@
        "apps" :>
          Capture "appsId" Text :>
            "locations" :>
-             QueryParam "$.xgafv" Text :>
+             QueryParam "$.xgafv" Xgafv :>
                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
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" 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)
+    { _allXgafv          :: !(Maybe Xgafv)
     , _allUploadProtocol :: !(Maybe Text)
-    , _allPp             :: !Bool
     , _allAccessToken    :: !(Maybe Text)
     , _allUploadType     :: !(Maybe Text)
-    , _allBearerToken    :: !(Maybe Text)
     , _allAppsId         :: !Text
     , _allFilter         :: !(Maybe Text)
     , _allPageToken      :: !(Maybe Text)
@@ -94,14 +88,10 @@
 --
 -- * 'allUploadProtocol'
 --
--- * 'allPp'
---
 -- * 'allAccessToken'
 --
 -- * 'allUploadType'
 --
--- * 'allBearerToken'
---
 -- * 'allAppsId'
 --
 -- * 'allFilter'
@@ -118,10 +108,8 @@
     AppsLocationsList'
     { _allXgafv = Nothing
     , _allUploadProtocol = Nothing
-    , _allPp = True
     , _allAccessToken = Nothing
     , _allUploadType = Nothing
-    , _allBearerToken = Nothing
     , _allAppsId = pAllAppsId_
     , _allFilter = Nothing
     , _allPageToken = Nothing
@@ -130,7 +118,7 @@
     }
 
 -- | V1 error format.
-allXgafv :: Lens' AppsLocationsList (Maybe Text)
+allXgafv :: Lens' AppsLocationsList (Maybe Xgafv)
 allXgafv = lens _allXgafv (\ s a -> s{_allXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -139,10 +127,6 @@
   = 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
@@ -155,12 +139,6 @@
   = 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
@@ -196,10 +174,8 @@
                "https://www.googleapis.com/auth/cloud-platform.read-only"]
         requestClient AppsLocationsList'{..}
           = go _allAppsId _allXgafv _allUploadProtocol
-              (Just _allPp)
               _allAccessToken
               _allUploadType
-              _allBearerToken
               _allFilter
               _allPageToken
               _allPageSize
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
@@ -24,7 +24,7 @@
 -- 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.apps.operations.get@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.operations.get@.
 module Network.Google.Resource.AppEngine.Apps.Operations.Get
     (
     -- * REST Resource
@@ -37,10 +37,8 @@
     -- * Request Lenses
     , aogXgafv
     , aogUploadProtocol
-    , aogPp
     , aogAccessToken
     , aogUploadType
-    , aogBearerToken
     , aogAppsId
     , aogOperationsId
     , aogCallback
@@ -57,14 +55,12 @@
          Capture "appsId" Text :>
            "operations" :>
              Capture "operationsId" Text :>
-               QueryParam "$.xgafv" Text :>
+               QueryParam "$.xgafv" Xgafv :>
                  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
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" 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
@@ -72,12 +68,10 @@
 --
 -- /See:/ 'appsOperationsGet' smart constructor.
 data AppsOperationsGet = AppsOperationsGet'
-    { _aogXgafv          :: !(Maybe Text)
+    { _aogXgafv          :: !(Maybe Xgafv)
     , _aogUploadProtocol :: !(Maybe Text)
-    , _aogPp             :: !Bool
     , _aogAccessToken    :: !(Maybe Text)
     , _aogUploadType     :: !(Maybe Text)
-    , _aogBearerToken    :: !(Maybe Text)
     , _aogAppsId         :: !Text
     , _aogOperationsId   :: !Text
     , _aogCallback       :: !(Maybe Text)
@@ -91,14 +85,10 @@
 --
 -- * 'aogUploadProtocol'
 --
--- * 'aogPp'
---
 -- * 'aogAccessToken'
 --
 -- * 'aogUploadType'
 --
--- * 'aogBearerToken'
---
 -- * 'aogAppsId'
 --
 -- * 'aogOperationsId'
@@ -112,17 +102,15 @@
     AppsOperationsGet'
     { _aogXgafv = Nothing
     , _aogUploadProtocol = Nothing
-    , _aogPp = True
     , _aogAccessToken = Nothing
     , _aogUploadType = Nothing
-    , _aogBearerToken = Nothing
     , _aogAppsId = pAogAppsId_
     , _aogOperationsId = pAogOperationsId_
     , _aogCallback = Nothing
     }
 
 -- | V1 error format.
-aogXgafv :: Lens' AppsOperationsGet (Maybe Text)
+aogXgafv :: Lens' AppsOperationsGet (Maybe Xgafv)
 aogXgafv = lens _aogXgafv (\ s a -> s{_aogXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -131,10 +119,6 @@
   = lens _aogUploadProtocol
       (\ s a -> s{_aogUploadProtocol = a})
 
--- | Pretty-print response.
-aogPp :: Lens' AppsOperationsGet Bool
-aogPp = lens _aogPp (\ s a -> s{_aogPp = a})
-
 -- | OAuth access token.
 aogAccessToken :: Lens' AppsOperationsGet (Maybe Text)
 aogAccessToken
@@ -147,12 +131,6 @@
   = lens _aogUploadType
       (\ s a -> s{_aogUploadType = a})
 
--- | OAuth bearer token.
-aogBearerToken :: Lens' AppsOperationsGet (Maybe Text)
-aogBearerToken
-  = lens _aogBearerToken
-      (\ s a -> s{_aogBearerToken = a})
-
 -- | Part of \`name\`. The name of the operation resource.
 aogAppsId :: Lens' AppsOperationsGet Text
 aogAppsId
@@ -178,10 +156,8 @@
         requestClient AppsOperationsGet'{..}
           = go _aogAppsId _aogOperationsId _aogXgafv
               _aogUploadProtocol
-              (Just _aogPp)
               _aogAccessToken
               _aogUploadType
-              _aogBearerToken
               _aogCallback
               (Just AltJSON)
               appEngineService
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
@@ -22,10 +22,15 @@
 --
 -- 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.
+-- name binding allows API services to override the binding to use
+-- different resource name schemes, such as users\/*\/operations. To
+-- override the binding, API services can add a binding such as
+-- \"\/v1\/{name=users\/*}\/operations\" to their service configuration.
+-- For backwards compatibility, the default name includes the operations
+-- collection id, however overriding users must ensure the name binding is
+-- the parent resource, without the operations collection id.
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.operations.list@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.operations.list@.
 module Network.Google.Resource.AppEngine.Apps.Operations.List
     (
     -- * REST Resource
@@ -38,10 +43,8 @@
     -- * Request Lenses
     , aolXgafv
     , aolUploadProtocol
-    , aolPp
     , aolAccessToken
     , aolUploadType
-    , aolBearerToken
     , aolAppsId
     , aolFilter
     , aolPageToken
@@ -59,32 +62,33 @@
        "apps" :>
          Capture "appsId" Text :>
            "operations" :>
-             QueryParam "$.xgafv" Text :>
+             QueryParam "$.xgafv" Xgafv :>
                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
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" 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.
+-- name binding allows API services to override the binding to use
+-- different resource name schemes, such as users\/*\/operations. To
+-- override the binding, API services can add a binding such as
+-- \"\/v1\/{name=users\/*}\/operations\" to their service configuration.
+-- For backwards compatibility, the default name includes the operations
+-- collection id, however overriding users must ensure the name binding is
+-- the parent resource, without the operations collection id.
 --
 -- /See:/ 'appsOperationsList' smart constructor.
 data AppsOperationsList = AppsOperationsList'
-    { _aolXgafv          :: !(Maybe Text)
+    { _aolXgafv          :: !(Maybe Xgafv)
     , _aolUploadProtocol :: !(Maybe Text)
-    , _aolPp             :: !Bool
     , _aolAccessToken    :: !(Maybe Text)
     , _aolUploadType     :: !(Maybe Text)
-    , _aolBearerToken    :: !(Maybe Text)
     , _aolAppsId         :: !Text
     , _aolFilter         :: !(Maybe Text)
     , _aolPageToken      :: !(Maybe Text)
@@ -100,14 +104,10 @@
 --
 -- * 'aolUploadProtocol'
 --
--- * 'aolPp'
---
 -- * 'aolAccessToken'
 --
 -- * 'aolUploadType'
 --
--- * 'aolBearerToken'
---
 -- * 'aolAppsId'
 --
 -- * 'aolFilter'
@@ -124,10 +124,8 @@
     AppsOperationsList'
     { _aolXgafv = Nothing
     , _aolUploadProtocol = Nothing
-    , _aolPp = True
     , _aolAccessToken = Nothing
     , _aolUploadType = Nothing
-    , _aolBearerToken = Nothing
     , _aolAppsId = pAolAppsId_
     , _aolFilter = Nothing
     , _aolPageToken = Nothing
@@ -136,7 +134,7 @@
     }
 
 -- | V1 error format.
-aolXgafv :: Lens' AppsOperationsList (Maybe Text)
+aolXgafv :: Lens' AppsOperationsList (Maybe Xgafv)
 aolXgafv = lens _aolXgafv (\ s a -> s{_aolXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -145,10 +143,6 @@
   = lens _aolUploadProtocol
       (\ s a -> s{_aolUploadProtocol = a})
 
--- | Pretty-print response.
-aolPp :: Lens' AppsOperationsList Bool
-aolPp = lens _aolPp (\ s a -> s{_aolPp = a})
-
 -- | OAuth access token.
 aolAccessToken :: Lens' AppsOperationsList (Maybe Text)
 aolAccessToken
@@ -161,13 +155,7 @@
   = lens _aolUploadType
       (\ s a -> s{_aolUploadType = a})
 
--- | OAuth bearer token.
-aolBearerToken :: Lens' AppsOperationsList (Maybe Text)
-aolBearerToken
-  = lens _aolBearerToken
-      (\ s a -> s{_aolBearerToken = a})
-
--- | Part of \`name\`. The name of the operation collection.
+-- | Part of \`name\`. The name of the operation\'s parent resource.
 aolAppsId :: Lens' AppsOperationsList Text
 aolAppsId
   = lens _aolAppsId (\ s a -> s{_aolAppsId = a})
@@ -201,10 +189,8 @@
                "https://www.googleapis.com/auth/cloud-platform.read-only"]
         requestClient AppsOperationsList'{..}
           = go _aolAppsId _aolXgafv _aolUploadProtocol
-              (Just _aolPp)
               _aolAccessToken
               _aolUploadType
-              _aolBearerToken
               _aolFilter
               _aolPageToken
               _aolPageSize
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Patch.hs b/gen/Network/Google/Resource/AppEngine/Apps/Patch.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Patch.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Patch.hs
@@ -21,12 +21,11 @@
 -- Portability : non-portable (GHC extensions)
 --
 -- Updates the specified Application resource. You can update the following
--- fields: auth_domain
--- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps#Application.FIELDS.auth_domain)
--- default_cookie_expiration
--- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps#Application.FIELDS.default_cookie_expiration)
+-- fields: auth_domain - Google authentication domain for controlling user
+-- access to the application. default_cookie_expiration - Cookie expiration
+-- policy for the application.
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.patch@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.patch@.
 module Network.Google.Resource.AppEngine.Apps.Patch
     (
     -- * REST Resource
@@ -40,11 +39,9 @@
     , apXgafv
     , apUploadProtocol
     , apUpdateMask
-    , apPp
     , apAccessToken
     , apUploadType
     , apPayload
-    , apBearerToken
     , apAppsId
     , apCallback
     ) where
@@ -58,34 +55,29 @@
      "v1" :>
        "apps" :>
          Capture "appsId" Text :>
-           QueryParam "$.xgafv" Text :>
+           QueryParam "$.xgafv" Xgafv :>
              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
+               QueryParam "updateMask" GFieldMask :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] Application :>
+                           Patch '[JSON] Operation
 
 -- | Updates the specified Application resource. You can update the following
--- fields: auth_domain
--- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps#Application.FIELDS.auth_domain)
--- default_cookie_expiration
--- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps#Application.FIELDS.default_cookie_expiration)
+-- fields: auth_domain - Google authentication domain for controlling user
+-- access to the application. default_cookie_expiration - Cookie expiration
+-- policy for the application.
 --
 -- /See:/ 'appsPatch' smart constructor.
 data AppsPatch = AppsPatch'
-    { _apXgafv          :: !(Maybe Text)
+    { _apXgafv          :: !(Maybe Xgafv)
     , _apUploadProtocol :: !(Maybe Text)
-    , _apUpdateMask     :: !(Maybe Text)
-    , _apPp             :: !Bool
+    , _apUpdateMask     :: !(Maybe GFieldMask)
     , _apAccessToken    :: !(Maybe Text)
     , _apUploadType     :: !(Maybe Text)
     , _apPayload        :: !Application
-    , _apBearerToken    :: !(Maybe Text)
     , _apAppsId         :: !Text
     , _apCallback       :: !(Maybe Text)
     } deriving (Eq,Show,Data,Typeable,Generic)
@@ -100,16 +92,12 @@
 --
 -- * 'apUpdateMask'
 --
--- * 'apPp'
---
 -- * 'apAccessToken'
 --
 -- * 'apUploadType'
 --
 -- * 'apPayload'
 --
--- * 'apBearerToken'
---
 -- * 'apAppsId'
 --
 -- * 'apCallback'
@@ -122,17 +110,15 @@
     { _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' AppsPatch (Maybe Xgafv)
 apXgafv = lens _apXgafv (\ s a -> s{_apXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -142,14 +128,10 @@
       (\ s a -> s{_apUploadProtocol = a})
 
 -- | Standard field mask for the set of fields to be updated.
-apUpdateMask :: Lens' AppsPatch (Maybe Text)
+apUpdateMask :: Lens' AppsPatch (Maybe GFieldMask)
 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
@@ -166,12 +148,6 @@
 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 resource to update. Example:
 -- apps\/myapp.
 apAppsId :: Lens' AppsPatch Text
@@ -189,10 +165,8 @@
         requestClient AppsPatch'{..}
           = go _apAppsId _apXgafv _apUploadProtocol
               _apUpdateMask
-              (Just _apPp)
               _apAccessToken
               _apUploadType
-              _apBearerToken
               _apCallback
               (Just AltJSON)
               _apPayload
diff --git a/gen/Network/Google/Resource/AppEngine/Apps/Repair.hs b/gen/Network/Google/Resource/AppEngine/Apps/Repair.hs
--- a/gen/Network/Google/Resource/AppEngine/Apps/Repair.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Repair.hs
@@ -25,7 +25,7 @@
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.repair@.
 module Network.Google.Resource.AppEngine.Apps.Repair
     (
     -- * REST Resource
@@ -38,11 +38,9 @@
     -- * Request Lenses
     , arXgafv
     , arUploadProtocol
-    , arPp
     , arAccessToken
     , arUploadType
     , arPayload
-    , arBearerToken
     , arAppsId
     , arCallback
     ) where
@@ -56,16 +54,14 @@
      "v1" :>
        "apps" :>
          CaptureMode "appsId" "repair" Text :>
-           QueryParam "$.xgafv" Text :>
+           QueryParam "$.xgafv" Xgafv :>
              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
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "callback" Text :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] RepairApplicationRequest :>
+                         Post '[JSON] Operation
 
 -- | Recreates the required App Engine features for the specified App Engine
 -- application, for example a Cloud Storage bucket or App Engine service
@@ -74,13 +70,11 @@
 --
 -- /See:/ 'appsRepair' smart constructor.
 data AppsRepair = AppsRepair'
-    { _arXgafv          :: !(Maybe Text)
+    { _arXgafv          :: !(Maybe Xgafv)
     , _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)
@@ -93,16 +87,12 @@
 --
 -- * 'arUploadProtocol'
 --
--- * 'arPp'
---
 -- * 'arAccessToken'
 --
 -- * 'arUploadType'
 --
 -- * 'arPayload'
 --
--- * 'arBearerToken'
---
 -- * 'arAppsId'
 --
 -- * 'arCallback'
@@ -114,17 +104,15 @@
     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' AppsRepair (Maybe Xgafv)
 arXgafv = lens _arXgafv (\ s a -> s{_arXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -133,10 +121,6 @@
   = 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
@@ -153,12 +137,6 @@
 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
@@ -175,10 +153,8 @@
              '["https://www.googleapis.com/auth/cloud-platform"]
         requestClient AppsRepair'{..}
           = go _arAppsId _arXgafv _arUploadProtocol
-              (Just _arPp)
               _arAccessToken
               _arUploadType
-              _arBearerToken
               _arCallback
               (Just AltJSON)
               _arPayload
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
@@ -22,7 +22,7 @@
 --
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.delete@.
 module Network.Google.Resource.AppEngine.Apps.Services.Delete
     (
     -- * REST Resource
@@ -35,10 +35,8 @@
     -- * Request Lenses
     , asdXgafv
     , asdUploadProtocol
-    , asdPp
     , asdAccessToken
     , asdUploadType
-    , asdBearerToken
     , asdAppsId
     , asdServicesId
     , asdCallback
@@ -55,26 +53,21 @@
          Capture "appsId" Text :>
            "services" :>
              Capture "servicesId" Text :>
-               QueryParam "$.xgafv" Text :>
+               QueryParam "$.xgafv" Xgafv :>
                  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
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Delete '[JSON] Operation
 
 -- | Deletes the specified service and all enclosed versions.
 --
 -- /See:/ 'appsServicesDelete' smart constructor.
 data AppsServicesDelete = AppsServicesDelete'
-    { _asdXgafv          :: !(Maybe Text)
+    { _asdXgafv          :: !(Maybe Xgafv)
     , _asdUploadProtocol :: !(Maybe Text)
-    , _asdPp             :: !Bool
     , _asdAccessToken    :: !(Maybe Text)
     , _asdUploadType     :: !(Maybe Text)
-    , _asdBearerToken    :: !(Maybe Text)
     , _asdAppsId         :: !Text
     , _asdServicesId     :: !Text
     , _asdCallback       :: !(Maybe Text)
@@ -88,14 +81,10 @@
 --
 -- * 'asdUploadProtocol'
 --
--- * 'asdPp'
---
 -- * 'asdAccessToken'
 --
 -- * 'asdUploadType'
 --
--- * 'asdBearerToken'
---
 -- * 'asdAppsId'
 --
 -- * 'asdServicesId'
@@ -109,17 +98,15 @@
     AppsServicesDelete'
     { _asdXgafv = Nothing
     , _asdUploadProtocol = Nothing
-    , _asdPp = True
     , _asdAccessToken = Nothing
     , _asdUploadType = Nothing
-    , _asdBearerToken = Nothing
     , _asdAppsId = pAsdAppsId_
     , _asdServicesId = pAsdServicesId_
     , _asdCallback = Nothing
     }
 
 -- | V1 error format.
-asdXgafv :: Lens' AppsServicesDelete (Maybe Text)
+asdXgafv :: Lens' AppsServicesDelete (Maybe Xgafv)
 asdXgafv = lens _asdXgafv (\ s a -> s{_asdXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -128,10 +115,6 @@
   = lens _asdUploadProtocol
       (\ s a -> s{_asdUploadProtocol = a})
 
--- | Pretty-print response.
-asdPp :: Lens' AppsServicesDelete Bool
-asdPp = lens _asdPp (\ s a -> s{_asdPp = a})
-
 -- | OAuth access token.
 asdAccessToken :: Lens' AppsServicesDelete (Maybe Text)
 asdAccessToken
@@ -144,12 +127,6 @@
   = lens _asdUploadType
       (\ s a -> s{_asdUploadType = a})
 
--- | OAuth bearer token.
-asdBearerToken :: Lens' AppsServicesDelete (Maybe Text)
-asdBearerToken
-  = lens _asdBearerToken
-      (\ s a -> s{_asdBearerToken = a})
-
 -- | Part of \`name\`. Name of the resource requested. Example:
 -- apps\/myapp\/services\/default.
 asdAppsId :: Lens' AppsServicesDelete Text
@@ -174,10 +151,8 @@
         requestClient AppsServicesDelete'{..}
           = go _asdAppsId _asdServicesId _asdXgafv
               _asdUploadProtocol
-              (Just _asdPp)
               _asdAccessToken
               _asdUploadType
-              _asdBearerToken
               _asdCallback
               (Just AltJSON)
               appEngineService
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
@@ -22,7 +22,7 @@
 --
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.get@.
 module Network.Google.Resource.AppEngine.Apps.Services.Get
     (
     -- * REST Resource
@@ -35,10 +35,8 @@
     -- * Request Lenses
     , asgXgafv
     , asgUploadProtocol
-    , asgPp
     , asgAccessToken
     , asgUploadType
-    , asgBearerToken
     , asgAppsId
     , asgServicesId
     , asgCallback
@@ -55,25 +53,21 @@
          Capture "appsId" Text :>
            "services" :>
              Capture "servicesId" Text :>
-               QueryParam "$.xgafv" Text :>
+               QueryParam "$.xgafv" Xgafv :>
                  QueryParam "upload_protocol" Text :>
-                   QueryParam "pp" Bool :>
-                     QueryParam "access_token" Text :>
-                       QueryParam "uploadType" Text :>
-                         QueryParam "bearer_token" Text :>
-                           QueryParam "callback" Text :>
-                             QueryParam "alt" AltJSON :> Get '[JSON] Service
+                   QueryParam "access_token" Text :>
+                     QueryParam "uploadType" Text :>
+                       QueryParam "callback" Text :>
+                         QueryParam "alt" AltJSON :> Get '[JSON] Service
 
 -- | Gets the current configuration of the specified service.
 --
 -- /See:/ 'appsServicesGet' smart constructor.
 data AppsServicesGet = AppsServicesGet'
-    { _asgXgafv          :: !(Maybe Text)
+    { _asgXgafv          :: !(Maybe Xgafv)
     , _asgUploadProtocol :: !(Maybe Text)
-    , _asgPp             :: !Bool
     , _asgAccessToken    :: !(Maybe Text)
     , _asgUploadType     :: !(Maybe Text)
-    , _asgBearerToken    :: !(Maybe Text)
     , _asgAppsId         :: !Text
     , _asgServicesId     :: !Text
     , _asgCallback       :: !(Maybe Text)
@@ -87,14 +81,10 @@
 --
 -- * 'asgUploadProtocol'
 --
--- * 'asgPp'
---
 -- * 'asgAccessToken'
 --
 -- * 'asgUploadType'
 --
--- * 'asgBearerToken'
---
 -- * 'asgAppsId'
 --
 -- * 'asgServicesId'
@@ -108,17 +98,15 @@
     AppsServicesGet'
     { _asgXgafv = Nothing
     , _asgUploadProtocol = Nothing
-    , _asgPp = True
     , _asgAccessToken = Nothing
     , _asgUploadType = Nothing
-    , _asgBearerToken = Nothing
     , _asgAppsId = pAsgAppsId_
     , _asgServicesId = pAsgServicesId_
     , _asgCallback = Nothing
     }
 
 -- | V1 error format.
-asgXgafv :: Lens' AppsServicesGet (Maybe Text)
+asgXgafv :: Lens' AppsServicesGet (Maybe Xgafv)
 asgXgafv = lens _asgXgafv (\ s a -> s{_asgXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -127,10 +115,6 @@
   = lens _asgUploadProtocol
       (\ s a -> s{_asgUploadProtocol = a})
 
--- | Pretty-print response.
-asgPp :: Lens' AppsServicesGet Bool
-asgPp = lens _asgPp (\ s a -> s{_asgPp = a})
-
 -- | OAuth access token.
 asgAccessToken :: Lens' AppsServicesGet (Maybe Text)
 asgAccessToken
@@ -143,12 +127,6 @@
   = lens _asgUploadType
       (\ s a -> s{_asgUploadType = a})
 
--- | OAuth bearer token.
-asgBearerToken :: Lens' AppsServicesGet (Maybe Text)
-asgBearerToken
-  = lens _asgBearerToken
-      (\ s a -> s{_asgBearerToken = a})
-
 -- | Part of \`name\`. Name of the resource requested. Example:
 -- apps\/myapp\/services\/default.
 asgAppsId :: Lens' AppsServicesGet Text
@@ -175,10 +153,8 @@
         requestClient AppsServicesGet'{..}
           = go _asgAppsId _asgServicesId _asgXgafv
               _asgUploadProtocol
-              (Just _asgPp)
               _asgAccessToken
               _asgUploadType
-              _asgBearerToken
               _asgCallback
               (Just AltJSON)
               appEngineService
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
@@ -22,7 +22,7 @@
 --
 -- Lists all the services in the application.
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.list@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.list@.
 module Network.Google.Resource.AppEngine.Apps.Services.List
     (
     -- * REST Resource
@@ -35,10 +35,8 @@
     -- * Request Lenses
     , aslXgafv
     , aslUploadProtocol
-    , aslPp
     , aslAccessToken
     , aslUploadType
-    , aslBearerToken
     , aslAppsId
     , aslPageToken
     , aslPageSize
@@ -55,28 +53,24 @@
        "apps" :>
          Capture "appsId" Text :>
            "services" :>
-             QueryParam "$.xgafv" Text :>
+             QueryParam "$.xgafv" Xgafv :>
                QueryParam "upload_protocol" Text :>
-                 QueryParam "pp" Bool :>
-                   QueryParam "access_token" Text :>
-                     QueryParam "uploadType" Text :>
-                       QueryParam "bearer_token" Text :>
-                         QueryParam "pageToken" Text :>
-                           QueryParam "pageSize" (Textual Int32) :>
-                             QueryParam "callback" Text :>
-                               QueryParam "alt" AltJSON :>
-                                 Get '[JSON] ListServicesResponse
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListServicesResponse
 
 -- | Lists all the services in the application.
 --
 -- /See:/ 'appsServicesList' smart constructor.
 data AppsServicesList = AppsServicesList'
-    { _aslXgafv          :: !(Maybe Text)
+    { _aslXgafv          :: !(Maybe Xgafv)
     , _aslUploadProtocol :: !(Maybe Text)
-    , _aslPp             :: !Bool
     , _aslAccessToken    :: !(Maybe Text)
     , _aslUploadType     :: !(Maybe Text)
-    , _aslBearerToken    :: !(Maybe Text)
     , _aslAppsId         :: !Text
     , _aslPageToken      :: !(Maybe Text)
     , _aslPageSize       :: !(Maybe (Textual Int32))
@@ -91,14 +85,10 @@
 --
 -- * 'aslUploadProtocol'
 --
--- * 'aslPp'
---
 -- * 'aslAccessToken'
 --
 -- * 'aslUploadType'
 --
--- * 'aslBearerToken'
---
 -- * 'aslAppsId'
 --
 -- * 'aslPageToken'
@@ -113,10 +103,8 @@
     AppsServicesList'
     { _aslXgafv = Nothing
     , _aslUploadProtocol = Nothing
-    , _aslPp = True
     , _aslAccessToken = Nothing
     , _aslUploadType = Nothing
-    , _aslBearerToken = Nothing
     , _aslAppsId = pAslAppsId_
     , _aslPageToken = Nothing
     , _aslPageSize = Nothing
@@ -124,7 +112,7 @@
     }
 
 -- | V1 error format.
-aslXgafv :: Lens' AppsServicesList (Maybe Text)
+aslXgafv :: Lens' AppsServicesList (Maybe Xgafv)
 aslXgafv = lens _aslXgafv (\ s a -> s{_aslXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -133,10 +121,6 @@
   = lens _aslUploadProtocol
       (\ s a -> s{_aslUploadProtocol = a})
 
--- | Pretty-print response.
-aslPp :: Lens' AppsServicesList Bool
-aslPp = lens _aslPp (\ s a -> s{_aslPp = a})
-
 -- | OAuth access token.
 aslAccessToken :: Lens' AppsServicesList (Maybe Text)
 aslAccessToken
@@ -149,12 +133,6 @@
   = lens _aslUploadType
       (\ s a -> s{_aslUploadType = a})
 
--- | OAuth bearer token.
-aslBearerToken :: Lens' AppsServicesList (Maybe Text)
-aslBearerToken
-  = lens _aslBearerToken
-      (\ s a -> s{_aslBearerToken = a})
-
 -- | Part of \`parent\`. Name of the parent Application resource. Example:
 -- apps\/myapp.
 aslAppsId :: Lens' AppsServicesList Text
@@ -185,10 +163,8 @@
                "https://www.googleapis.com/auth/cloud-platform.read-only"]
         requestClient AppsServicesList'{..}
           = go _aslAppsId _aslXgafv _aslUploadProtocol
-              (Just _aslPp)
               _aslAccessToken
               _aslUploadType
-              _aslBearerToken
               _aslPageToken
               _aslPageSize
               _aslCallback
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
@@ -22,7 +22,7 @@
 --
 -- Updates the configuration of the specified service.
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.patch@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.patch@.
 module Network.Google.Resource.AppEngine.Apps.Services.Patch
     (
     -- * REST Resource
@@ -36,12 +36,10 @@
     , aspXgafv
     , aspUploadProtocol
     , aspUpdateMask
-    , aspPp
     , aspAccessToken
     , aspUploadType
     , aspPayload
     , aspMigrateTraffic
-    , aspBearerToken
     , aspAppsId
     , aspServicesId
     , aspCallback
@@ -58,32 +56,28 @@
          Capture "appsId" Text :>
            "services" :>
              Capture "servicesId" Text :>
-               QueryParam "$.xgafv" Text :>
+               QueryParam "$.xgafv" Xgafv :>
                  QueryParam "upload_protocol" 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 :>
-                                   ReqBody '[JSON] Service :>
-                                     Patch '[JSON] Operation
+                   QueryParam "updateMask" GFieldMask :>
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "migrateTraffic" Bool :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               ReqBody '[JSON] Service :>
+                                 Patch '[JSON] Operation
 
 -- | Updates the configuration of the specified service.
 --
 -- /See:/ 'appsServicesPatch' smart constructor.
 data AppsServicesPatch = AppsServicesPatch'
-    { _aspXgafv          :: !(Maybe Text)
+    { _aspXgafv          :: !(Maybe Xgafv)
     , _aspUploadProtocol :: !(Maybe Text)
-    , _aspUpdateMask     :: !(Maybe Text)
-    , _aspPp             :: !Bool
+    , _aspUpdateMask     :: !(Maybe GFieldMask)
     , _aspAccessToken    :: !(Maybe Text)
     , _aspUploadType     :: !(Maybe Text)
     , _aspPayload        :: !Service
     , _aspMigrateTraffic :: !(Maybe Bool)
-    , _aspBearerToken    :: !(Maybe Text)
     , _aspAppsId         :: !Text
     , _aspServicesId     :: !Text
     , _aspCallback       :: !(Maybe Text)
@@ -99,8 +93,6 @@
 --
 -- * 'aspUpdateMask'
 --
--- * 'aspPp'
---
 -- * 'aspAccessToken'
 --
 -- * 'aspUploadType'
@@ -109,8 +101,6 @@
 --
 -- * 'aspMigrateTraffic'
 --
--- * 'aspBearerToken'
---
 -- * 'aspAppsId'
 --
 -- * 'aspServicesId'
@@ -126,19 +116,17 @@
     { _aspXgafv = Nothing
     , _aspUploadProtocol = Nothing
     , _aspUpdateMask = Nothing
-    , _aspPp = True
     , _aspAccessToken = Nothing
     , _aspUploadType = Nothing
     , _aspPayload = pAspPayload_
     , _aspMigrateTraffic = Nothing
-    , _aspBearerToken = Nothing
     , _aspAppsId = pAspAppsId_
     , _aspServicesId = pAspServicesId_
     , _aspCallback = Nothing
     }
 
 -- | V1 error format.
-aspXgafv :: Lens' AppsServicesPatch (Maybe Text)
+aspXgafv :: Lens' AppsServicesPatch (Maybe Xgafv)
 aspXgafv = lens _aspXgafv (\ s a -> s{_aspXgafv = a})
 
 -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
@@ -148,15 +136,11 @@
       (\ s a -> s{_aspUploadProtocol = a})
 
 -- | Standard field mask for the set of fields to be updated.
-aspUpdateMask :: Lens' AppsServicesPatch (Maybe Text)
+aspUpdateMask :: Lens' AppsServicesPatch (Maybe GFieldMask)
 aspUpdateMask
   = lens _aspUpdateMask
       (\ s a -> s{_aspUpdateMask = a})
 
--- | Pretty-print response.
-aspPp :: Lens' AppsServicesPatch Bool
-aspPp = lens _aspPp (\ s a -> s{_aspPp = a})
-
 -- | OAuth access token.
 aspAccessToken :: Lens' AppsServicesPatch (Maybe Text)
 aspAccessToken
@@ -174,15 +158,15 @@
 aspPayload
   = lens _aspPayload (\ s a -> s{_aspPayload = a})
 
--- | 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)
+-- | Set to true to gradually shift traffic to one or more versions that you
+-- specify. By default, traffic is shifted immediately. For gradual traffic
+-- migration, the target versions 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).
+-- (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)
+-- (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
@@ -192,12 +176,6 @@
   = lens _aspMigrateTraffic
       (\ s a -> s{_aspMigrateTraffic = 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. Example:
 -- apps\/myapp\/services\/default.
 aspAppsId :: Lens' AppsServicesPatch Text
@@ -223,11 +201,9 @@
           = go _aspAppsId _aspServicesId _aspXgafv
               _aspUploadProtocol
               _aspUpdateMask
-              (Just _aspPp)
               _aspAccessToken
               _aspUploadType
               _aspMigrateTraffic
-              _aspBearerToken
               _aspCallback
               (Just AltJSON)
               _aspPayload
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
@@ -22,7 +22,7 @@
 --
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.create@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.Create
     (
     -- * REST Resource
@@ -35,11 +35,9 @@
     -- * Request Lenses
     , asvcXgafv
     , asvcUploadProtocol
-    , asvcPp
     , asvcAccessToken
     , asvcUploadType
     , asvcPayload
-    , asvcBearerToken
     , asvcAppsId
     , asvcServicesId
     , asvcCallback
@@ -57,28 +55,23 @@
            "services" :>
              Capture "servicesId" Text :>
                "versions" :>
-                 QueryParam "$.xgafv" Text :>
+                 QueryParam "$.xgafv" Xgafv :>
                    QueryParam "upload_protocol" Text :>
-                     QueryParam "pp" Bool :>
-                       QueryParam "access_token" Text :>
-                         QueryParam "uploadType" Text :>
-                           QueryParam "bearer_token" Text :>
-                             QueryParam "callback" Text :>
-                               QueryParam "alt" AltJSON :>
-                                 ReqBody '[JSON] Version :>
-                                   Post '[JSON] Operation
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             ReqBody '[JSON] Version :> Post '[JSON] Operation
 
 -- | Deploys code and resource files to a new version.
 --
 -- /See:/ 'appsServicesVersionsCreate' smart constructor.
 data AppsServicesVersionsCreate = AppsServicesVersionsCreate'
-    { _asvcXgafv          :: !(Maybe Text)
+    { _asvcXgafv          :: !(Maybe Xgafv)
     , _asvcUploadProtocol :: !(Maybe Text)
-    , _asvcPp             :: !Bool
     , _asvcAccessToken    :: !(Maybe Text)
     , _asvcUploadType     :: !(Maybe Text)
     , _asvcPayload        :: !Version
-    , _asvcBearerToken    :: !(Maybe Text)
     , _asvcAppsId         :: !Text
     , _asvcServicesId     :: !Text
     , _asvcCallback       :: !(Maybe Text)
@@ -92,16 +85,12 @@
 --
 -- * 'asvcUploadProtocol'
 --
--- * 'asvcPp'
---
 -- * 'asvcAccessToken'
 --
 -- * 'asvcUploadType'
 --
 -- * 'asvcPayload'
 --
--- * 'asvcBearerToken'
---
 -- * 'asvcAppsId'
 --
 -- * 'asvcServicesId'
@@ -116,18 +105,16 @@
     AppsServicesVersionsCreate'
     { _asvcXgafv = Nothing
     , _asvcUploadProtocol = Nothing
-    , _asvcPp = True
     , _asvcAccessToken = Nothing
     , _asvcUploadType = Nothing
     , _asvcPayload = pAsvcPayload_
-    , _asvcBearerToken = Nothing
     , _asvcAppsId = pAsvcAppsId_
     , _asvcServicesId = pAsvcServicesId_
     , _asvcCallback = Nothing
     }
 
 -- | V1 error format.
-asvcXgafv :: Lens' AppsServicesVersionsCreate (Maybe Text)
+asvcXgafv :: Lens' AppsServicesVersionsCreate (Maybe Xgafv)
 asvcXgafv
   = lens _asvcXgafv (\ s a -> s{_asvcXgafv = a})
 
@@ -137,10 +124,6 @@
   = lens _asvcUploadProtocol
       (\ s a -> s{_asvcUploadProtocol = a})
 
--- | Pretty-print response.
-asvcPp :: Lens' AppsServicesVersionsCreate Bool
-asvcPp = lens _asvcPp (\ s a -> s{_asvcPp = a})
-
 -- | OAuth access token.
 asvcAccessToken :: Lens' AppsServicesVersionsCreate (Maybe Text)
 asvcAccessToken
@@ -158,12 +141,6 @@
 asvcPayload
   = lens _asvcPayload (\ s a -> s{_asvcPayload = a})
 
--- | OAuth bearer token.
-asvcBearerToken :: Lens' AppsServicesVersionsCreate (Maybe Text)
-asvcBearerToken
-  = lens _asvcBearerToken
-      (\ s a -> s{_asvcBearerToken = a})
-
 -- | Part of \`parent\`. Name of the parent resource to create this version
 -- under. Example: apps\/myapp\/services\/default.
 asvcAppsId :: Lens' AppsServicesVersionsCreate Text
@@ -189,10 +166,8 @@
         requestClient AppsServicesVersionsCreate'{..}
           = go _asvcAppsId _asvcServicesId _asvcXgafv
               _asvcUploadProtocol
-              (Just _asvcPp)
               _asvcAccessToken
               _asvcUploadType
-              _asvcBearerToken
               _asvcCallback
               (Just AltJSON)
               _asvcPayload
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
@@ -22,7 +22,7 @@
 --
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.delete@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.Delete
     (
     -- * REST Resource
@@ -35,11 +35,9 @@
     -- * Request Lenses
     , asvdXgafv
     , asvdUploadProtocol
-    , asvdPp
     , asvdAccessToken
     , asvdUploadType
     , asvdVersionsId
-    , asvdBearerToken
     , asvdAppsId
     , asvdServicesId
     , asvdCallback
@@ -58,27 +56,23 @@
              Capture "servicesId" Text :>
                "versions" :>
                  Capture "versionsId" Text :>
-                   QueryParam "$.xgafv" Text :>
+                   QueryParam "$.xgafv" Xgafv :>
                      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
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Delete '[JSON] Operation
 
 -- | Deletes an existing Version resource.
 --
 -- /See:/ 'appsServicesVersionsDelete' smart constructor.
 data AppsServicesVersionsDelete = AppsServicesVersionsDelete'
-    { _asvdXgafv          :: !(Maybe Text)
+    { _asvdXgafv          :: !(Maybe Xgafv)
     , _asvdUploadProtocol :: !(Maybe Text)
-    , _asvdPp             :: !Bool
     , _asvdAccessToken    :: !(Maybe Text)
     , _asvdUploadType     :: !(Maybe Text)
     , _asvdVersionsId     :: !Text
-    , _asvdBearerToken    :: !(Maybe Text)
     , _asvdAppsId         :: !Text
     , _asvdServicesId     :: !Text
     , _asvdCallback       :: !(Maybe Text)
@@ -92,16 +86,12 @@
 --
 -- * 'asvdUploadProtocol'
 --
--- * 'asvdPp'
---
 -- * 'asvdAccessToken'
 --
 -- * 'asvdUploadType'
 --
 -- * 'asvdVersionsId'
 --
--- * 'asvdBearerToken'
---
 -- * 'asvdAppsId'
 --
 -- * 'asvdServicesId'
@@ -116,18 +106,16 @@
     AppsServicesVersionsDelete'
     { _asvdXgafv = Nothing
     , _asvdUploadProtocol = Nothing
-    , _asvdPp = True
     , _asvdAccessToken = Nothing
     , _asvdUploadType = Nothing
     , _asvdVersionsId = pAsvdVersionsId_
-    , _asvdBearerToken = Nothing
     , _asvdAppsId = pAsvdAppsId_
     , _asvdServicesId = pAsvdServicesId_
     , _asvdCallback = Nothing
     }
 
 -- | V1 error format.
-asvdXgafv :: Lens' AppsServicesVersionsDelete (Maybe Text)
+asvdXgafv :: Lens' AppsServicesVersionsDelete (Maybe Xgafv)
 asvdXgafv
   = lens _asvdXgafv (\ s a -> s{_asvdXgafv = a})
 
@@ -137,10 +125,6 @@
   = lens _asvdUploadProtocol
       (\ s a -> s{_asvdUploadProtocol = a})
 
--- | Pretty-print response.
-asvdPp :: Lens' AppsServicesVersionsDelete Bool
-asvdPp = lens _asvdPp (\ s a -> s{_asvdPp = a})
-
 -- | OAuth access token.
 asvdAccessToken :: Lens' AppsServicesVersionsDelete (Maybe Text)
 asvdAccessToken
@@ -159,12 +143,6 @@
   = lens _asvdVersionsId
       (\ s a -> s{_asvdVersionsId = a})
 
--- | OAuth bearer token.
-asvdBearerToken :: Lens' AppsServicesVersionsDelete (Maybe Text)
-asvdBearerToken
-  = lens _asvdBearerToken
-      (\ s a -> s{_asvdBearerToken = a})
-
 -- | Part of \`name\`. Name of the resource requested. Example:
 -- apps\/myapp\/services\/default\/versions\/v1.
 asvdAppsId :: Lens' AppsServicesVersionsDelete Text
@@ -191,10 +169,8 @@
           = go _asvdAppsId _asvdServicesId _asvdVersionsId
               _asvdXgafv
               _asvdUploadProtocol
-              (Just _asvdPp)
               _asvdAccessToken
               _asvdUploadType
-              _asvdBearerToken
               _asvdCallback
               (Just AltJSON)
               appEngineService
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
@@ -23,7 +23,7 @@
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.get@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.Get
     (
     -- * REST Resource
@@ -36,11 +36,9 @@
     -- * Request Lenses
     , asvgXgafv
     , asvgUploadProtocol
-    , asvgPp
     , asvgAccessToken
     , asvgUploadType
     , asvgVersionsId
-    , asvgBearerToken
     , asvgAppsId
     , asvgView
     , asvgServicesId
@@ -60,29 +58,24 @@
              Capture "servicesId" Text :>
                "versions" :>
                  Capture "versionsId" Text :>
-                   QueryParam "$.xgafv" Text :>
+                   QueryParam "$.xgafv" Xgafv :>
                      QueryParam "upload_protocol" Text :>
-                       QueryParam "pp" Bool :>
-                         QueryParam "access_token" Text :>
-                           QueryParam "uploadType" Text :>
-                             QueryParam "bearer_token" Text :>
-                               QueryParam "view" Text :>
-                                 QueryParam "callback" Text :>
-                                   QueryParam "alt" AltJSON :>
-                                     Get '[JSON] Version
+                       QueryParam "access_token" Text :>
+                         QueryParam "uploadType" Text :>
+                           QueryParam "view" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :> Get '[JSON] Version
 
 -- | 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'
-    { _asvgXgafv          :: !(Maybe Text)
+    { _asvgXgafv          :: !(Maybe Xgafv)
     , _asvgUploadProtocol :: !(Maybe Text)
-    , _asvgPp             :: !Bool
     , _asvgAccessToken    :: !(Maybe Text)
     , _asvgUploadType     :: !(Maybe Text)
     , _asvgVersionsId     :: !Text
-    , _asvgBearerToken    :: !(Maybe Text)
     , _asvgAppsId         :: !Text
     , _asvgView           :: !(Maybe Text)
     , _asvgServicesId     :: !Text
@@ -97,16 +90,12 @@
 --
 -- * 'asvgUploadProtocol'
 --
--- * 'asvgPp'
---
 -- * 'asvgAccessToken'
 --
 -- * 'asvgUploadType'
 --
 -- * 'asvgVersionsId'
 --
--- * 'asvgBearerToken'
---
 -- * 'asvgAppsId'
 --
 -- * 'asvgView'
@@ -123,11 +112,9 @@
     AppsServicesVersionsGet'
     { _asvgXgafv = Nothing
     , _asvgUploadProtocol = Nothing
-    , _asvgPp = True
     , _asvgAccessToken = Nothing
     , _asvgUploadType = Nothing
     , _asvgVersionsId = pAsvgVersionsId_
-    , _asvgBearerToken = Nothing
     , _asvgAppsId = pAsvgAppsId_
     , _asvgView = Nothing
     , _asvgServicesId = pAsvgServicesId_
@@ -135,7 +122,7 @@
     }
 
 -- | V1 error format.
-asvgXgafv :: Lens' AppsServicesVersionsGet (Maybe Text)
+asvgXgafv :: Lens' AppsServicesVersionsGet (Maybe Xgafv)
 asvgXgafv
   = lens _asvgXgafv (\ s a -> s{_asvgXgafv = a})
 
@@ -145,10 +132,6 @@
   = lens _asvgUploadProtocol
       (\ s a -> s{_asvgUploadProtocol = a})
 
--- | Pretty-print response.
-asvgPp :: Lens' AppsServicesVersionsGet Bool
-asvgPp = lens _asvgPp (\ s a -> s{_asvgPp = a})
-
 -- | OAuth access token.
 asvgAccessToken :: Lens' AppsServicesVersionsGet (Maybe Text)
 asvgAccessToken
@@ -167,12 +150,6 @@
   = lens _asvgVersionsId
       (\ s a -> s{_asvgVersionsId = a})
 
--- | OAuth bearer token.
-asvgBearerToken :: Lens' AppsServicesVersionsGet (Maybe Text)
-asvgBearerToken
-  = lens _asvgBearerToken
-      (\ s a -> s{_asvgBearerToken = a})
-
 -- | Part of \`name\`. Name of the resource requested. Example:
 -- apps\/myapp\/services\/default\/versions\/v1.
 asvgAppsId :: Lens' AppsServicesVersionsGet Text
@@ -204,10 +181,8 @@
           = go _asvgAppsId _asvgServicesId _asvgVersionsId
               _asvgXgafv
               _asvgUploadProtocol
-              (Just _asvgPp)
               _asvgAccessToken
               _asvgUploadType
-              _asvgBearerToken
               _asvgView
               _asvgCallback
               (Just AltJSON)
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
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Debug.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Debug.hs
@@ -28,7 +28,7 @@
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.instances.debug@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Debug
     (
     -- * REST Resource
@@ -42,12 +42,10 @@
     , asvidXgafv
     , asvidInstancesId
     , asvidUploadProtocol
-    , asvidPp
     , asvidAccessToken
     , asvidUploadType
     , asvidPayload
     , asvidVersionsId
-    , asvidBearerToken
     , asvidAppsId
     , asvidServicesId
     , asvidCallback
@@ -68,16 +66,14 @@
                  Capture "versionsId" Text :>
                    "instances" :>
                      CaptureMode "instancesId" "debug" Text :>
-                       QueryParam "$.xgafv" Text :>
+                       QueryParam "$.xgafv" Xgafv :>
                          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
+                           QueryParam "access_token" Text :>
+                             QueryParam "uploadType" 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.
@@ -89,15 +85,13 @@
 --
 -- /See:/ 'appsServicesVersionsInstancesDebug' smart constructor.
 data AppsServicesVersionsInstancesDebug = AppsServicesVersionsInstancesDebug'
-    { _asvidXgafv          :: !(Maybe Text)
+    { _asvidXgafv          :: !(Maybe Xgafv)
     , _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)
@@ -113,8 +107,6 @@
 --
 -- * 'asvidUploadProtocol'
 --
--- * 'asvidPp'
---
 -- * 'asvidAccessToken'
 --
 -- * 'asvidUploadType'
@@ -123,8 +115,6 @@
 --
 -- * 'asvidVersionsId'
 --
--- * 'asvidBearerToken'
---
 -- * 'asvidAppsId'
 --
 -- * 'asvidServicesId'
@@ -142,19 +132,17 @@
     { _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' AppsServicesVersionsInstancesDebug (Maybe Xgafv)
 asvidXgafv
   = lens _asvidXgafv (\ s a -> s{_asvidXgafv = a})
 
@@ -170,10 +158,6 @@
   = 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
@@ -197,12 +181,6 @@
   = 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
@@ -232,10 +210,8 @@
               _asvidInstancesId
               _asvidXgafv
               _asvidUploadProtocol
-              (Just _asvidPp)
               _asvidAccessToken
               _asvidUploadType
-              _asvidBearerToken
               _asvidCallback
               (Just AltJSON)
               _asvidPayload
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
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Delete.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Delete.hs
@@ -22,7 +22,7 @@
 --
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.instances.delete@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Delete
     (
     -- * REST Resource
@@ -36,11 +36,9 @@
     , aXgafv
     , aInstancesId
     , aUploadProtocol
-    , aPp
     , aAccessToken
     , aUploadType
     , aVersionsId
-    , aBearerToken
     , aAppsId
     , aServicesId
     , aCallback
@@ -61,28 +59,24 @@
                  Capture "versionsId" Text :>
                    "instances" :>
                      Capture "instancesId" Text :>
-                       QueryParam "$.xgafv" Text :>
+                       QueryParam "$.xgafv" Xgafv :>
                          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
+                           QueryParam "access_token" Text :>
+                             QueryParam "uploadType" Text :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Delete '[JSON] Operation
 
 -- | Stops a running instance.
 --
 -- /See:/ 'appsServicesVersionsInstancesDelete' smart constructor.
 data AppsServicesVersionsInstancesDelete = AppsServicesVersionsInstancesDelete'
-    { _aXgafv          :: !(Maybe Text)
+    { _aXgafv          :: !(Maybe Xgafv)
     , _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)
@@ -98,16 +92,12 @@
 --
 -- * 'aUploadProtocol'
 --
--- * 'aPp'
---
 -- * 'aAccessToken'
 --
 -- * 'aUploadType'
 --
 -- * 'aVersionsId'
 --
--- * 'aBearerToken'
---
 -- * 'aAppsId'
 --
 -- * 'aServicesId'
@@ -124,18 +114,16 @@
     { _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' AppsServicesVersionsInstancesDelete (Maybe Xgafv)
 aXgafv = lens _aXgafv (\ s a -> s{_aXgafv = a})
 
 -- | Part of \`name\`. See documentation of \`appsId\`.
@@ -149,10 +137,6 @@
   = 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
@@ -168,11 +152,6 @@
 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
@@ -199,10 +178,8 @@
           = go _aAppsId _aServicesId _aVersionsId _aInstancesId
               _aXgafv
               _aUploadProtocol
-              (Just _aPp)
               _aAccessToken
               _aUploadType
-              _aBearerToken
               _aCallback
               (Just AltJSON)
               appEngineService
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
--- a/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Get.hs
+++ b/gen/Network/Google/Resource/AppEngine/Apps/Services/Versions/Instances/Get.hs
@@ -22,7 +22,7 @@
 --
 -- 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@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.instances.get@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.Get
     (
     -- * REST Resource
@@ -36,11 +36,9 @@
     , asvigXgafv
     , asvigInstancesId
     , asvigUploadProtocol
-    , asvigPp
     , asvigAccessToken
     , asvigUploadType
     , asvigVersionsId
-    , asvigBearerToken
     , asvigAppsId
     , asvigServicesId
     , asvigCallback
@@ -61,28 +59,24 @@
                  Capture "versionsId" Text :>
                    "instances" :>
                      Capture "instancesId" Text :>
-                       QueryParam "$.xgafv" Text :>
+                       QueryParam "$.xgafv" Xgafv :>
                          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
+                           QueryParam "access_token" Text :>
+                             QueryParam "uploadType" Text :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] Instance
 
 -- | Gets instance information.
 --
 -- /See:/ 'appsServicesVersionsInstancesGet' smart constructor.
 data AppsServicesVersionsInstancesGet = AppsServicesVersionsInstancesGet'
-    { _asvigXgafv          :: !(Maybe Text)
+    { _asvigXgafv          :: !(Maybe Xgafv)
     , _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)
@@ -98,16 +92,12 @@
 --
 -- * 'asvigUploadProtocol'
 --
--- * 'asvigPp'
---
 -- * 'asvigAccessToken'
 --
 -- * 'asvigUploadType'
 --
 -- * 'asvigVersionsId'
 --
--- * 'asvigBearerToken'
---
 -- * 'asvigAppsId'
 --
 -- * 'asvigServicesId'
@@ -124,18 +114,16 @@
     { _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' AppsServicesVersionsInstancesGet (Maybe Xgafv)
 asvigXgafv
   = lens _asvigXgafv (\ s a -> s{_asvigXgafv = a})
 
@@ -151,10 +139,6 @@
   = 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
@@ -173,12 +157,6 @@
   = 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
@@ -209,10 +187,8 @@
               _asvigInstancesId
               _asvigXgafv
               _asvigUploadProtocol
-              (Just _asvigPp)
               _asvigAccessToken
               _asvigUploadType
-              _asvigBearerToken
               _asvigCallback
               (Just AltJSON)
               appEngineService
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
@@ -20,9 +20,11 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Lists the instances of a version.
+-- Lists the instances of a version.Tip: To aggregate details about
+-- instances over time, see the Stackdriver Monitoring API
+-- (https:\/\/cloud.google.com\/monitoring\/api\/ref_v3\/rest\/v3\/projects.timeSeries\/list).
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.instances.list@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.instances.list@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.Instances.List
     (
     -- * REST Resource
@@ -35,11 +37,9 @@
     -- * Request Lenses
     , asvilXgafv
     , asvilUploadProtocol
-    , asvilPp
     , asvilAccessToken
     , asvilUploadType
     , asvilVersionsId
-    , asvilBearerToken
     , asvilAppsId
     , asvilPageToken
     , asvilServicesId
@@ -61,29 +61,27 @@
                "versions" :>
                  Capture "versionsId" Text :>
                    "instances" :>
-                     QueryParam "$.xgafv" Text :>
+                     QueryParam "$.xgafv" Xgafv :>
                        QueryParam "upload_protocol" Text :>
-                         QueryParam "pp" Bool :>
-                           QueryParam "access_token" Text :>
-                             QueryParam "uploadType" Text :>
-                               QueryParam "bearer_token" Text :>
-                                 QueryParam "pageToken" Text :>
-                                   QueryParam "pageSize" (Textual Int32) :>
-                                     QueryParam "callback" Text :>
-                                       QueryParam "alt" AltJSON :>
-                                         Get '[JSON] ListInstancesResponse
+                         QueryParam "access_token" Text :>
+                           QueryParam "uploadType" Text :>
+                             QueryParam "pageToken" Text :>
+                               QueryParam "pageSize" (Textual Int32) :>
+                                 QueryParam "callback" Text :>
+                                   QueryParam "alt" AltJSON :>
+                                     Get '[JSON] ListInstancesResponse
 
--- | Lists the instances of a version.
+-- | Lists the instances of a version.Tip: To aggregate details about
+-- instances over time, see the Stackdriver Monitoring API
+-- (https:\/\/cloud.google.com\/monitoring\/api\/ref_v3\/rest\/v3\/projects.timeSeries\/list).
 --
 -- /See:/ 'appsServicesVersionsInstancesList' smart constructor.
 data AppsServicesVersionsInstancesList = AppsServicesVersionsInstancesList'
-    { _asvilXgafv          :: !(Maybe Text)
+    { _asvilXgafv          :: !(Maybe Xgafv)
     , _asvilUploadProtocol :: !(Maybe Text)
-    , _asvilPp             :: !Bool
     , _asvilAccessToken    :: !(Maybe Text)
     , _asvilUploadType     :: !(Maybe Text)
     , _asvilVersionsId     :: !Text
-    , _asvilBearerToken    :: !(Maybe Text)
     , _asvilAppsId         :: !Text
     , _asvilPageToken      :: !(Maybe Text)
     , _asvilServicesId     :: !Text
@@ -99,16 +97,12 @@
 --
 -- * 'asvilUploadProtocol'
 --
--- * 'asvilPp'
---
 -- * 'asvilAccessToken'
 --
 -- * 'asvilUploadType'
 --
 -- * 'asvilVersionsId'
 --
--- * 'asvilBearerToken'
---
 -- * 'asvilAppsId'
 --
 -- * 'asvilPageToken'
@@ -127,11 +121,9 @@
     AppsServicesVersionsInstancesList'
     { _asvilXgafv = Nothing
     , _asvilUploadProtocol = Nothing
-    , _asvilPp = True
     , _asvilAccessToken = Nothing
     , _asvilUploadType = Nothing
     , _asvilVersionsId = pAsvilVersionsId_
-    , _asvilBearerToken = Nothing
     , _asvilAppsId = pAsvilAppsId_
     , _asvilPageToken = Nothing
     , _asvilServicesId = pAsvilServicesId_
@@ -140,7 +132,7 @@
     }
 
 -- | V1 error format.
-asvilXgafv :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
+asvilXgafv :: Lens' AppsServicesVersionsInstancesList (Maybe Xgafv)
 asvilXgafv
   = lens _asvilXgafv (\ s a -> s{_asvilXgafv = a})
 
@@ -150,10 +142,6 @@
   = lens _asvilUploadProtocol
       (\ s a -> s{_asvilUploadProtocol = a})
 
--- | Pretty-print response.
-asvilPp :: Lens' AppsServicesVersionsInstancesList Bool
-asvilPp = lens _asvilPp (\ s a -> s{_asvilPp = a})
-
 -- | OAuth access token.
 asvilAccessToken :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
 asvilAccessToken
@@ -172,12 +160,6 @@
   = lens _asvilVersionsId
       (\ s a -> s{_asvilVersionsId = a})
 
--- | OAuth bearer token.
-asvilBearerToken :: Lens' AppsServicesVersionsInstancesList (Maybe Text)
-asvilBearerToken
-  = lens _asvilBearerToken
-      (\ s a -> s{_asvilBearerToken = a})
-
 -- | Part of \`parent\`. Name of the parent Version resource. Example:
 -- apps\/myapp\/services\/default\/versions\/v1.
 asvilAppsId :: Lens' AppsServicesVersionsInstancesList Text
@@ -221,10 +203,8 @@
           = go _asvilAppsId _asvilServicesId _asvilVersionsId
               _asvilXgafv
               _asvilUploadProtocol
-              (Just _asvilPp)
               _asvilAccessToken
               _asvilUploadType
-              _asvilBearerToken
               _asvilPageToken
               _asvilPageSize
               _asvilCallback
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
@@ -22,7 +22,7 @@
 --
 -- Lists the versions of a service.
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.list@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.list@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.List
     (
     -- * REST Resource
@@ -35,10 +35,8 @@
     -- * Request Lenses
     , asvlXgafv
     , asvlUploadProtocol
-    , asvlPp
     , asvlAccessToken
     , asvlUploadType
-    , asvlBearerToken
     , asvlAppsId
     , asvlView
     , asvlPageToken
@@ -59,29 +57,25 @@
            "services" :>
              Capture "servicesId" Text :>
                "versions" :>
-                 QueryParam "$.xgafv" Text :>
+                 QueryParam "$.xgafv" Xgafv :>
                    QueryParam "upload_protocol" Text :>
-                     QueryParam "pp" Bool :>
-                       QueryParam "access_token" Text :>
-                         QueryParam "uploadType" Text :>
-                           QueryParam "bearer_token" Text :>
-                             QueryParam "view" Text :>
-                               QueryParam "pageToken" Text :>
-                                 QueryParam "pageSize" (Textual Int32) :>
-                                   QueryParam "callback" Text :>
-                                     QueryParam "alt" AltJSON :>
-                                       Get '[JSON] ListVersionsResponse
+                     QueryParam "access_token" Text :>
+                       QueryParam "uploadType" Text :>
+                         QueryParam "view" Text :>
+                           QueryParam "pageToken" Text :>
+                             QueryParam "pageSize" (Textual Int32) :>
+                               QueryParam "callback" Text :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] ListVersionsResponse
 
 -- | Lists the versions of a service.
 --
 -- /See:/ 'appsServicesVersionsList' smart constructor.
 data AppsServicesVersionsList = AppsServicesVersionsList'
-    { _asvlXgafv          :: !(Maybe Text)
+    { _asvlXgafv          :: !(Maybe Xgafv)
     , _asvlUploadProtocol :: !(Maybe Text)
-    , _asvlPp             :: !Bool
     , _asvlAccessToken    :: !(Maybe Text)
     , _asvlUploadType     :: !(Maybe Text)
-    , _asvlBearerToken    :: !(Maybe Text)
     , _asvlAppsId         :: !Text
     , _asvlView           :: !(Maybe Text)
     , _asvlPageToken      :: !(Maybe Text)
@@ -98,14 +92,10 @@
 --
 -- * 'asvlUploadProtocol'
 --
--- * 'asvlPp'
---
 -- * 'asvlAccessToken'
 --
 -- * 'asvlUploadType'
 --
--- * 'asvlBearerToken'
---
 -- * 'asvlAppsId'
 --
 -- * 'asvlView'
@@ -125,10 +115,8 @@
     AppsServicesVersionsList'
     { _asvlXgafv = Nothing
     , _asvlUploadProtocol = Nothing
-    , _asvlPp = True
     , _asvlAccessToken = Nothing
     , _asvlUploadType = Nothing
-    , _asvlBearerToken = Nothing
     , _asvlAppsId = pAsvlAppsId_
     , _asvlView = Nothing
     , _asvlPageToken = Nothing
@@ -138,7 +126,7 @@
     }
 
 -- | V1 error format.
-asvlXgafv :: Lens' AppsServicesVersionsList (Maybe Text)
+asvlXgafv :: Lens' AppsServicesVersionsList (Maybe Xgafv)
 asvlXgafv
   = lens _asvlXgafv (\ s a -> s{_asvlXgafv = a})
 
@@ -148,10 +136,6 @@
   = lens _asvlUploadProtocol
       (\ s a -> s{_asvlUploadProtocol = a})
 
--- | Pretty-print response.
-asvlPp :: Lens' AppsServicesVersionsList Bool
-asvlPp = lens _asvlPp (\ s a -> s{_asvlPp = a})
-
 -- | OAuth access token.
 asvlAccessToken :: Lens' AppsServicesVersionsList (Maybe Text)
 asvlAccessToken
@@ -164,12 +148,6 @@
   = lens _asvlUploadType
       (\ s a -> s{_asvlUploadType = a})
 
--- | OAuth bearer token.
-asvlBearerToken :: Lens' AppsServicesVersionsList (Maybe Text)
-asvlBearerToken
-  = lens _asvlBearerToken
-      (\ s a -> s{_asvlBearerToken = a})
-
 -- | Part of \`parent\`. Name of the parent Service resource. Example:
 -- apps\/myapp\/services\/default.
 asvlAppsId :: Lens' AppsServicesVersionsList Text
@@ -213,10 +191,8 @@
         requestClient AppsServicesVersionsList'{..}
           = go _asvlAppsId _asvlServicesId _asvlXgafv
               _asvlUploadProtocol
-              (Just _asvlPp)
               _asvlAccessToken
               _asvlUploadType
-              _asvlBearerToken
               _asvlView
               _asvlPageToken
               _asvlPageSize
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
@@ -22,21 +22,36 @@
 --
 -- 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.
+-- the version resource uses:Standard environment instance_class
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.instance_class)automatic
+-- scaling in the 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.
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automatic_scaling.max_idle_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automaticScaling.standard_scheduler_settings.max_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#StandardSchedulerSettings)
+-- automaticScaling.standard_scheduler_settings.min_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#StandardSchedulerSettings)
+-- automaticScaling.standard_scheduler_settings.target_cpu_utilization
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#StandardSchedulerSettings)
+-- automaticScaling.standard_scheduler_settings.target_throughput_utilization
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#StandardSchedulerSettings)basic
+-- scaling or manual scaling in the standard environment: serving_status
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.serving_status)Flexible
+-- environment serving_status
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.serving_status)automatic
+-- scaling in the flexible environment:
+-- automatic_scaling.min_total_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automatic_scaling.max_total_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automatic_scaling.cool_down_period_sec
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automatic_scaling.cpu_utilization.target_utilization
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
 --
--- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ Google App Engine Admin API Reference> for @appengine.apps.services.versions.patch@.
+-- /See:/ <https://cloud.google.com/appengine/docs/admin-api/ App Engine Admin API Reference> for @appengine.apps.services.versions.patch@.
 module Network.Google.Resource.AppEngine.Apps.Services.Versions.Patch
     (
     -- * REST Resource
@@ -50,12 +65,10 @@
     , asvpXgafv
     , asvpUploadProtocol
     , asvpUpdateMask
-    , asvpPp
     , asvpAccessToken
     , asvpUploadType
     , asvpPayload
     , asvpVersionsId
-    , asvpBearerToken
     , asvpAppsId
     , asvpServicesId
     , asvpCallback
@@ -74,45 +87,56 @@
              Capture "servicesId" Text :>
                "versions" :>
                  Capture "versionsId" Text :>
-                   QueryParam "$.xgafv" Text :>
+                   QueryParam "$.xgafv" Xgafv :>
                      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] Version :>
-                                       Patch '[JSON] Operation
+                       QueryParam "updateMask" GFieldMask :>
+                         QueryParam "access_token" Text :>
+                           QueryParam "uploadType" Text :>
+                             QueryParam "callback" Text :>
+                               QueryParam "alt" AltJSON :>
+                                 ReqBody '[JSON] Version :>
+                                   Patch '[JSON] Operation
 
 -- | 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.
+-- the version resource uses:Standard environment instance_class
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.instance_class)automatic
+-- scaling in the 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.
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automatic_scaling.max_idle_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automaticScaling.standard_scheduler_settings.max_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#StandardSchedulerSettings)
+-- automaticScaling.standard_scheduler_settings.min_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#StandardSchedulerSettings)
+-- automaticScaling.standard_scheduler_settings.target_cpu_utilization
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#StandardSchedulerSettings)
+-- automaticScaling.standard_scheduler_settings.target_throughput_utilization
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#StandardSchedulerSettings)basic
+-- scaling or manual scaling in the standard environment: serving_status
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.serving_status)Flexible
+-- environment serving_status
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.serving_status)automatic
+-- scaling in the flexible environment:
+-- automatic_scaling.min_total_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automatic_scaling.max_total_instances
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automatic_scaling.cool_down_period_sec
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
+-- automatic_scaling.cpu_utilization.target_utilization
+-- (https:\/\/cloud.google.com\/appengine\/docs\/admin-api\/reference\/rest\/v1\/apps.services.versions#Version.FIELDS.automatic_scaling)
 --
 -- /See:/ 'appsServicesVersionsPatch' smart constructor.
 data AppsServicesVersionsPatch = AppsServicesVersionsPatch'
-    { _asvpXgafv          :: !(Maybe Text)
+    { _asvpXgafv          :: !(Maybe Xgafv)
     , _asvpUploadProtocol :: !(Maybe Text)
-    , _asvpUpdateMask     :: !(Maybe Text)
-    , _asvpPp             :: !Bool
+    , _asvpUpdateMask     :: !(Maybe GFieldMask)
     , _asvpAccessToken    :: !(Maybe Text)
     , _asvpUploadType     :: !(Maybe Text)
     , _asvpPayload        :: !Version
     , _asvpVersionsId     :: !Text
-    , _asvpBearerToken    :: !(Maybe Text)
     , _asvpAppsId         :: !Text
     , _asvpServicesId     :: !Text
     , _asvpCallback       :: !(Maybe Text)
@@ -128,8 +152,6 @@
 --
 -- * 'asvpUpdateMask'
 --
--- * 'asvpPp'
---
 -- * 'asvpAccessToken'
 --
 -- * 'asvpUploadType'
@@ -138,8 +160,6 @@
 --
 -- * 'asvpVersionsId'
 --
--- * 'asvpBearerToken'
---
 -- * 'asvpAppsId'
 --
 -- * 'asvpServicesId'
@@ -156,19 +176,17 @@
     { _asvpXgafv = Nothing
     , _asvpUploadProtocol = Nothing
     , _asvpUpdateMask = Nothing
-    , _asvpPp = True
     , _asvpAccessToken = Nothing
     , _asvpUploadType = Nothing
     , _asvpPayload = pAsvpPayload_
     , _asvpVersionsId = pAsvpVersionsId_
-    , _asvpBearerToken = Nothing
     , _asvpAppsId = pAsvpAppsId_
     , _asvpServicesId = pAsvpServicesId_
     , _asvpCallback = Nothing
     }
 
 -- | V1 error format.
-asvpXgafv :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpXgafv :: Lens' AppsServicesVersionsPatch (Maybe Xgafv)
 asvpXgafv
   = lens _asvpXgafv (\ s a -> s{_asvpXgafv = a})
 
@@ -179,15 +197,11 @@
       (\ s a -> s{_asvpUploadProtocol = a})
 
 -- | Standard field mask for the set of fields to be updated.
-asvpUpdateMask :: Lens' AppsServicesVersionsPatch (Maybe Text)
+asvpUpdateMask :: Lens' AppsServicesVersionsPatch (Maybe GFieldMask)
 asvpUpdateMask
   = lens _asvpUpdateMask
       (\ s a -> s{_asvpUpdateMask = a})
 
--- | Pretty-print response.
-asvpPp :: Lens' AppsServicesVersionsPatch Bool
-asvpPp = lens _asvpPp (\ s a -> s{_asvpPp = a})
-
 -- | OAuth access token.
 asvpAccessToken :: Lens' AppsServicesVersionsPatch (Maybe Text)
 asvpAccessToken
@@ -211,12 +225,6 @@
   = lens _asvpVersionsId
       (\ s a -> s{_asvpVersionsId = 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. Example:
 -- apps\/myapp\/services\/default\/versions\/1.
 asvpAppsId :: Lens' AppsServicesVersionsPatch Text
@@ -244,10 +252,8 @@
               _asvpXgafv
               _asvpUploadProtocol
               _asvpUpdateMask
-              (Just _asvpPp)
               _asvpAccessToken
               _asvpUploadType
-              _asvpBearerToken
               _asvpCallback
               (Just AltJSON)
               _asvpPayload
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.3.0
+version:               0.4.0
 synopsis:              Google App Engine Admin SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -14,7 +14,7 @@
 extra-source-files:    README.md src/.gitkeep
 
 description:
-    Provisions and manages App Engine applications.
+    Provisions and manages developers\' App Engine applications.
     .
     /Warning:/ This is an experimental prototype/preview release which is still
     under exploratory development and not intended for public use, caveat emptor!
@@ -35,7 +35,24 @@
     exposed-modules:
           Network.Google.AppEngine
         , Network.Google.AppEngine.Types
+        , Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Create
+        , Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Delete
+        , Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Get
+        , Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.List
+        , Network.Google.Resource.AppEngine.Apps.AuthorizedCertificates.Patch
+        , Network.Google.Resource.AppEngine.Apps.AuthorizedDomains.List
         , Network.Google.Resource.AppEngine.Apps.Create
+        , Network.Google.Resource.AppEngine.Apps.DomainMAppings.Create
+        , Network.Google.Resource.AppEngine.Apps.DomainMAppings.Delete
+        , Network.Google.Resource.AppEngine.Apps.DomainMAppings.Get
+        , Network.Google.Resource.AppEngine.Apps.DomainMAppings.List
+        , Network.Google.Resource.AppEngine.Apps.DomainMAppings.Patch
+        , Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.BatchUpdate
+        , Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Create
+        , Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Delete
+        , Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Get
+        , Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.List
+        , Network.Google.Resource.AppEngine.Apps.Firewall.IngressRules.Patch
         , Network.Google.Resource.AppEngine.Apps.Get
         , Network.Google.Resource.AppEngine.Apps.Locations.Get
         , Network.Google.Resource.AppEngine.Apps.Locations.List
@@ -62,5 +79,5 @@
         , Network.Google.AppEngine.Types.Sum
 
     build-depends:
-          gogol-core == 0.3.0.*
+          gogol-core == 0.4.0.*
         , base       >= 4.7 && < 5
